Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Eigen::DenseBase< Derived > Class Template Reference

Base class for all dense matrices, vectors, and arrays. More...

#include <src/eigen/Eigen/src/Core/DenseBase.h>

+ Inheritance diagram for Eigen::DenseBase< Derived >:
+ Collaboration diagram for Eigen::DenseBase< Derived >:

Public Types

enum  {
  RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime , ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime , SizeAtCompileTime , MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime ,
  MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime , MaxSizeAtCompileTime , IsVectorAtCompileTime , Flags = internal::traits<Derived>::Flags ,
  IsRowMajor = int(Flags) & RowMajorBit , InnerSizeAtCompileTime , InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret , OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
}
 
enum  { IsPlainObjectBase = 0 }
 
typedef Eigen::InnerIterator< Derived > InnerIterator
 
typedef internal::traits< Derived >::StorageKind StorageKind
 
typedef internal::traits< Derived >::StorageIndex StorageIndex
 The type used to store indices.
 
typedef internal::traits< Derived >::Scalar Scalar
 
typedef Scalar value_type
 
typedef NumTraits< Scalar >::Real RealScalar
 
typedef DenseCoeffsBase< Derived > Base
 
typedef Base::CoeffReturnType CoeffReturnType
 
typedef internal::find_best_packet< Scalar, SizeAtCompileTime >::type PacketScalar
 
typedef Matrix< typename internal::traits< Derived >::Scalar, internal::traits< Derived >::RowsAtCompileTime, internal::traits< Derived >::ColsAtCompileTime, AutoAlign|(internal::traits< Derived >::Flags &RowMajorBit ? RowMajor :ColMajor), internal::traits< Derived >::MaxRowsAtCompileTime, internal::traits< Derived >::MaxColsAtCompileTimePlainMatrix
 
typedef Array< typename internal::traits< Derived >::Scalar, internal::traits< Derived >::RowsAtCompileTime, internal::traits< Derived >::ColsAtCompileTime, AutoAlign|(internal::traits< Derived >::Flags &RowMajorBit ? RowMajor :ColMajor), internal::traits< Derived >::MaxRowsAtCompileTime, internal::traits< Derived >::MaxColsAtCompileTimePlainArray
 
typedef internal::conditional< internal::is_same< typenameinternal::traits< Derived >::XprKind, MatrixXpr >::value, PlainMatrix, PlainArray >::type PlainObject
 The plain matrix or array type corresponding to this expression.
 
typedef CwiseNullaryOp< internal::scalar_constant_op< Scalar >, PlainObjectConstantReturnType
 
typedef CwiseNullaryOp< internal::linspaced_op< Scalar, PacketScalar >, PlainObjectSequentialLinSpacedReturnType
 
typedef CwiseNullaryOp< internal::linspaced_op< Scalar, PacketScalar >, PlainObjectRandomAccessLinSpacedReturnType
 
typedef Matrix< typename NumTraits< typename internal::traits< Derived >::Scalar >::Real, internal::traits< Derived >::ColsAtCompileTime, 1 > EigenvaluesReturnType
 
typedef Transpose< Derived > TransposeReturnType
 
typedef internal::add_const< Transpose< constDerived > >::type ConstTransposeReturnType
 
typedef internal::add_const_on_value_type< typenameinternal::eval< Derived >::type >::type EvalReturnType
 
typedef VectorwiseOp< Derived, HorizontalRowwiseReturnType
 
typedef const VectorwiseOp< const Derived, HorizontalConstRowwiseReturnType
 
typedef VectorwiseOp< Derived, VerticalColwiseReturnType
 
typedef const VectorwiseOp< const Derived, VerticalConstColwiseReturnType
 
typedef CwiseNullaryOp< internal::scalar_random_op< Scalar >, PlainObjectRandomReturnType
 
typedef Reverse< Derived, BothDirectionsReverseReturnType
 
typedef const Reverse< const Derived, BothDirectionsConstReverseReturnType
 

Public Member Functions

EIGEN_DEVICE_FUNC Index nonZeros () const
 
EIGEN_DEVICE_FUNC Index outerSize () const
 
EIGEN_DEVICE_FUNC Index innerSize () const
 
EIGEN_DEVICE_FUNC void resize (Index newSize)
 
EIGEN_DEVICE_FUNC void resize (Index rows, Index cols)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator= (const DenseBase< OtherDerived > &other)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator= (const DenseBase &other)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & operator= (const EigenBase< OtherDerived > &other)
 Copies the generic expression other into *this.
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & operator+= (const EigenBase< OtherDerived > &other)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & operator-= (const EigenBase< OtherDerived > &other)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & operator= (const ReturnByValue< OtherDerived > &func)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & lazyAssign (const DenseBase< OtherDerived > &other)
 
EIGEN_DEVICE_FUNC CommaInitializer< Derived > operator<< (const Scalar &s)
 
template<unsigned int Added, unsigned int Removed>
EIGEN_DEPRECATED const Derived & flagged () const
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC CommaInitializer< Derived > operator<< (const DenseBase< OtherDerived > &other)
 
EIGEN_DEVICE_FUNC TransposeReturnType transpose ()
 
EIGEN_DEVICE_FUNC ConstTransposeReturnType transpose () const
 
EIGEN_DEVICE_FUNC void transposeInPlace ()
 
EIGEN_DEVICE_FUNC void fill (const Scalar &value)
 
EIGEN_DEVICE_FUNC Derived & setConstant (const Scalar &value)
 
EIGEN_DEVICE_FUNC Derived & setLinSpaced (Index size, const Scalar &low, const Scalar &high)
 Sets a linearly spaced vector.
 
EIGEN_DEVICE_FUNC Derived & setLinSpaced (const Scalar &low, const Scalar &high)
 Sets a linearly spaced vector.
 
EIGEN_DEVICE_FUNC Derived & setZero ()
 
EIGEN_DEVICE_FUNC Derived & setOnes ()
 
EIGEN_DEVICE_FUNC Derived & setRandom ()
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC bool isApprox (const DenseBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
EIGEN_DEVICE_FUNC bool isMuchSmallerThan (const RealScalar &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC bool isMuchSmallerThan (const DenseBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
EIGEN_DEVICE_FUNC bool isApproxToConstant (const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
EIGEN_DEVICE_FUNC bool isConstant (const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
EIGEN_DEVICE_FUNC bool isZero (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
EIGEN_DEVICE_FUNC bool isOnes (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
bool hasNaN () const
 
bool allFinite () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator*= (const Scalar &other)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator/= (const Scalar &other)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EvalReturnType eval () const
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC void swap (const DenseBase< OtherDerived > &other)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC void swap (PlainObjectBase< OtherDerived > &other)
 
EIGEN_DEVICE_FUNC const NestByValue< Derived > nestByValue () const
 
EIGEN_DEVICE_FUNC const ForceAlignedAccess< Derived > forceAlignedAccess () const
 
EIGEN_DEVICE_FUNC ForceAlignedAccess< Derived > forceAlignedAccess ()
 
template<bool Enable>
EIGEN_DEVICE_FUNC const internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type forceAlignedAccessIf () const
 
template<bool Enable>
EIGEN_DEVICE_FUNC internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type forceAlignedAccessIf ()
 
EIGEN_DEVICE_FUNC Scalar sum () const
 
EIGEN_DEVICE_FUNC Scalar mean () const
 
EIGEN_DEVICE_FUNC Scalar trace () const
 
EIGEN_DEVICE_FUNC Scalar prod () const
 
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar minCoeff () const
 
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar maxCoeff () const
 
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar minCoeff (IndexType *row, IndexType *col) const
 
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar maxCoeff (IndexType *row, IndexType *col) const
 
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar minCoeff (IndexType *index) const
 
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar maxCoeff (IndexType *index) const
 
template<typename BinaryOp >
EIGEN_DEVICE_FUNC Scalar redux (const BinaryOp &func) const
 
template<typename Visitor >
EIGEN_DEVICE_FUNC void visit (Visitor &func) const
 
const WithFormat< Derived > format (const IOFormat &fmt) const
 
EIGEN_DEVICE_FUNC CoeffReturnType value () const
 
EIGEN_DEVICE_FUNC bool all () const
 
EIGEN_DEVICE_FUNC bool any () const
 
EIGEN_DEVICE_FUNC Index count () const
 
EIGEN_DEVICE_FUNC ConstRowwiseReturnType rowwise () const
 
EIGEN_DEVICE_FUNC RowwiseReturnType rowwise ()
 
EIGEN_DEVICE_FUNC ConstColwiseReturnType colwise () const
 
EIGEN_DEVICE_FUNC ColwiseReturnType colwise ()
 
template<typename ThenDerived , typename ElseDerived >
const Select< Derived, ThenDerived, ElseDerived > select (const DenseBase< ThenDerived > &thenMatrix, const DenseBase< ElseDerived > &elseMatrix) const
 
template<typename ThenDerived >
const Select< Derived, ThenDerived, typename ThenDerived::ConstantReturnType > select (const DenseBase< ThenDerived > &thenMatrix, const typename ThenDerived::Scalar &elseScalar) const
 
template<typename ElseDerived >
const Select< Derived, typename ElseDerived::ConstantReturnType, ElseDerived > select (const typename ElseDerived::Scalar &thenScalar, const DenseBase< ElseDerived > &elseMatrix) const
 
template<int p>
RealScalar lpNorm () const
 
template<int RowFactor, int ColFactor>
EIGEN_DEVICE_FUNC const Replicate< Derived, RowFactor, ColFactor > replicate () const
 
EIGEN_DEVICE_FUNC const Replicate< Derived, Dynamic, Dynamicreplicate (Index rowFactor, Index colFactor) const
 
EIGEN_DEVICE_FUNC ReverseReturnType reverse ()
 
EIGEN_DEVICE_FUNC ConstReverseReturnType reverse () const
 
EIGEN_DEVICE_FUNC void reverseInPlace ()
 
template<typename Dest >
EIGEN_DEVICE_FUNC void evalTo (Dest &) const
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Derived & lazyAssign (const DenseBase< OtherDerived > &other)
 
template<typename OtherDerived >
CommaInitializer< Derived > operator<< (const DenseBase< OtherDerived > &other)
 
template<typename CustomNullaryOp >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseNullaryOp< CustomNullaryOp, typename DenseBase< Derived >::PlainObjectNullaryExpr (Index rows, Index cols, const CustomNullaryOp &func)
 
template<typename CustomNullaryOp >
EIGEN_STRONG_INLINE const CwiseNullaryOp< CustomNullaryOp, typename DenseBase< Derived >::PlainObjectNullaryExpr (Index size, const CustomNullaryOp &func)
 
template<typename CustomNullaryOp >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseNullaryOp< CustomNullaryOp, typename DenseBase< Derived >::PlainObjectNullaryExpr (const CustomNullaryOp &func)
 
template<typename OtherDerived >
bool isApprox (const DenseBase< OtherDerived > &other, const RealScalar &prec) const
 
template<typename Derived >
bool isMuchSmallerThan (const typename NumTraits< Scalar >::Real &other, const RealScalar &prec) const
 
template<typename OtherDerived >
bool isMuchSmallerThan (const DenseBase< OtherDerived > &other, const RealScalar &prec) const
 
template<typename Func >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar redux (const Func &func) const
 
template<int RowFactor, int ColFactor>
const Replicate< Derived, RowFactor, ColFactor > replicate () const
 
template<typename OtherDerived >
Derived & operator= (const ReturnByValue< OtherDerived > &other)
 

Static Public Member Functions

static EIGEN_DEVICE_FUNC const ConstantReturnType Constant (Index rows, Index cols, const Scalar &value)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Constant (Index size, const Scalar &value)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Constant (const Scalar &value)
 
static EIGEN_DEVICE_FUNC const SequentialLinSpacedReturnType LinSpaced (Sequential_t, Index size, const Scalar &low, const Scalar &high)
 
static EIGEN_DEVICE_FUNC const RandomAccessLinSpacedReturnType LinSpaced (Index size, const Scalar &low, const Scalar &high)
 Sets a linearly spaced vector.
 
static EIGEN_DEVICE_FUNC const SequentialLinSpacedReturnType LinSpaced (Sequential_t, const Scalar &low, const Scalar &high)
 
static EIGEN_DEVICE_FUNC const RandomAccessLinSpacedReturnType LinSpaced (const Scalar &low, const Scalar &high)
 Sets a linearly spaced vector.
 
template<typename CustomNullaryOp >
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObjectNullaryExpr (Index rows, Index cols, const CustomNullaryOp &func)
 
template<typename CustomNullaryOp >
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObjectNullaryExpr (Index size, const CustomNullaryOp &func)
 
template<typename CustomNullaryOp >
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObjectNullaryExpr (const CustomNullaryOp &func)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Zero (Index rows, Index cols)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Zero (Index size)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Zero ()
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Ones (Index rows, Index cols)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Ones (Index size)
 
static EIGEN_DEVICE_FUNC const ConstantReturnType Ones ()
 
static const RandomReturnType Random (Index rows, Index cols)
 
static const RandomReturnType Random (Index size)
 
static const RandomReturnType Random ()
 

Protected Member Functions

EIGEN_DEVICE_FUNC DenseBase ()
 

Private Member Functions

EIGEN_DEVICE_FUNC DenseBase (int)
 
EIGEN_DEVICE_FUNC DenseBase (int, int)
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC DenseBase (const DenseBase< OtherDerived > &)
 

Related Symbols

(Note that these are not member symbols.)

template<typename Derived >
std::ostream & operator<< (std::ostream &s, const DenseBase< Derived > &m)
 

Detailed Description

template<typename Derived>
class Eigen::DenseBase< Derived >

Base class for all dense matrices, vectors, and arrays.

This class is the base that is inherited by all dense objects (matrix, vector, arrays, and related expression types). The common Eigen API for dense objects is contained in this class.

Template Parameters
Derivedis the derived type, e.g., a matrix type or an expression.

This class can be extended with the help of the plugin mechanism described on the page TopicCustomizing_Plugins by defining the preprocessor symbol EIGEN_DENSEBASE_PLUGIN.

See also
\blank TopicClassHierarchy

Member Typedef Documentation

◆ Base

template<typename Derived >
typedef DenseCoeffsBase<Derived> Eigen::DenseBase< Derived >::Base

◆ CoeffReturnType

template<typename Derived >
typedef Base::CoeffReturnType Eigen::DenseBase< Derived >::CoeffReturnType

◆ ColwiseReturnType

template<typename Derived >
typedef VectorwiseOp<Derived, Vertical> Eigen::DenseBase< Derived >::ColwiseReturnType

◆ ConstantReturnType

template<typename Derived >
typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> Eigen::DenseBase< Derived >::ConstantReturnType

◆ ConstColwiseReturnType

template<typename Derived >
typedef const VectorwiseOp<const Derived, Vertical> Eigen::DenseBase< Derived >::ConstColwiseReturnType

◆ ConstReverseReturnType

template<typename Derived >
typedef const Reverse<const Derived, BothDirections> Eigen::DenseBase< Derived >::ConstReverseReturnType

◆ ConstRowwiseReturnType

template<typename Derived >
typedef const VectorwiseOp<const Derived, Horizontal> Eigen::DenseBase< Derived >::ConstRowwiseReturnType

◆ ConstTransposeReturnType

template<typename Derived >
typedef internal::add_const<Transpose<constDerived>>::type Eigen::DenseBase< Derived >::ConstTransposeReturnType

◆ EigenvaluesReturnType

template<typename Derived >
typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> Eigen::DenseBase< Derived >::EigenvaluesReturnType

◆ EvalReturnType

template<typename Derived >
typedef internal::add_const_on_value_type<typenameinternal::eval<Derived>::type>::type Eigen::DenseBase< Derived >::EvalReturnType

◆ InnerIterator

template<typename Derived >
typedef Eigen::InnerIterator<Derived> Eigen::DenseBase< Derived >::InnerIterator

Inner iterator type to iterate over the coefficients of a row or column.

See also
class InnerIterator

◆ PacketScalar

template<typename Derived >
typedef internal::find_best_packet<Scalar,SizeAtCompileTime>::type Eigen::DenseBase< Derived >::PacketScalar

◆ PlainArray

The plain array type corresponding to this expression.

See also
PlainObject

◆ PlainMatrix

The plain matrix type corresponding to this expression.

See also
PlainObject

◆ PlainObject

template<typename Derived >
typedef internal::conditional<internal::is_same<typenameinternal::traits<Derived>::XprKind,MatrixXpr>::value,PlainMatrix,PlainArray>::type Eigen::DenseBase< Derived >::PlainObject

The plain matrix or array type corresponding to this expression.

This is not necessarily exactly the return type of eval(). In the case of plain matrices, the return type of eval() is a const reference to a matrix, not a matrix! It is however guaranteed that the return type of eval() is either PlainObject or const PlainObject&.

◆ RandomAccessLinSpacedReturnType

template<typename Derived >
typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,PlainObject> Eigen::DenseBase< Derived >::RandomAccessLinSpacedReturnType

◆ RandomReturnType

template<typename Derived >
typedef CwiseNullaryOp<internal::scalar_random_op<Scalar>,PlainObject> Eigen::DenseBase< Derived >::RandomReturnType

◆ RealScalar

template<typename Derived >
typedef NumTraits<Scalar>::Real Eigen::DenseBase< Derived >::RealScalar

◆ ReverseReturnType

template<typename Derived >
typedef Reverse<Derived, BothDirections> Eigen::DenseBase< Derived >::ReverseReturnType

◆ RowwiseReturnType

template<typename Derived >
typedef VectorwiseOp<Derived, Horizontal> Eigen::DenseBase< Derived >::RowwiseReturnType

◆ Scalar

template<typename Derived >
typedef internal::traits<Derived>::Scalar Eigen::DenseBase< Derived >::Scalar

The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc.

◆ SequentialLinSpacedReturnType

template<typename Derived >
typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,PlainObject> Eigen::DenseBase< Derived >::SequentialLinSpacedReturnType

◆ StorageIndex

template<typename Derived >
typedef internal::traits<Derived>::StorageIndex Eigen::DenseBase< Derived >::StorageIndex

The type used to store indices.

This typedef is relevant for types that store multiple indices such as PermutationMatrix or Transpositions, otherwise it defaults to Eigen::Index

See also
\blank TopicPreprocessorDirectives, Eigen::Index, SparseMatrixBase.

◆ StorageKind

template<typename Derived >
typedef internal::traits<Derived>::StorageKind Eigen::DenseBase< Derived >::StorageKind

◆ TransposeReturnType

template<typename Derived >
typedef Transpose<Derived> Eigen::DenseBase< Derived >::TransposeReturnType

◆ value_type

template<typename Derived >
typedef Scalar Eigen::DenseBase< Derived >::value_type

The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc.

It is an alias for the Scalar type

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
RowsAtCompileTime 

The number of rows at compile-time. This is just a copy of the value provided by the Derived type. If a value is not known at compile-time, it is set to the Dynamic constant.

See also
MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime
ColsAtCompileTime 

The number of columns at compile-time. This is just a copy of the value provided by the Derived type. If a value is not known at compile-time, it is set to the Dynamic constant.

See also
MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime
SizeAtCompileTime 

This is equal to the number of coefficients, i.e. the number of rows times the number of columns, or to Dynamic if this is not known at compile-time.

See also
RowsAtCompileTime, ColsAtCompileTime
MaxRowsAtCompileTime 

This value is equal to the maximum possible number of rows that this expression might have. If this expression might have an arbitrarily high number of rows, this value is set to Dynamic.

This value is useful to know when evaluating an expression, in order to determine whether it is possible to avoid doing a dynamic memory allocation.

See also
RowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime
MaxColsAtCompileTime 

This value is equal to the maximum possible number of columns that this expression might have. If this expression might have an arbitrarily high number of columns, this value is set to Dynamic.

This value is useful to know when evaluating an expression, in order to determine whether it is possible to avoid doing a dynamic memory allocation.

See also
ColsAtCompileTime, MaxRowsAtCompileTime, MaxSizeAtCompileTime
MaxSizeAtCompileTime 

This value is equal to the maximum possible number of coefficients that this expression might have. If this expression might have an arbitrarily high number of coefficients, this value is set to Dynamic.

This value is useful to know when evaluating an expression, in order to determine whether it is possible to avoid doing a dynamic memory allocation.

See also
SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
IsVectorAtCompileTime 

This is set to true if either the number of rows or the number of columns is known at compile-time to be equal to 1. Indeed, in that case, we are dealing with a column-vector (if there is only one column) or with a row-vector (if there is only one row).

Flags 

This stores expression Flags flags which may or may not be inherited by new expressions constructed from this one. See the list of flags.

IsRowMajor 

True if this expression has row-major storage order.

InnerSizeAtCompileTime 
InnerStrideAtCompileTime 
OuterStrideAtCompileTime 
98 {
99
100 RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
106 ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
113 SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
114 internal::traits<Derived>::ColsAtCompileTime>::ret),
119 MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
130 MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
141 MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
142 internal::traits<Derived>::MaxColsAtCompileTime>::ret),
153 IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
154 || internal::traits<Derived>::MaxColsAtCompileTime == 1,
160 Flags = internal::traits<Derived>::Flags,
165 IsRowMajor = int(Flags) & RowMajorBit,
169
170 InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
171 OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
172 };
@ IsVectorAtCompileTime
Definition DenseBase.h:153
@ SizeAtCompileTime
Definition DenseBase.h:113
@ MaxSizeAtCompileTime
Definition DenseBase.h:141
@ IsRowMajor
Definition DenseBase.h:165
@ OuterStrideAtCompileTime
Definition DenseBase.h:171
@ Flags
Definition DenseBase.h:160
@ ColsAtCompileTime
Definition DenseBase.h:106
@ InnerSizeAtCompileTime
Definition DenseBase.h:167
@ InnerStrideAtCompileTime
Definition DenseBase.h:170
@ MaxColsAtCompileTime
Definition DenseBase.h:130
@ MaxRowsAtCompileTime
Definition DenseBase.h:119
@ RowsAtCompileTime
Definition DenseBase.h:100
const unsigned int RowMajorBit
Definition Constants.h:61
Definition Eigen_Colamd.h:50

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
IsPlainObjectBase 
176{ IsPlainObjectBase = 0 };
@ IsPlainObjectBase
Definition DenseBase.h:176

Constructor & Destructor Documentation

◆ DenseBase() [1/4]

template<typename Derived >
EIGEN_DEVICE_FUNC Eigen::DenseBase< Derived >::DenseBase ( )
inlineprotected

Default constructor. Do nothing.

592 {
593 /* Just checks for self-consistency of the flags.
594 * Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
595 */
596#ifdef EIGEN_INTERNAL_DEBUGGING
599 INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION)
600#endif
601 }
#define EIGEN_IMPLIES(a, b)
Definition Macros.h:902
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:124

References EIGEN_IMPLIES, EIGEN_STATIC_ASSERT, Eigen::DenseBase< Derived >::IsRowMajor, Eigen::DenseBase< Derived >::MaxColsAtCompileTime, and Eigen::DenseBase< Derived >::MaxRowsAtCompileTime.

◆ DenseBase() [2/4]

template<typename Derived >
EIGEN_DEVICE_FUNC Eigen::DenseBase< Derived >::DenseBase ( int  )
explicitprivate

◆ DenseBase() [3/4]

template<typename Derived >
EIGEN_DEVICE_FUNC Eigen::DenseBase< Derived >::DenseBase ( int  ,
int   
)
private

◆ DenseBase() [4/4]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Eigen::DenseBase< Derived >::DenseBase ( const DenseBase< OtherDerived > &  )
explicitprivate

Member Function Documentation

◆ all()

template<typename Derived >
bool Eigen::DenseBase< Derived >::all
inline
Returns
true if all coefficients are true

Example:

Output:

See also
any(), Cwise::operator<()
82{
83 typedef internal::evaluator<Derived> Evaluator;
84 enum {
85 unroll = SizeAtCompileTime != Dynamic
86 && SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
87 };
88 Evaluator evaluator(derived());
89 if(unroll)
90 return internal::all_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(evaluator);
91 else
92 {
93 for(Index j = 0; j < cols(); ++j)
94 for(Index i = 0; i < rows(); ++i)
95 if (!evaluator.coeff(i, j)) return false;
96 return true;
97 }
98}
#define EIGEN_UNROLLING_LIMIT
Definition Settings.h:24
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:33
const int Dynamic
Definition Constants.h:21
size_t cols(const T &raster)
Definition MarchingSquares.hpp:60
size_t rows(const T &raster)
Definition MarchingSquares.hpp:55

References Eigen::Dynamic, and EIGEN_UNROLLING_LIMIT.

◆ allFinite()

template<typename Derived >
bool Eigen::DenseBase< Derived >::allFinite
inline
Returns
true if *this contains only finite numbers, i.e., no NaN and no +/-INF values.
See also
hasNaN()
154{
155#if EIGEN_COMP_MSVC || (defined __FAST_MATH__)
156 return derived().array().isFinite().all();
157#else
158 return !((derived()-derived()).hasNaN());
159#endif
160}
bool hasNaN() const
Definition BooleanRedux.h:139

◆ any()

template<typename Derived >
bool Eigen::DenseBase< Derived >::any
inline
Returns
true if at least one coefficient is true
See also
all()
106{
107 typedef internal::evaluator<Derived> Evaluator;
108 enum {
109 unroll = SizeAtCompileTime != Dynamic
110 && SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
111 };
112 Evaluator evaluator(derived());
113 if(unroll)
114 return internal::any_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(evaluator);
115 else
116 {
117 for(Index j = 0; j < cols(); ++j)
118 for(Index i = 0; i < rows(); ++i)
119 if (evaluator.coeff(i, j)) return true;
120 return false;
121 }
122}

References Eigen::Dynamic, and EIGEN_UNROLLING_LIMIT.

◆ colwise() [1/2]

template<typename Derived >
DenseBase< Derived >::ColwiseReturnType Eigen::DenseBase< Derived >::colwise
inline
Returns
a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
See also
rowwise(), class VectorwiseOp, TutorialReductionsVisitorsBroadcasting
675{
676 return ColwiseReturnType(derived());
677}
VectorwiseOp< Derived, Vertical > ColwiseReturnType
Definition DenseBase.h:493

◆ colwise() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC ConstColwiseReturnType Eigen::DenseBase< Derived >::colwise ( ) const
inline
Returns
a VectorwiseOp wrapper of *this providing additional partial reduction operations

Example:

Output:

See also
rowwise(), class VectorwiseOp, TutorialReductionsVisitorsBroadcasting
516 {
517 return ConstColwiseReturnType(derived());
518 }
const VectorwiseOp< const Derived, Vertical > ConstColwiseReturnType
Definition DenseBase.h:494

Referenced by igl::bounding_box(), igl::copyleft::offset_surface(), and Eigen::umeyama().

+ Here is the caller graph for this function:

◆ Constant() [1/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Constant ( const Scalar value)
static
Returns
an expression of a constant matrix of value value

This variant is only for fixed-size DenseBase types. For dynamic-size types, you need to use the variants taking size arguments.

The template parameter CustomNullaryOp is the type of the functor.

See also
class CwiseNullaryOp
213{
215 return DenseBase<Derived>::NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_constant_op<Scalar>(value));
216}
#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE)
Definition StaticAssert.h:144
EIGEN_DEVICE_FUNC CoeffReturnType value() const
Definition DenseBase.h:480
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObject > NullaryExpr(Index rows, Index cols, const CustomNullaryOp &func)

References EIGEN_STATIC_ASSERT_FIXED_SIZE, and Eigen::DenseBase< Derived >::NullaryExpr().

+ Here is the call graph for this function:

◆ Constant() [2/3]

template<typename Derived >
EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Constant ( Index  rows,
Index  cols,
const Scalar value 
)
static
Returns
an expression of a constant matrix of value value

The parameters rows and cols are the number of rows and of columns of the returned matrix. Must be compatible with this DenseBase type.

This variant is meant to be used for dynamic-size matrix types. For fixed-size types, it is redundant to pass rows and cols as arguments, so Zero() should be used instead.

The template parameter CustomNullaryOp is the type of the functor.

See also
class CwiseNullaryOp
175{
176 return DenseBase<Derived>::NullaryExpr(rows, cols, internal::scalar_constant_op<Scalar>(value));
177}

References Eigen::DenseBase< Derived >::NullaryExpr().

+ Here is the call graph for this function:

◆ Constant() [3/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Constant ( Index  size,
const Scalar value 
)
static
Returns
an expression of a constant matrix of value value

The parameter size is the size of the returned vector. Must be compatible with this DenseBase type.

\only_for_vectors

This variant is meant to be used for dynamic-size vector types. For fixed-size types, it is redundant to pass size as argument, so Zero() should be used instead.

The template parameter CustomNullaryOp is the type of the functor.

See also
class CwiseNullaryOp
197{
198 return DenseBase<Derived>::NullaryExpr(size, internal::scalar_constant_op<Scalar>(value));
199}

References Eigen::DenseBase< Derived >::NullaryExpr().

+ Here is the call graph for this function:

◆ count()

template<typename Derived >
Eigen::Index Eigen::DenseBase< Derived >::count
inline
Returns
the number of coefficients which evaluate to true
See also
all(), any()
130{
131 return derived().template cast<bool>().template cast<Index>().sum();
132}

◆ eval()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EvalReturnType Eigen::DenseBase< Derived >::eval ( ) const
inline
Returns
the matrix or vector obtained by evaluating this expression.

Notice that in the case of a plain matrix or vector (not an expression) this function just returns a const reference, in order to avoid a useless copy.

Warning
Be carefull with eval() and the auto C++ keyword, as detailed in this page .
402 {
403 // Even though MSVC does not honor strong inlining when the return type
404 // is a dynamic matrix, we desperately need strong inlining for fixed
405 // size types on MSVC.
406 return typename internal::eval<Derived>::type(derived());
407 }

◆ evalTo()

template<typename Derived >
template<typename Dest >
EIGEN_DEVICE_FUNC void Eigen::DenseBase< Derived >::evalTo ( Dest &  ) const
inline
585 {
586 EIGEN_STATIC_ASSERT((internal::is_same<Dest,void>::value),THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS);
587 }
@ value
Definition Meta.h:63

References EIGEN_STATIC_ASSERT.

◆ fill()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void Eigen::DenseBase< Derived >::fill ( const Scalar val)

Alias for setConstant(): sets all coefficients in this expression to val.

See also
setConstant(), Constant(), class CwiseNullaryOp
316{
317 setConstant(val);
318}
EIGEN_DEVICE_FUNC Derived & setConstant(const Scalar &value)
Definition CwiseNullaryOp.h:325

◆ flagged()

template<typename Derived >
template<unsigned int Added, unsigned int Removed>
EIGEN_DEPRECATED const Derived & Eigen::DenseBase< Derived >::flagged ( ) const
inline
313 { return derived(); }

◆ forceAlignedAccess() [1/2]

template<typename Derived >
EIGEN_DEVICE_FUNC ForceAlignedAccess< Derived > Eigen::DenseBase< Derived >::forceAlignedAccess ( )
inline

◆ forceAlignedAccess() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC const ForceAlignedAccess< Derived > Eigen::DenseBase< Derived >::forceAlignedAccess ( ) const
inline

◆ forceAlignedAccessIf() [1/2]

template<typename Derived >
template<bool Enable>
EIGEN_DEVICE_FUNC internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type Eigen::DenseBase< Derived >::forceAlignedAccessIf ( )
inline

◆ forceAlignedAccessIf() [2/2]

template<typename Derived >
template<bool Enable>
EIGEN_DEVICE_FUNC const internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type Eigen::DenseBase< Derived >::forceAlignedAccessIf ( ) const
inline

◆ format()

template<typename Derived >
const WithFormat< Derived > Eigen::DenseBase< Derived >::format ( const IOFormat fmt) const
inline
Returns
a WithFormat proxy object allowing to print a matrix the with given format fmt.

See class IOFormat for some examples.

See also
class IOFormat, class WithFormat
474 {
475 return WithFormat<Derived>(derived(), fmt);
476 }

Referenced by igl::matlab_format(), and igl::writeOBJ().

+ Here is the caller graph for this function:

◆ hasNaN()

template<typename Derived >
bool Eigen::DenseBase< Derived >::hasNaN
inline
Returns
true is *this contains at least one Not A Number (NaN).
See also
allFinite()
140{
141#if EIGEN_COMP_MSVC || (defined __FAST_MATH__)
142 return derived().array().isNaN().any();
143#else
144 return !((derived().array()==derived().array()).all());
145#endif
146}
EIGEN_DEVICE_FUNC bool all() const
Definition BooleanRedux.h:81

◆ innerSize()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::DenseBase< Derived >::innerSize ( ) const
inline
Returns
the inner size.
Note
For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension with respect to the storage order, i.e., the number of rows for a column-major matrix, and the number of columns for a row-major matrix.
231 {
232 return IsVectorAtCompileTime ? this->size()
233 : int(IsRowMajor) ? this->cols() : this->rows();
234 }
constexpr auto size(const C &c) -> decltype(c.size())
Definition span.hpp:183

References Eigen::DenseBase< Derived >::IsRowMajor, and Eigen::DenseBase< Derived >::IsVectorAtCompileTime.

◆ isApprox() [1/2]

template<typename Derived >
template<typename OtherDerived >
bool Eigen::DenseBase< Derived >::isApprox ( const DenseBase< OtherDerived > &  other,
const RealScalar prec 
) const
Returns
true if *this is approximately equal to other, within the precision determined by prec.
Note
The fuzzy compares are done multiplicatively. Two vectors $ v $ and $ w $ are considered to be approximately equal within precision $ p $ if

\[ \Vert v - w \Vert \leqslant p\,\min(\Vert v\Vert, \Vert w\Vert). \]

For matrices, the comparison is done using the Hilbert-Schmidt norm (aka Frobenius norm L2 norm).
Because of the multiplicativeness of this comparison, one can't use this function to check whether *this is approximately equal to the zero matrix or vector. Indeed, isApprox(zero) returns false unless *this itself is exactly the zero matrix or vector. If you want to test whether *this is zero, use internal::isMuchSmallerThan(const RealScalar&, RealScalar) instead.
See also
internal::isMuchSmallerThan(const RealScalar&, RealScalar) const
107{
108 return internal::isApprox_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
109}
static EIGEN_DEVICE_FUNC bool run(const Derived &x, const OtherDerived &y, const typename Derived::RealScalar &prec)
Definition Fuzzy.h:23

References Eigen::internal::isApprox_selector< Derived, OtherDerived, is_integer >::run().

+ Here is the call graph for this function:

◆ isApprox() [2/2]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isApprox ( const DenseBase< OtherDerived > &  other,
const RealScalar prec = NumTraitsScalar >::dummy_precision() 
) const

◆ isApproxToConstant()

template<typename Derived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isApproxToConstant ( const Scalar val,
const RealScalar prec = NumTraits<Scalar>::dummy_precision() 
) const
Returns
true if all coefficients in this matrix are approximately equal to val, to within precision prec
291{
292 typename internal::nested_eval<Derived,1>::type self(derived());
293 for(Index j = 0; j < cols(); ++j)
294 for(Index i = 0; i < rows(); ++i)
295 if(!internal::isApprox(self.coeff(i, j), val, prec))
296 return false;
297 return true;
298}
EIGEN_DEVICE_FUNC bool isApprox(const Scalar &x, const Scalar &y, const typename NumTraits< Scalar >::Real &precision=NumTraits< Scalar >::dummy_precision())
Definition MathFunctions.h:1361
conditional< Evaluate, PlainObject, typenameref_selector< T >::type >::type type
Definition XprHelper.h:452

References Eigen::internal::isApprox().

+ Here is the call graph for this function:

◆ isConstant()

template<typename Derived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isConstant ( const Scalar val,
const RealScalar prec = NumTraits<Scalar>::dummy_precision() 
) const

This is just an alias for isApproxToConstant().

Returns
true if all coefficients in this matrix are approximately equal to value, to within precision prec
306{
307 return isApproxToConstant(val, prec);
308}
EIGEN_DEVICE_FUNC bool isApproxToConstant(const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition CwiseNullaryOp.h:290

◆ isMuchSmallerThan() [1/4]

template<typename Derived >
template<typename OtherDerived >
bool Eigen::DenseBase< Derived >::isMuchSmallerThan ( const DenseBase< OtherDerived > &  other,
const RealScalar prec 
) const
Returns
true if the norm of *this is much smaller than the norm of other, within the precision determined by prec.
Note
The fuzzy compares are done multiplicatively. A vector $ v $ is considered to be much smaller than a vector $ w $ within precision $ p $ if

\[ \Vert v \Vert \leqslant p\,\Vert w\Vert. \]

For matrices, the comparison is done using the Hilbert-Schmidt norm.
See also
isApprox(), isMuchSmallerThan(const RealScalar&, RealScalar) const
149{
151}
static EIGEN_DEVICE_FUNC bool run(const Derived &x, const OtherDerived &y, const typename Derived::RealScalar &prec)
Definition Fuzzy.h:45

References Eigen::internal::isMuchSmallerThan_object_selector< Derived, OtherDerived, is_integer >::run().

+ Here is the call graph for this function:

◆ isMuchSmallerThan() [2/4]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isMuchSmallerThan ( const DenseBase< OtherDerived > &  other,
const RealScalar prec = NumTraitsScalar >::dummy_precision() 
) const

◆ isMuchSmallerThan() [3/4]

template<typename Derived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isMuchSmallerThan ( const RealScalar other,
const RealScalar prec = NumTraitsScalar >::dummy_precision() 
) const

◆ isMuchSmallerThan() [4/4]

template<typename Derived >
template<typename Derived >
bool Eigen::DenseBase< Derived >::isMuchSmallerThan ( const typename NumTraits< Scalar >::Real &  other,
const RealScalar prec 
) const
Returns
true if the norm of *this is much smaller than other, within the precision determined by prec.
Note
The fuzzy compares are done multiplicatively. A vector $ v $ is considered to be much smaller than $ x $ within precision $ p $ if

\[ \Vert v \Vert \leqslant p\,\vert x\vert. \]

For matrices, the comparison is done using the Hilbert-Schmidt norm. For this reason, the value of the reference scalar other should come from the Hilbert-Schmidt norm of a reference matrix of same dimensions.

See also
isApprox(), isMuchSmallerThan(const DenseBase<OtherDerived>&, RealScalar) const
129{
131}
static EIGEN_DEVICE_FUNC bool run(const Derived &x, const typename Derived::RealScalar &y, const typename Derived::RealScalar &prec)
Definition Fuzzy.h:65

References Eigen::internal::isMuchSmallerThan_scalar_selector< Derived, is_integer >::run().

+ Here is the call graph for this function:

◆ isOnes()

template<typename Derived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isOnes ( const RealScalar prec = NumTraits<Scalar>::dummy_precision()) const
Returns
true if *this is approximately equal to the matrix where all coefficients are equal to 1, within the precision given by prec.

Example:

Output:

See also
class CwiseNullaryOp, Ones()
613{
614 return isApproxToConstant(Scalar(1), prec);
615}
internal::traits< Derived >::Scalar Scalar
Definition DenseBase.h:66

◆ isZero()

template<typename Derived >
EIGEN_DEVICE_FUNC bool Eigen::DenseBase< Derived >::isZero ( const RealScalar prec = NumTraits<Scalar>::dummy_precision()) const
Returns
true if *this is approximately equal to the zero matrix, within the precision given by prec.

Example:

Output:

See also
class CwiseNullaryOp, Zero()
482{
483 typename internal::nested_eval<Derived,1>::type self(derived());
484 for(Index j = 0; j < cols(); ++j)
485 for(Index i = 0; i < rows(); ++i)
486 if(!internal::isMuchSmallerThan(self.coeff(i, j), static_cast<Scalar>(1), prec))
487 return false;
488 return true;
489}
EIGEN_DEVICE_FUNC bool isMuchSmallerThan(const Scalar &x, const OtherScalar &y, const typename NumTraits< Scalar >::Real &precision=NumTraits< Scalar >::dummy_precision())
Definition MathFunctions.h:1354

References Eigen::internal::isMuchSmallerThan().

+ Here is the call graph for this function:

◆ lazyAssign() [1/2]

template<typename Derived >
template<typename OtherDerived >
EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::lazyAssign ( const DenseBase< OtherDerived > &  other)
21{
22 enum{
24 };
25
27 EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
28 EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
29
30 eigen_assert(rows() == other.rows() && cols() == other.cols());
31 internal::call_assignment_no_alias(derived(),other.derived());
32
33 return derived();
34}
#define eigen_assert(x)
Definition Macros.h:579
#define EIGEN_STATIC_ASSERT_LVALUE(Derived)
Definition StaticAssert.h:199
#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0, TYPE1)
Definition StaticAssert.h:189
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_assignment_no_alias(Dst &dst, const Src &src, const Func &func)
Definition AssignEvaluator.h:819

References Eigen::internal::call_assignment_no_alias(), eigen_assert, EIGEN_STATIC_ASSERT, EIGEN_STATIC_ASSERT_LVALUE, and EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE.

+ Here is the call graph for this function:

◆ lazyAssign() [2/2]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & Eigen::DenseBase< Derived >::lazyAssign ( const DenseBase< OtherDerived > &  other)

◆ LinSpaced() [1/4]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( const Scalar low,
const Scalar high 
)
static

Sets a linearly spaced vector.

The function generates 'size' equally spaced values in the closed interval [low,high]. When size is set to 1, a vector of length 1 containing 'high' is returned.

\only_for_vectors

Example:

Output:

For integer scalar types, an even spacing is possible if and only if the length of the range, i.e., high-low is a scalar multiple of size-1, or if size is a scalar multiple of the number of values high-low+1 (meaning each value can be repeated the same number of time). If one of these two considions is not satisfied, then high is lowered to the largest value satisfying one of this constraint. Here are some examples:

Example:

Output:

See also
setLinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp Special version for fixed size types which does not require the size parameter.
281{
284 return DenseBase<Derived>::NullaryExpr(Derived::SizeAtCompileTime, internal::linspaced_op<Scalar,PacketScalar>(low,high,Derived::SizeAtCompileTime));
285}
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)
Definition StaticAssert.h:139

References EIGEN_STATIC_ASSERT_FIXED_SIZE, EIGEN_STATIC_ASSERT_VECTOR_ONLY, and Eigen::DenseBase< Derived >::NullaryExpr().

+ Here is the call graph for this function:

◆ LinSpaced() [2/4]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( Index  size,
const Scalar low,
const Scalar high 
)
static

Sets a linearly spaced vector.

The function generates 'size' equally spaced values in the closed interval [low,high]. When size is set to 1, a vector of length 1 containing 'high' is returned.

\only_for_vectors

Example:

Output:

For integer scalar types, an even spacing is possible if and only if the length of the range, i.e., high-low is a scalar multiple of size-1, or if size is a scalar multiple of the number of values high-low+1 (meaning each value can be repeated the same number of time). If one of these two considions is not satisfied, then high is lowered to the largest value satisfying one of this constraint. Here are some examples:

Example:

Output:

See also
setLinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp
269{
271 return DenseBase<Derived>::NullaryExpr(size, internal::linspaced_op<Scalar,PacketScalar>(low,high,size));
272}

◆ LinSpaced() [3/4]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( Sequential_t  ,
const Scalar low,
const Scalar high 
)
static
See also
LinSpaced(Scalar,Scalar)
237{
240 return DenseBase<Derived>::NullaryExpr(Derived::SizeAtCompileTime, internal::linspaced_op<Scalar,PacketScalar>(low,high,Derived::SizeAtCompileTime));
241}

References EIGEN_STATIC_ASSERT_FIXED_SIZE, EIGEN_STATIC_ASSERT_VECTOR_ONLY, and Eigen::DenseBase< Derived >::NullaryExpr().

+ Here is the call graph for this function:

◆ LinSpaced() [4/4]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( Sequential_t  ,
Index  size,
const Scalar low,
const Scalar high 
)
static
See also
LinSpaced(Index,Scalar,Scalar), setLinSpaced(Index,const Scalar&,const Scalar&)
225{
227 return DenseBase<Derived>::NullaryExpr(size, internal::linspaced_op<Scalar,PacketScalar>(low,high,size));
228}

References EIGEN_STATIC_ASSERT_VECTOR_ONLY, and Eigen::DenseBase< Derived >::NullaryExpr().

+ Here is the call graph for this function:

◆ lpNorm()

template<typename Derived >
template<int p>
RealScalar Eigen::DenseBase< Derived >::lpNorm ( ) const

◆ maxCoeff() [1/3]

template<typename Derived >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::maxCoeff
Returns
the maximum of all coefficients of *this.
Warning
the result is undefined if *this contains NaN.
437{
438 return derived().redux(Eigen::internal::scalar_max_op<Scalar,Scalar>());
439}
Definition BinaryFunctors.h:167

Referenced by igl::copyleft::cgal::half_space_box(), igl::isolines(), igl::min_quad_with_fixed_precompute(), igl::octree(), Eigen::internal::lpNorm_selector< Derived, Infinity >::run(), and igl::slice().

+ Here is the caller graph for this function:

◆ maxCoeff() [2/3]

template<typename Derived >
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::maxCoeff ( IndexType *  index) const
Returns
the maximum of all coefficients of *this and puts in *index its location.
Warning
the result is undefined if *this contains NaN.
See also
DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
263{
265 internal::max_coeff_visitor<Derived> maxVisitor;
266 this->visit(maxVisitor);
267 *index = (RowsAtCompileTime==1) ? maxVisitor.col : maxVisitor.row;
268 return maxVisitor.res;
269}
EIGEN_DEVICE_FUNC RowXpr row(Index i)
This is the const version of row(). *‍/.
Definition BlockMethods.h:859
EIGEN_DEVICE_FUNC void visit(Visitor &func) const
Definition Visitor.h:107

References Eigen::internal::coeff_visitor< Derived >::col, EIGEN_STATIC_ASSERT_VECTOR_ONLY, Eigen::internal::coeff_visitor< Derived >::res, and Eigen::internal::coeff_visitor< Derived >::row.

◆ maxCoeff() [3/3]

template<typename Derived >
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::maxCoeff ( IndexType *  rowId,
IndexType *  colId 
) const
Returns
the maximum of all coefficients of *this and puts in *row and *col its location.
Warning
the result is undefined if *this contains NaN.
See also
DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::maxCoeff()
245{
246 internal::max_coeff_visitor<Derived> maxVisitor;
247 this->visit(maxVisitor);
248 *rowPtr = maxVisitor.row;
249 if (colPtr) *colPtr = maxVisitor.col;
250 return maxVisitor.res;
251}

References Eigen::internal::coeff_visitor< Derived >::col, Eigen::internal::coeff_visitor< Derived >::res, and Eigen::internal::coeff_visitor< Derived >::row.

◆ mean()

template<typename Derived >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::mean
Returns
the mean of all coefficients of *this
See also
trace(), prod(), sum()
463{
464#ifdef __INTEL_COMPILER
465 #pragma warning push
466 #pragma warning ( disable : 2259 )
467#endif
469#ifdef __INTEL_COMPILER
470 #pragma warning pop
471#endif
472}
EIGEN_DEVICE_FUNC Scalar redux(const BinaryOp &func) const
Definition BinaryFunctors.h:33

◆ minCoeff() [1/3]

template<typename Derived >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::minCoeff
Returns
the minimum of all coefficients of *this.
Warning
the result is undefined if *this contains NaN.
427{
428 return derived().redux(Eigen::internal::scalar_min_op<Scalar,Scalar>());
429}
Definition BinaryFunctors.h:141

Referenced by igl::copyleft::cgal::half_space_box(), igl::isolines(), igl::min_quad_with_fixed_precompute(), igl::octree(), and igl::slice().

+ Here is the caller graph for this function:

◆ minCoeff() [2/3]

template<typename Derived >
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::minCoeff ( IndexType *  index) const
Returns
the minimum of all coefficients of *this and puts in *index its location.
Warning
the result is undefined if *this contains NaN.
See also
DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::minCoeff()
226{
228 internal::min_coeff_visitor<Derived> minVisitor;
229 this->visit(minVisitor);
230 *index = IndexType((RowsAtCompileTime==1) ? minVisitor.col : minVisitor.row);
231 return minVisitor.res;
232}

References Eigen::internal::coeff_visitor< Derived >::col, EIGEN_STATIC_ASSERT_VECTOR_ONLY, Eigen::internal::coeff_visitor< Derived >::res, and Eigen::internal::coeff_visitor< Derived >::row.

◆ minCoeff() [3/3]

template<typename Derived >
template<typename IndexType >
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::minCoeff ( IndexType *  rowId,
IndexType *  colId 
) const
Returns
the minimum of all coefficients of *this and puts in *row and *col its location.
Warning
the result is undefined if *this contains NaN.
See also
DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visit(), DenseBase::minCoeff()
208{
209 internal::min_coeff_visitor<Derived> minVisitor;
210 this->visit(minVisitor);
211 *rowId = minVisitor.row;
212 if (colId) *colId = minVisitor.col;
213 return minVisitor.res;
214}

References Eigen::internal::coeff_visitor< Derived >::col, Eigen::internal::coeff_visitor< Derived >::res, and Eigen::internal::coeff_visitor< Derived >::row.

◆ nestByValue()

template<typename Derived >
const NestByValue< Derived > Eigen::DenseBase< Derived >::nestByValue
inline
Returns
an expression of the temporary version of *this.
104{
105 return NestByValue<Derived>(derived());
106}

◆ nonZeros()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::DenseBase< Derived >::nonZeros ( ) const
inline
Returns
the number of nonzero coefficients which is in practice the number of stored coefficients.
210{ return size(); }

◆ NullaryExpr() [1/6]

template<typename Derived >
template<typename CustomNullaryOp >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseNullaryOp< CustomNullaryOp, typename DenseBase< Derived >::PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( const CustomNullaryOp &  func)
Returns
an expression of a matrix defined by a custom functor func

This variant is only for fixed-size DenseBase types. For dynamic-size types, you need to use the variants taking size arguments.

The template parameter CustomNullaryOp is the type of the functor.

See also
class CwiseNullaryOp
155{
156 return CwiseNullaryOp<CustomNullaryOp, PlainObject>(RowsAtCompileTime, ColsAtCompileTime, func);
157}

◆ NullaryExpr() [2/6]

template<typename Derived >
template<typename CustomNullaryOp >
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( const CustomNullaryOp &  func)
static

◆ NullaryExpr() [3/6]

template<typename Derived >
template<typename CustomNullaryOp >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseNullaryOp< CustomNullaryOp, typename DenseBase< Derived >::PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( Index  rows,
Index  cols,
const CustomNullaryOp &  func 
)
Returns
an expression of a matrix defined by a custom functor func

The parameters rows and cols are the number of rows and of columns of the returned matrix. Must be compatible with this MatrixBase type.

This variant is meant to be used for dynamic-size matrix types. For fixed-size types, it is redundant to pass rows and cols as arguments, so Zero() should be used instead.

The template parameter CustomNullaryOp is the type of the functor.

See also
class CwiseNullaryOp
110{
111 return CwiseNullaryOp<CustomNullaryOp, PlainObject>(rows, cols, func);
112}

◆ NullaryExpr() [4/6]

template<typename Derived >
template<typename CustomNullaryOp >
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( Index  rows,
Index  cols,
const CustomNullaryOp &  func 
)
static

◆ NullaryExpr() [5/6]

template<typename Derived >
template<typename CustomNullaryOp >
EIGEN_STRONG_INLINE const CwiseNullaryOp< CustomNullaryOp, typename DenseBase< Derived >::PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( Index  size,
const CustomNullaryOp &  func 
)
Returns
an expression of a matrix defined by a custom functor func

The parameter size is the size of the returned vector. Must be compatible with this MatrixBase type.

\only_for_vectors

This variant is meant to be used for dynamic-size vector types. For fixed-size types, it is redundant to pass size as argument, so Zero() should be used instead.

The template parameter CustomNullaryOp is the type of the functor.

Here is an example with C++11 random generators:

Output:

See also
class CwiseNullaryOp
136{
138 if(RowsAtCompileTime == 1) return CwiseNullaryOp<CustomNullaryOp, PlainObject>(1, size, func);
139 else return CwiseNullaryOp<CustomNullaryOp, PlainObject>(size, 1, func);
140}

References EIGEN_STATIC_ASSERT_VECTOR_ONLY.

◆ NullaryExpr() [6/6]

template<typename Derived >
template<typename CustomNullaryOp >
static EIGEN_DEVICE_FUNC const CwiseNullaryOp< CustomNullaryOp, PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( Index  size,
const CustomNullaryOp &  func 
)
static

◆ Ones() [1/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Ones
static
Returns
an expression of a fixed-size matrix or vector where all coefficients equal one.

This variant is only for fixed-size MatrixBase types. For dynamic-size types, you need to use the variants taking size arguments.

Example:

Output:

See also
Ones(Index), Ones(Index,Index), isOnes(), class Ones
598{
599 return Constant(Scalar(1));
600}
static EIGEN_DEVICE_FUNC const ConstantReturnType Constant(Index rows, Index cols, const Scalar &value)
Definition CwiseNullaryOp.h:174

◆ Ones() [2/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Ones ( Index  rows,
Index  cols 
)
static
Returns
an expression of a matrix where all coefficients equal one.

The parameters rows and cols are the number of rows and of columns of the returned matrix. Must be compatible with this MatrixBase type.

This variant is meant to be used for dynamic-size matrix types. For fixed-size types, it is redundant to pass rows and cols as arguments, so Ones() should be used instead.

Example:

Output:

See also
Ones(), Ones(Index), isOnes(), class Ones
558{
559 return Constant(rows, cols, Scalar(1));
560}

◆ Ones() [3/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Ones ( Index  newSize)
static
Returns
an expression of a vector where all coefficients equal one.

The parameter newSize is the size of the returned vector. Must be compatible with this MatrixBase type.

\only_for_vectors

This variant is meant to be used for dynamic-size vector types. For fixed-size types, it is redundant to pass size as argument, so Ones() should be used instead.

Example:

Output:

See also
Ones(), Ones(Index,Index), isOnes(), class Ones
581{
582 return Constant(newSize, Scalar(1));
583}

◆ operator*=()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::operator*= ( const Scalar other)
19{
20 internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::mul_assign_op<Scalar,Scalar>());
21 return derived();
22}
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_assignment(Dst &dst, const Src &src)
Definition AssignEvaluator.h:780

References Eigen::internal::call_assignment().

+ Here is the call graph for this function:

◆ operator+=()

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & Eigen::DenseBase< Derived >::operator+= ( const EigenBase< OtherDerived > &  other)
143{
144 call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
145 return derived();
146}

References Eigen::EigenBase< Derived >::derived().

+ Here is the call graph for this function:

◆ operator-=()

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & Eigen::DenseBase< Derived >::operator-= ( const EigenBase< OtherDerived > &  other)
152{
153 call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
154 return derived();
155}

References Eigen::EigenBase< Derived >::derived().

+ Here is the call graph for this function:

◆ operator/=()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::operator/= ( const Scalar other)
40{
41 internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::div_assign_op<Scalar,Scalar>());
42 return derived();
43}

References Eigen::internal::call_assignment().

+ Here is the call graph for this function:

◆ operator<<() [1/3]

template<typename Derived >
template<typename OtherDerived >
CommaInitializer< Derived > Eigen::DenseBase< Derived >::operator<< ( const DenseBase< OtherDerived > &  other)
inline
See also
operator<<(const Scalar&)
154{
155 return CommaInitializer<Derived>(*static_cast<Derived *>(this), other);
156}

◆ operator<<() [2/3]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC CommaInitializer< Derived > Eigen::DenseBase< Derived >::operator<< ( const DenseBase< OtherDerived > &  other)

◆ operator<<() [3/3]

template<typename Derived >
CommaInitializer< Derived > Eigen::DenseBase< Derived >::operator<< ( const Scalar s)
inline

Convenient operator to set the coefficients of a matrix.

The coefficients must be provided in a row major order and exactly match the size of the matrix. Otherwise an assertion is raised.

Example:

Output:

Note
According the c++ standard, the argument expressions of this comma initializer are evaluated in arbitrary order.
See also
CommaInitializer::finished(), class CommaInitializer
145{
146 return CommaInitializer<Derived>(*static_cast<Derived*>(this), s);
147}

◆ operator=() [1/5]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::operator= ( const DenseBase< Derived > &  other)

Special case of the template operator=, in order to prevent the compiler from generating a default operator= (issue hit with g++ 4.1)

48{
49 internal::call_assignment(derived(), other.derived());
50 return derived();
51}

References Eigen::internal::call_assignment().

+ Here is the call graph for this function:

◆ operator=() [2/5]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::operator= ( const DenseBase< OtherDerived > &  other)

Copies other into *this.

Returns
a reference to *this.
40{
41 internal::call_assignment(derived(), other.derived());
42 return derived();
43}

References Eigen::internal::call_assignment().

+ Here is the call graph for this function:

◆ operator=() [3/5]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & Eigen::DenseBase< Derived >::operator= ( const EigenBase< OtherDerived > &  other)

Copies the generic expression other into *this.

The expression must provide a (templated) evalTo(Derived& dst) const function which does the actual job. In practice, this allows any user to write its own special matrix without having to modify MatrixBase

Returns
a reference to *this.
134{
135 call_assignment(derived(), other.derived());
136 return derived();
137}

References Eigen::EigenBase< Derived >::derived().

+ Here is the call graph for this function:

◆ operator=() [4/5]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Derived & Eigen::DenseBase< Derived >::operator= ( const ReturnByValue< OtherDerived > &  func)

◆ operator=() [5/5]

template<typename Derived >
template<typename OtherDerived >
Derived & Eigen::DenseBase< Derived >::operator= ( const ReturnByValue< OtherDerived > &  other)
83{
84 other.evalTo(derived());
85 return derived();
86}

References Eigen::ReturnByValue< Derived >::evalTo().

+ Here is the call graph for this function:

◆ outerSize()

template<typename Derived >
EIGEN_DEVICE_FUNC Index Eigen::DenseBase< Derived >::outerSize ( ) const
inline
Returns
the outer size.
Note
For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension with respect to the storage order, i.e., the number of columns for a column-major matrix, and the number of rows for a row-major matrix.
219 {
220 return IsVectorAtCompileTime ? 1
221 : int(IsRowMajor) ? this->rows() : this->cols();
222 }

References Eigen::DenseBase< Derived >::IsRowMajor, and Eigen::DenseBase< Derived >::IsVectorAtCompileTime.

◆ prod()

template<typename Derived >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::prod
Returns
the product of all coefficients of *this

Example:

Output:

See also
sum(), mean(), trace()
484{
486 return Scalar(1);
487 return derived().redux(Eigen::internal::scalar_product_op<Scalar>());
488}
Definition BinaryFunctors.h:77

References Eigen::Dynamic.

◆ Random() [1/3]

template<typename Derived >
const DenseBase< Derived >::RandomReturnType Eigen::DenseBase< Derived >::Random
inlinestatic
Returns
a fixed-size random matrix or vector expression

Numbers are uniformly spread through their whole definition range for integer types, and in the [-1:1] range for floating point scalar types.

This variant is only for fixed-size MatrixBase types. For dynamic-size types, you need to use the variants taking size arguments.

Example:

Output:

This expression has the "evaluate before nesting" flag so that it will be evaluated into a temporary matrix whenever it is nested in a larger expression. This prevents unexpected behavior with expressions involving random matrices.

\not_reentrant

See also
DenseBase::setRandom(), DenseBase::Random(Index,Index), DenseBase::Random(Index)
114{
115 return NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_random_op<Scalar>());
116}

◆ Random() [2/3]

template<typename Derived >
const DenseBase< Derived >::RandomReturnType Eigen::DenseBase< Derived >::Random ( Index  rows,
Index  cols 
)
inlinestatic
Returns
a random matrix expression

Numbers are uniformly spread through their whole definition range for integer types, and in the [-1:1] range for floating point scalar types.

The parameters rows and cols are the number of rows and of columns of the returned matrix. Must be compatible with this MatrixBase type.

\not_reentrant

This variant is meant to be used for dynamic-size matrix types. For fixed-size types, it is redundant to pass rows and cols as arguments, so Random() should be used instead.

Example:

Output:

This expression has the "evaluate before nesting" flag so that it will be evaluated into a temporary matrix whenever it is nested in a larger expression. This prevents unexpected behavior with expressions involving random matrices.

See DenseBase::NullaryExpr(Index, const CustomNullaryOp&) for an example using C++11 random generators.

See also
DenseBase::setRandom(), DenseBase::Random(Index), DenseBase::Random()
57{
58 return NullaryExpr(rows, cols, internal::scalar_random_op<Scalar>());
59}

◆ Random() [3/3]

template<typename Derived >
const DenseBase< Derived >::RandomReturnType Eigen::DenseBase< Derived >::Random ( Index  size)
inlinestatic
Returns
a random vector expression

Numbers are uniformly spread through their whole definition range for integer types, and in the [-1:1] range for floating point scalar types.

The parameter size is the size of the returned vector. Must be compatible with this MatrixBase type.

\only_for_vectors \not_reentrant

This variant is meant to be used for dynamic-size vector types. For fixed-size types, it is redundant to pass size as argument, so Random() should be used instead.

Example:

Output:

This expression has the "evaluate before nesting" flag so that it will be evaluated into a temporary vector whenever it is nested in a larger expression. This prevents unexpected behavior with expressions involving random matrices.

See also
DenseBase::setRandom(), DenseBase::Random(Index,Index), DenseBase::Random()
88{
89 return NullaryExpr(size, internal::scalar_random_op<Scalar>());
90}

◆ redux() [1/2]

template<typename Derived >
template<typename BinaryOp >
EIGEN_DEVICE_FUNC Scalar Eigen::DenseBase< Derived >::redux ( const BinaryOp &  func) const

Referenced by Eigen::internal::member_redux< BinaryOp, Scalar >::operator()().

+ Here is the caller graph for this function:

◆ redux() [2/2]

template<typename Derived >
template<typename Func >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::redux ( const Func &  func) const
Returns
the result of a full redux operation on the whole matrix or vector using func

The template parameter BinaryOp is the type of the functor func which must be an associative operator. Both current C++98 and C++11 functor styles are handled.

See also
DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()
412{
413 eigen_assert(this->rows()>0 && this->cols()>0 && "you are using an empty matrix");
414
415 typedef typename internal::redux_evaluator<Derived> ThisEvaluator;
416 ThisEvaluator thisEval(derived());
417
418 return internal::redux_impl<Func, ThisEvaluator>::run(thisEval, func);
419}

References eigen_assert.

◆ replicate() [1/3]

template<typename Derived >
template<int RowFactor, int ColFactor>
EIGEN_DEVICE_FUNC const Replicate< Derived, RowFactor, ColFactor > Eigen::DenseBase< Derived >::replicate ( ) const

Referenced by igl::min_quad_with_fixed_solve().

+ Here is the caller graph for this function:

◆ replicate() [2/3]

template<typename Derived >
template<int RowFactor, int ColFactor>
const Replicate< Derived, RowFactor, ColFactor > Eigen::DenseBase< Derived >::replicate ( ) const
Returns
an expression of the replication of *this

Example:

Output:

See also
VectorwiseOp::replicate(), DenseBase::replicate(Index,Index), class Replicate
120{
121 return Replicate<Derived,RowFactor,ColFactor>(derived());
122}

◆ replicate() [3/3]

template<typename Derived >
EIGEN_DEVICE_FUNC const Replicate< Derived, Dynamic, Dynamic > Eigen::DenseBase< Derived >::replicate ( Index  rowFactor,
Index  colFactor 
) const
inline
Returns
an expression of the replication of *this

Example:

Output:

See also
VectorwiseOp::replicate(), DenseBase::replicate<int,int>(), class Replicate
555 {
556 return Replicate<Derived, Dynamic, Dynamic>(derived(), rowFactor, colFactor);
557 }

◆ resize() [1/2]

template<typename Derived >
EIGEN_DEVICE_FUNC void Eigen::DenseBase< Derived >::resize ( Index  newSize)
inline

Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does nothing else.

242 {
244 eigen_assert(newSize == this->size()
245 && "DenseBase::resize() does not actually allow to resize.");
246 }
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
Definition Macros.h:591

References eigen_assert, and EIGEN_ONLY_USED_FOR_DEBUG.

Referenced by Eigen::TriangularBase< Derived >::evalToLazy(), igl::find(), and igl::slice_tets().

+ Here is the caller graph for this function:

◆ resize() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC void Eigen::DenseBase< Derived >::resize ( Index  rows,
Index  cols 
)
inline

Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does nothing else.

253 {
256 eigen_assert(rows == this->rows() && cols == this->cols()
257 && "DenseBase::resize() does not actually allow to resize.");
258 }

References eigen_assert, and EIGEN_ONLY_USED_FOR_DEBUG.

◆ reverse() [1/2]

template<typename Derived >
DenseBase< Derived >::ReverseReturnType Eigen::DenseBase< Derived >::reverse
inline
Returns
an expression of the reverse of *this.

Example:

Output:

 
119{
120 return ReverseReturnType(derived());
121}
Reverse< Derived, BothDirections > ReverseReturnType
Definition DenseBase.h:559

◆ reverse() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC ConstReverseReturnType Eigen::DenseBase< Derived >::reverse ( ) const
inline

This is the const version of reverse().

565 {
566 return ConstReverseReturnType(derived());
567 }
const Reverse< const Derived, BothDirections > ConstReverseReturnType
Definition DenseBase.h:560

◆ reverseInPlace()

template<typename Derived >
void Eigen::DenseBase< Derived >::reverseInPlace
inline

This is the "in place" version of reverse: it reverses *this.

In most cases it is probably better to simply use the reversed expression of a matrix. However, when reversing the matrix data itself is really needed, then this "in-place" version is probably the right choice because it provides the following additional benefits:

  • less error prone: doing the same operation with .reverse() requires special care:
    m = m.reverse().eval();
  • this API enables reverse operations without the need for a temporary
  • it allows future optimizations (cache friendliness, etc.)
See also
VectorwiseOp::reverseInPlace(), reverse()
140{
141 if(cols()>rows())
142 {
143 Index half = cols()/2;
144 leftCols(half).swap(rightCols(half).reverse());
145 if((cols()%2)==1)
146 {
147 Index half2 = rows()/2;
148 col(half).head(half2).swap(col(half).tail(half2).reverse());
149 }
150 }
151 else
152 {
153 Index half = rows()/2;
154 topRows(half).swap(bottomRows(half).reverse());
155 if((rows()%2)==1)
156 {
157 Index half2 = cols()/2;
158 row(half).head(half2).swap(row(half).tail(half2).reverse());
159 }
160 }
161}
EIGEN_DEVICE_FUNC ColsBlockXpr rightCols(Index n)
This is the const version of rightCols(Index).
Definition BlockMethods.h:658
EIGEN_DEVICE_FUNC SegmentReturnType tail(Index n)
This is the const version of tail(Index).
Definition BlockMethods.h:949
EIGEN_DEVICE_FUNC ColsBlockXpr leftCols(Index n)
This is the const version of leftCols(Index).
Definition BlockMethods.h:602
EIGEN_DEVICE_FUNC ColXpr col(Index i)
This is the const version of col().
Definition BlockMethods.h:838
EIGEN_DEVICE_FUNC RowsBlockXpr bottomRows(Index n)
This is the const version of bottomRows(Index).
Definition BlockMethods.h:488
EIGEN_DEVICE_FUNC RowsBlockXpr topRows(Index n)
This is the const version of topRows(Index).
Definition BlockMethods.h:432
EIGEN_DEVICE_FUNC ReverseReturnType reverse()
Definition Reverse.h:118

References bottomRows(), col(), leftCols(), rightCols(), row(), tail(), and topRows().

+ Here is the call graph for this function:

◆ rowwise() [1/2]

template<typename Derived >
DenseBase< Derived >::RowwiseReturnType Eigen::DenseBase< Derived >::rowwise
inline
Returns
a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
See also
colwise(), class VectorwiseOp, TutorialReductionsVisitorsBroadcasting
689{
690 return RowwiseReturnType(derived());
691}
VectorwiseOp< Derived, Horizontal > RowwiseReturnType
Definition DenseBase.h:491

◆ rowwise() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC ConstRowwiseReturnType Eigen::DenseBase< Derived >::rowwise ( ) const
inline
Returns
a VectorwiseOp wrapper of *this providing additional partial reduction operations

Example:

Output:

See also
colwise(), class VectorwiseOp, TutorialReductionsVisitorsBroadcasting
504 {
505 return ConstRowwiseReturnType(derived());
506 }
const VectorwiseOp< const Derived, Horizontal > ConstRowwiseReturnType
Definition DenseBase.h:492

Referenced by igl::normalize_row_sums(), and Eigen::umeyama().

+ Here is the caller graph for this function:

◆ select() [1/3]

template<typename Derived >
template<typename ThenDerived , typename ElseDerived >
const Select< Derived, ThenDerived, ElseDerived > Eigen::DenseBase< Derived >::select ( const DenseBase< ThenDerived > &  thenMatrix,
const DenseBase< ElseDerived > &  elseMatrix 
) const
inline
Returns
a matrix where each coefficient (i,j) is equal to thenMatrix(i,j) if *this(i,j), and elseMatrix(i,j) otherwise.

Example:

Output:

See also
class Select
126{
127 return Select<Derived,ThenDerived,ElseDerived>(derived(), thenMatrix.derived(), elseMatrix.derived());
128}

◆ select() [2/3]

template<typename Derived >
template<typename ThenDerived >
const Select< Derived, ThenDerived, typename ThenDerived::ConstantReturnType > Eigen::DenseBase< Derived >::select ( const DenseBase< ThenDerived > &  thenMatrix,
const typename ThenDerived::Scalar &  elseScalar 
) const
inline

Version of DenseBase::select(const DenseBase&, const DenseBase&) with the else expression being a scalar value.

See also
DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
140{
141 return Select<Derived,ThenDerived,typename ThenDerived::ConstantReturnType>(
142 derived(), thenMatrix.derived(), ThenDerived::Constant(rows(),cols(),elseScalar));
143}

◆ select() [3/3]

template<typename Derived >
template<typename ElseDerived >
const Select< Derived, typename ElseDerived::ConstantReturnType, ElseDerived > Eigen::DenseBase< Derived >::select ( const typename ElseDerived::Scalar &  thenScalar,
const DenseBase< ElseDerived > &  elseMatrix 
) const
inline

Version of DenseBase::select(const DenseBase&, const DenseBase&) with the then expression being a scalar value.

See also
DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
155{
156 return Select<Derived,typename ElseDerived::ConstantReturnType,ElseDerived>(
157 derived(), ElseDerived::Constant(rows(),cols(),thenScalar), elseMatrix.derived());
158}

◆ setConstant()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::setConstant ( const Scalar val)

Sets all coefficients in this expression to value val.

See also
fill(), setConstant(Index,const Scalar&), setConstant(Index,Index,const Scalar&), setZero(), setOnes(), Constant(), class CwiseNullaryOp, setZero(), setOnes()
326{
327 return derived() = Constant(rows(), cols(), val);
328}

Referenced by Eigen::ArrayBase< Derived >::operator=().

+ Here is the caller graph for this function:

◆ setLinSpaced() [1/2]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::setLinSpaced ( const Scalar low,
const Scalar high 
)

Sets a linearly spaced vector.

The function fills *this with equally spaced values in the closed interval [low,high]. When size is set to 1, a vector of length 1 containing 'high' is returned.

\only_for_vectors

For integer scalar types, do not miss the explanations on the definition of even spacing .

See also
LinSpaced(Index,const Scalar&,const Scalar&), setLinSpaced(Index, const Scalar&, const Scalar&), CwiseNullaryOp
404{
406 return setLinSpaced(size(), low, high);
407}
EIGEN_DEVICE_FUNC Derived & setLinSpaced(Index size, const Scalar &low, const Scalar &high)
Sets a linearly spaced vector.
Definition CwiseNullaryOp.h:383

References EIGEN_STATIC_ASSERT_VECTOR_ONLY.

◆ setLinSpaced() [2/2]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::setLinSpaced ( Index  newSize,
const Scalar low,
const Scalar high 
)

Sets a linearly spaced vector.

The function generates 'size' equally spaced values in the closed interval [low,high]. When size is set to 1, a vector of length 1 containing 'high' is returned.

\only_for_vectors

Example:

Output:

For integer scalar types, do not miss the explanations on the definition of even spacing .

See also
LinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp
384{
386 return derived() = Derived::NullaryExpr(newSize, internal::linspaced_op<Scalar,PacketScalar>(low,high,newSize));
387}

References EIGEN_STATIC_ASSERT_VECTOR_ONLY.

◆ setOnes()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::setOnes

Sets all coefficients in this expression to one.

Example:

Output:

See also
class CwiseNullaryOp, Ones()
626{
627 return setConstant(Scalar(1));
628}

◆ setRandom()

template<typename Derived >
Derived & Eigen::DenseBase< Derived >::setRandom
inline

Sets all coefficients in this expression to random values.

Numbers are uniformly spread through their whole definition range for integer types, and in the [-1:1] range for floating point scalar types.

\not_reentrant

Example:

Output:

See also
class CwiseNullaryOp, setRandom(Index), setRandom(Index,Index)
132{
133 return *this = Random(rows(), cols());
134}
static const RandomReturnType Random()
Definition Random.h:113

◆ setZero()

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::DenseBase< Derived >::setZero

Sets all coefficients in this expression to zero.

Example:

Output:

See also
class CwiseNullaryOp, Zero()
500{
501 return setConstant(Scalar(0));
502}

Referenced by Eigen::SPQR< _MatrixType >::_solve_impl(), Eigen::PermutationBase< Derived >::evalTo(), and Eigen::InverseImpl< PermutationType, PermutationStorage >::evalTo().

+ Here is the caller graph for this function:

◆ sum()

template<typename Derived >
EIGEN_STRONG_INLINE internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::sum
Returns
the sum of all coefficients of *this

If *this is empty, then the value 0 is returned.

See also
trace(), prod(), mean()
450{
452 return Scalar(0);
453 return derived().redux(Eigen::internal::scalar_sum_op<Scalar,Scalar>());
454}

References Eigen::Dynamic.

Referenced by igl::normalize_row_sums(), and Eigen::internal::lpNorm_selector< Derived, 1 >::run().

+ Here is the caller graph for this function:

◆ swap() [1/2]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC void Eigen::DenseBase< Derived >::swap ( const DenseBase< OtherDerived > &  other)
inline

swaps *this with the expression other.

415 {
416 EIGEN_STATIC_ASSERT(!OtherDerived::IsPlainObjectBase,THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
417 eigen_assert(rows()==other.rows() && cols()==other.cols());
418 call_assignment(derived(), other.const_cast_derived(), internal::swap_assign_op<Scalar>());
419 }

References eigen_assert, and EIGEN_STATIC_ASSERT.

Referenced by Eigen::internal::conservative_resize_like_impl< Derived, OtherDerived, IsVector >::run(), and Eigen::internal::conservative_resize_like_impl< Derived, OtherDerived, IsVector >::run().

+ Here is the caller graph for this function:

◆ swap() [2/2]

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEVICE_FUNC void Eigen::DenseBase< Derived >::swap ( PlainObjectBase< OtherDerived > &  other)
inline

swaps *this with the matrix or array other.

427 {
428 eigen_assert(rows()==other.rows() && cols()==other.cols());
429 call_assignment(derived(), other.derived(), internal::swap_assign_op<Scalar>());
430 }

References Eigen::PlainObjectBase< Derived >::cols(), eigen_assert, and Eigen::PlainObjectBase< Derived >::rows().

+ Here is the call graph for this function:

◆ trace()

template<typename Derived >
EIGEN_DEVICE_FUNC Scalar Eigen::DenseBase< Derived >::trace ( ) const

◆ transpose() [1/2]

template<typename Derived >
Transpose< Derived > Eigen::DenseBase< Derived >::transpose
inline
Returns
an expression of the transpose of *this.

Example:

Output:

Warning
If you want to replace a matrix by its own transpose, do NOT do this:
m = m.transpose(); // bug!!! caused by aliasing effect
Instead, use the transposeInPlace() method:
m.transposeInPlace();
which gives Eigen good opportunities for optimization, or alternatively you can also do:
m = m.transpose().eval();
See also
transposeInPlace(), adjoint()
173{
174 return TransposeReturnType(derived());
175}
Transpose< Derived > TransposeReturnType
Definition DenseBase.h:319

Referenced by igl::AABB< DerivedV, DIM >::find(), igl::AABB< DerivedV, DIM >::init(), igl::project(), igl::signed_distance_winding_number(), and igl::unproject().

+ Here is the caller graph for this function:

◆ transpose() [2/2]

template<typename Derived >
DenseBase< Derived >::ConstTransposeReturnType Eigen::DenseBase< Derived >::transpose
inline

This is the const version of transpose().

Make sure you read the warning for transpose() !

See also
transposeInPlace(), adjoint()
185{
186 return ConstTransposeReturnType(derived());
187}
internal::add_const< Transpose< constDerived > >::type ConstTransposeReturnType
Definition DenseBase.h:322

◆ transposeInPlace()

template<typename Derived >
void Eigen::DenseBase< Derived >::transposeInPlace
inline

This is the "in place" version of transpose(): it replaces *this by its own transpose. Thus, doing

m.transposeInPlace();

has the same effect on m as doing

m = m.transpose().eval();

and is faster and also safer because in the latter line of code, forgetting the eval() results in a bug caused by aliasing.

Notice however that this method is only useful if you want to replace a matrix by its own transpose. If you just need the transpose of a matrix, use transpose().

Note
if the matrix is not square, then *this must be a resizable matrix. This excludes (non-square) fixed-size matrices, block-expressions and maps.
See also
transpose(), adjoint(), adjointInPlace()
285{
287 && "transposeInPlace() called on a non-square non-resizable matrix");
288 internal::inplace_transpose_selector<Derived>::run(derived());
289}

References Eigen::Dynamic, and eigen_assert.

◆ value()

template<typename Derived >
EIGEN_DEVICE_FUNC CoeffReturnType Eigen::DenseBase< Derived >::value ( ) const
inline
Returns
the unique coefficient of a 1x1 expression
481 {
483 eigen_assert(this->rows() == 1 && this->cols() == 1);
484 return derived().coeff(0,0);
485 }
#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE)
Definition StaticAssert.h:194

References eigen_assert, and EIGEN_STATIC_ASSERT_SIZE_1x1.

Referenced by igl::find(), and Eigen::ArrayBase< Derived >::operator=().

+ Here is the caller graph for this function:

◆ visit()

template<typename Derived >
template<typename Visitor >
EIGEN_DEVICE_FUNC void Eigen::DenseBase< Derived >::visit ( Visitor &  visitor) const

Applies the visitor visitor to the whole coefficients of the matrix or vector.

The template parameter Visitor is the type of the visitor and provides the following interface:

struct MyVisitor {
// called for the first coefficient
void init(const Scalar& value, Index i, Index j);
// called for all other coefficients
void operator() (const Scalar& value, Index i, Index j);
};
Note
compared to one or two for loops, visitors offer automatic unrolling for small fixed size matrix.
See also
minCoeff(Index*,Index*), maxCoeff(Index*,Index*), DenseBase::redux()
108{
109 typedef typename internal::visitor_evaluator<Derived> ThisEvaluator;
110 ThisEvaluator thisEval(derived());
111
112 enum {
113 unroll = SizeAtCompileTime != Dynamic
115 };
116 return internal::visitor_impl<Visitor, ThisEvaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(thisEval, visitor);
117}
@ Cost
Definition XprHelper.h:150

References Eigen::Dynamic, and EIGEN_UNROLLING_LIMIT.

◆ Zero() [1/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Zero
static
Returns
an expression of a fixed-size zero matrix or vector.

This variant is only for fixed-size MatrixBase types. For dynamic-size types, you need to use the variants taking size arguments.

Example:

Output:

See also
Zero(Index), Zero(Index,Index)
468{
469 return Constant(Scalar(0));
470}

◆ Zero() [2/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Zero ( Index  rows,
Index  cols 
)
static
Returns
an expression of a zero matrix.

The parameters rows and cols are the number of rows and of columns of the returned matrix. Must be compatible with this MatrixBase type.

This variant is meant to be used for dynamic-size matrix types. For fixed-size types, it is redundant to pass rows and cols as arguments, so Zero() should be used instead.

Example:

Output:

See also
Zero(), Zero(Index)
428{
429 return Constant(rows, cols, Scalar(0));
430}

◆ Zero() [3/3]

template<typename Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Zero ( Index  size)
static
Returns
an expression of a zero vector.

The parameter size is the size of the returned vector. Must be compatible with this MatrixBase type.

\only_for_vectors

This variant is meant to be used for dynamic-size vector types. For fixed-size types, it is redundant to pass size as argument, so Zero() should be used instead.

Example:

Output:

See also
Zero(), Zero(Index,Index)
451{
452 return Constant(size, Scalar(0));
453}

Friends And Related Symbol Documentation

◆ operator<<()

template<typename Derived >
std::ostream & operator<< ( std::ostream &  s,
const DenseBase< Derived > &  m 
)
related

Outputs the matrix, to the given stream.

If you wish to print the matrix with a format different than the default, use DenseBase::format().

It is also possible to change the default format by defining EIGEN_DEFAULT_IO_FORMAT before including Eigen headers. If not defined, this will automatically be defined to Eigen::IOFormat(), that is the Eigen::IOFormat with default parameters.

See also
DenseBase::format()
219{
221}
#define EIGEN_DEFAULT_IO_FORMAT
Definition Macros.h:810
std::ostream & print_matrix(std::ostream &s, const Derived &_m, const IOFormat &fmt)
Definition IO.h:129

References EIGEN_DEFAULT_IO_FORMAT, and Eigen::internal::print_matrix().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: