Spec-Zone.ru › Eigen3

Eigen::DenseBase

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

Базовый класс для всех плотных матриц, векторов и массивов.

Этот класс является базовым, от которого наследуются все плотные объекты (матрицы, векторы, массивы и связанные типы выражений). Общий API Eigen для плотных объектов содержится в этом классе.

Шаблонные параметры
Derived является типом производного класса, например, типом матрицы или выражения.

Этот класс можно расширить с помощью механизма плагинов, описанного на странице Расширение MatrixBase (и других классов), определив препроцессорную директиву EIGEN_DENSEBASE_PLUGIN.

См. также
Иерархия классов
Inheritance graph
enum {
RowsAtCompileTime ,
ColsAtCompileTime ,
SizeAtCompileTime ,
MaxRowsAtCompileTime ,
MaxColsAtCompileTime ,
MaxSizeAtCompileTime ,
IsVectorAtCompileTime ,
NumDimensions ,
Flags ,
IsRowMajor ,
InnerSizeAtCompileTime ,
InnerStrideAtCompileTime ,
OuterStrideAtCompileTime
}
typedef random_access_iterator_type const_iterator
typedef random_access_iterator_type iterator
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 >::MaxColsAtCompileTime > PlainArray
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 >::MaxColsAtCompileTime > PlainMatrix
typedef internal::conditional< internal::is_same< typename internal::traits< Derived >::XprKind, MatrixXpr >::value, PlainMatrix, PlainArray >::type PlainObject
Тип обычной матрицы или массива, соответствующий этому выражению. Подробнее...
typedef internal::traits< Derived >::Scalar Scalar
typedef internal::traits< Derived >::StorageIndex StorageIndex
Тип, используемый для хранения индексов. Подробнее...
typedef Scalar value_type
- Публичные типы, унаследованные от Eigen::EigenBase< Derived >
typedef Eigen::Index Index
Интерфейсный тип индексов. Подробнее...
bool all () const
bool allFinite () const
bool any () const
iterator begin ()
const_iterator begin () const
const_iterator cbegin () const
const_iterator cend () const
ColwiseReturnType colwise ()
ConstColwiseReturnType colwise () const
Индекс count () const
iterator end ()
const_iterator end () const
EvalReturnType eval () const
void fill (const Scalar &value)
template<unsigned int Added, unsigned int Removed>
EIGEN_DEPRECATED const Derived & flagged () const
const WithFormat< Derived > format (const IOFormat &fmt) const
bool hasNaN () const
EIGEN_CONSTEXPR Индекс innerSize () const
template<typename OtherDerived >
bool isApprox (const DenseBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
bool isApproxToConstant (const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
bool isConstant (const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
template<typename OtherDerived >
bool isMuchSmallerThan (const DenseBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
template<typename Derived >
bool isMuchSmallerThan (const typename NumTraits< Scalar >::Real &other, const RealScalar &prec) const
bool isOnes (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
bool isZero (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
template<typename OtherDerived >
EIGEN_DEPRECATED Derived & lazyAssign (const DenseBase< OtherDerived > &other)
template<int NaNPropagation>
internal::traits< Derived >::Scalar maxCoeff () const
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Scalar maxCoeff (IndexType *index) const
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Scalar maxCoeff (IndexType *row, IndexType *col) const
Скаляр mean () const
template<int NaNPropagation>
internal::traits< Derived >::Скаляр minCoeff () const
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Скаляр minCoeff (IndexType *index) const
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Скаляр minCoeff (IndexType *row, IndexType *col) const
const NestByValue< Derived > nestByValue () const
EIGEN_CONSTEXPR Индекс nonZeros () const
template<typename OtherDerived >
CommaInitializer< Derived > operator<< (const DenseBase< OtherDerived > &other)
CommaInitializer< Derived > operator<< (const Scalar &s)
Derived & operator= (const DenseBase &other)
template<typename OtherDerived >
Derived & operator= (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
Derived & operator= (const EigenBase< OtherDerived > &other)
Копирует общее выражение other в *this. Подробнее...
EIGEN_CONSTEXPR Index outerSize () const
Scalar prod () const
template<typename Func >
internal::traits< Derived >::Scalar redux (const Func &func) const
template<int RowFactor, int ColFactor>
const Replicate< Derived, RowFactor, ColFactor > replicate () const
const Replicate< Derived, Dynamic, Dynamic > replicate (Index rowFactor, Index colFactor) const
void resize (Index newSize)
void resize (Index rows, Index cols)
ReverseReturnType reverse ()
ConstReverseReturnType reverse () const
void reverseInPlace ()
RowwiseReturnType rowwise ()
ConstRowwiseReturnType rowwise () const
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
Derived & setConstant (const Scalar &value)
Derived & setLinSpaced (const Scalar &low, const Scalar &high)
Устанавливает линейно размещённый вектор. Подробнее...
Derived & setLinSpaced (Index size, const Scalar &low, const Scalar &high)
Устанавливает линейно размещённый вектор. Подробнее...
Derived & setOnes ()
Derived & setRandom ()
Derived & setZero ()
Scalar sum () const
template<typename OtherDerived >
void swap (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
void swap (PlainObjectBase< OtherDerived > &other)
TransposeReturnType transpose ()
ConstTransposeReturnType transpose () const
void transposeInPlace ()
CoeffReturnType value () const
template<typename Visitor >
void visit (Visitor &func) const
- Публичные функции-члены, унаследованные от Eigen::DenseCoeffsBase< Derived, DirectWriteAccessors >
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index colStride () const EIGEN_NOEXCEPT
Derived & derived ()
const Derived & derived () const
EIGEN_CONSTEXPR Index innerStride () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index outerStride () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index rowStride () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
- Публичные функции-члены, унаследованные от Eigen::DenseCoeffsBase< Derived, WriteAccessors >
Scalar & coeffRef (Index index)
Scalar & coeffRef (Index row, Index col)
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
Derived & derived ()
const Derived & derived () const
Scalar & operator() (Index index)
Scalar & operator() (Index row, Index col)
Scalar & operator[] (Index index)
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
Scalar & w ()
Scalar & x ()
Scalar & y ()
Scalar & z ()
- Публичные функции-члены, унаследованные от Eigen::DenseCoeffsBase< Derived, ReadOnlyAccessors >
CoeffReturnType coeff (Index index) const
CoeffReturnType coeff (Index row, Index col) const
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
Derived & derived ()
const Derived & derived () const
CoeffReturnType operator() (Index index) const
CoeffReturnType operator() (Index row, Index col) const
CoeffReturnType operator[] (Index index) const
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
Возвращаемый тип коэффициента w () const
Возвращаемый тип коэффициента x () const
Возвращаемый тип коэффициента y () const
Возвращаемый тип коэффициента z () const
- Публичные члены-функции, унаследованные от Eigen::EigenBase< Derived >
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
Derived & derived ()
const Derived & derived () const
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
static const ConstantReturnType Constant (const Scalar &value)
static const ConstantReturnType Constant (Index rows, Index cols, const Scalar &value)
static const ConstantReturnType Constant (Index size, const Scalar &value)
static const RandomAccessLinSpacedReturnType LinSpaced (const Scalar &low, const Scalar &high)
Устанавливает линейно распределённый вектор. Подробнее...
static const RandomAccessLinSpacedReturnType LinSpaced (Index size, const Scalar &low, const Scalar &high)
Устанавливает линейно распределённый вектор. Подробнее...
static EIGEN_DEPRECATED const RandomAccessLinSpacedReturnType LinSpaced (Sequential_t, const Scalar &low, const Scalar &high)
static EIGEN_DEPRECATED const RandomAccessLinSpacedReturnType LinSpaced (Sequential_t, Index size, const Scalar &low, const Scalar &high)
template<typename CustomNullaryOp >
static const CwiseNullaryOp< CustomNullaryOp, PlainObject > NullaryExpr (const CustomNullaryOp &func)
template<typename CustomNullaryOp >
static const CwiseNullaryOp< CustomNullaryOp, PlainObject > NullaryExpr (Index rows, Index cols, const CustomNullaryOp &func)
template<typename CustomNullaryOp >
static const CwiseNullaryOp< CustomNullaryOp, PlainObject > NullaryExpr (Index size, const CustomNullaryOp &func)
static const ConstantReturnType Ones ()
static const ConstantReturnType Ones (Index rows, Index cols)
static const ConstantReturnType Ones (Index size)
static const RandomReturnType Random ()
static const RandomReturnType Random (Index rows, Index cols)
static const RandomReturnType Random (Index size)
static const ConstantReturnType Zero ()
static const ConstantReturnType Zero (Index rows, Index cols)
static const ConstantReturnType Zero (Index size)
DenseBase ()

(Обратите внимание, что это не члены функций.)

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

const_iterator

template<typename Derived >
typedef random_access_iterator_type Eigen::DenseBase< Derived >::const_iterator

Это константная версия итератора (т.е. только для чтения).

iterator

template<typename Derived >
typedef random_access_iterator_type Eigen::DenseBase< Derived >::iterator

Итератор типа RandomAccessIterator (похожий на STL), возвращаемый методами begin() и end().

PlainArray

template<typename Derived >
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>::MaxColsAtCompileTime > Eigen::DenseBase< Derived >::PlainArray

Тип обычного массива, соответствующий этому выражению.

См. также
PlainObject

PlainMatrix

template<typename Derived >
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>::MaxColsAtCompileTime > Eigen::DenseBase< Derived >::PlainMatrix

Тип обычной матрицы, соответствующий этому выражению.

См. также
PlainObject

PlainObject

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

Тип обычной матрицы или массива, соответствующий этому выражению.

Это не обязательно точно тип возвращаемого значения eval(). В случае обычных матриц тип возвращаемого значения eval() — это константная ссылка на матрицу, а не сама матрица! Однако гарантируется, что тип возвращаемого значения eval() — это либо PlainObject, либо const PlainObject&.

Scalar

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

Числовой тип коэффициентов выражения, например, float, double, int или std::complex<float> и т. д.

StorageIndex

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

Тип, используемый для хранения индексов.

Этот typedef релевантен для типов, хранящих несколько индексов, таких как PermutationMatrix или Transpositions, в противном случае он по умолчанию равен Eigen::Index.

См. также
Директивы препроцессора, Eigen::Index, SparseMatrixBase.

value_type

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

Числовой тип коэффициентов выражения, например, float, double, int или std::complex<float> и т. д.

Это псевдоним типа Scalar.

anonymous enum

template<typename Derived >
anonymous enum
Перечислитель
RowsAtCompileTime

Количество строк на этапе компиляции. Это просто копия значения, предоставленного типом Derived. Если значение неизвестно на этапе компиляции, оно устанавливается в константу Dynamic.

См. также
MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime
ColsAtCompileTime

Количество столбцов на этапе компиляции. Это просто копия значения, предоставленного типом Derived. Если значение неизвестно на этапе компиляции, оно устанавливается в константу Dynamic.

См. также
MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime
SizeAtCompileTime

Это равно количеству коэффициентов, т.е. количеству строк, умноженному на количество столбцов, или Dynamic, если это неизвестно на этапе компиляции.

См. также
RowsAtCompileTime, ColsAtCompileTime
MaxRowsAtCompileTime

Это значение равно максимальному возможному количеству строк, которое может иметь данное выражение. Если это выражение может иметь произвольно большое количество строк, это значение устанавливается в Dynamic.

Это значение полезно при оценке выражения для определения возможности избежать динамического выделения памяти.

См. также
RowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime
MaxColsAtCompileTime

Это значение равно максимальному возможному количеству столбцов, которое может иметь данное выражение. Если это выражение может иметь произвольно большое количество столбцов, это значение устанавливается в Dynamic.

Это значение полезно при оценке выражения для определения возможности избежать динамического выделения памяти.

См. также
ColsAtCompileTime, MaxRowsAtCompileTime, MaxSizeAtCompileTime
MaxSizeAtCompileTime

Это значение равно максимальному возможному количеству коэффициентов, которое может иметь данное выражение. Если это выражение может иметь произвольно большое количество коэффициентов, это значение устанавливается в Dynamic.

Это значение полезно при оценке выражения для определения возможности избежать динамического выделения памяти.

См. также
SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
IsVectorAtCompileTime

Устанавливается в true, если количество строк или столбцов известно на этапе компиляции и равно 1. В этом случае мы имеем дело с вектор-столбцом (если столбцов только один) или вектор-строкой (если строк только одна).

NumDimensions

Это значение равно Tensor::NumDimensions, т.е. 0 для скаляров, 1 для векторов и 2 для матриц.

Flags

Содержит флаги выражения Flags, которые могут быть унаследованы или не унаследованы новыми выражениями, построенными на основе данного. См. список флагов.

IsRowMajor

True, если порядок хранения этого выражения — по строкам.

DenseBase()

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

Конструктор по умолчанию. Ничего не делает.

all()

template<typename Derived >
bool Eigen::DenseBase< Derived >::all
inline
Возвращает
true, если все коэффициенты равны true

Пример:

Vector3f boxMin(Vector3f::Zero()), boxMax(Vector3f::Ones());
Vector3f p0 = Vector3f::Random(), p1 = Vector3f::Random().cwiseAbs();
// let's check if p0 and p1 are inside the axis aligned box defined by the corners boxMin,boxMax:
cout << "Is (" << p0.transpose() << ") inside the box: "
     << ((boxMin.array()<p0.array()).all() && (boxMax.array()>p0.array()).all()) << endl;
cout << "Is (" << p1.transpose() << ") inside the box: "
     << ((boxMin.array()<p1.array()).all() && (boxMax.array()>p1.array()).all()) << endl;

Вывод:

Is (  0.68 -0.211  0.566) inside the box: 0
Is (0.597 0.823 0.605) inside the box: 1
См. также
any(), Cwise::operator<()

allFinite()

template<typename Derived >
bool Eigen::DenseBase< Derived >::allFinite
inline
Возвращает
true, если *this содержит только конечные числа, т.е. нет NaN и +/-INF значений.
См. также
hasNaN()

any()

template<typename Derived >
bool Eigen::DenseBase< Derived >::any
inline
Возвращает
true, если хотя бы один коэффициент равен true
См. также
all()

begin() [1/2]

template<typename Derived >
DenseBase< Derived >::iterator Eigen::DenseBase< Derived >::begin
inline

возвращает итератор на первый элемент 1D-вектора или массива. Это только для векторов (вектор-строка или вектор-столбец), т.е. матриц, размер которых известен на этапе компиляции и имеет либо одну строку, либо один столбец.

См. также
end(), cbegin()

begin() [2/2]

template<typename Derived >
DenseBase< Derived >::const_iterator Eigen::DenseBase< Derived >::begin
inline

const версия begin()

cbegin()

template<typename Derived >
DenseBase< Derived >::const_iterator Eigen::DenseBase< Derived >::cbegin
inline

возвращает константный итератор для чтения первого элемента 1D-вектора или массива. Это только для векторов (вектор-строка или вектор-столбец), т.е. матриц, размер которых известен на этапе компиляции и имеет либо одну строку, либо один столбец.

См. также
cend(), begin()

cend()

template<typename Derived >
DenseBase< Derived >::const_iterator Eigen::DenseBase< Derived >::cend
inline

возвращает константный итератор, ссылающийся на элемент, следующий за последним элементом 1D вектора или массива. Это относится только к векторам (строковым или столбцовым), то есть матрицам, размер которых известен на этапе компиляции и имеет либо одну строку, либо один столбец.

См. также
begin(), cend()

colwise() [1/2]

template<typename Derived >
DenseBase< Derived >::ColwiseReturnType Eigen::DenseBase< Derived >::colwise
inline
Возвращает
обёртку типа VectorwiseOp над *this, предоставляющую дополнительные операции частичного сокращения
См. также
rowwise(), класс VectorwiseOp, Сокращения, посетители и векторизация

colwise() [2/2]

template<typename Derived >
ConstColwiseReturnType Eigen::DenseBase< Derived >::colwise ( ) const
inline
Возвращает
обёртку типа VectorwiseOp над *this, выполняющую операции векторизации и частичного сокращения

Пример:

Matrix3d m = Matrix3d::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is the sum of each column:" << endl << m.colwise().sum() << endl;
cout << "Here is the maximum absolute value of each column:"
     << endl << m.cwiseAbs().colwise().maxCoeff() << endl;

Вывод:

Here is the matrix m:
  0.68  0.597  -0.33
-0.211  0.823  0.536
 0.566 -0.605 -0.444
Here is the sum of each column:
  1.04  0.815 -0.238
Here is the maximum absolute value of each column:
 0.68 0.823 0.536
См. также
rowwise(), класс VectorwiseOp, Сокращения, посетители и векторизация

Constant() [1/3]

template<typename Derived >
const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Constant ( const Scalar & value )
inlinestatic
Возвращает
выражение константной матрицы со значением value

Этот вариант применим только для типов DenseBase с фиксированным размером. Для типов с динамическим размером необходимо использовать варианты, принимающие аргументы размера.

Шаблонный параметр CustomNullaryOp — тип функции.

См. также
класс CwiseNullaryOp

Constant() [2/3]

template<typename Derived >
const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Constant ( Index rows,
Index cols,
const Scalar & value
)
inlinestatic
Возвращает
выражение константной матрицы со значением value

Параметры rows и cols — количество строк и столбцов возвращаемой матрицы. Должны быть совместимы с типом DenseBase.

Этот вариант предназначен для типов матриц с динамическим размером. Для типов с фиксированным размером передача rows и cols избыточна, поэтому следует использовать Zero().

Шаблонный параметр CustomNullaryOp — тип функции.

См. также
класс CwiseNullaryOp

Constant() [3/3]

template<typename Derived >
const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Constant ( Index size,
const Scalar & value
)
inlinestatic
Возвращает
выражение константной матрицы со значением value

Параметр size — размер возвращаемого вектора. Должен быть совместим с типом DenseBase.

Этот вариант применим только к векторам (строковым или столбцовым), то есть матрицам, размер которых известен на этапе компиляции и имеет либо одну строку, либо один столбец.

Этот вариант предназначен для типов векторов с динамическим размером. Для типов с фиксированным размером передача size избыточна, поэтому следует использовать Zero().

Шаблонный параметр CustomNullaryOp — тип функции.

См. также
класс CwiseNullaryOp

count()

template<typename Derived >
Eigen::Index Eigen::DenseBase< Derived >::count
inline
Возвращает
количество коэффициентов, равных true
См. также
all(), any()

end() [1/2]

template<typename Derived >
DenseBase< Derived >::iterator Eigen::DenseBase< Derived >::end
inline

возвращает итератор на элемент, следующий за последним элементом 1D вектора или массива. Это относится только к векторам (строковым или столбцовым), то есть матрицам, размер которых известен на этапе компиляции и имеет либо одну строку, либо один столбец.

См. также
begin(), cend()

end() [2/2]

template<typename Derived >
DenseBase< Derived >::const_iterator Eigen::DenseBase< Derived >::end
inline

Константная версия end()

eval()

template<typename Derived >
EvalReturnType Eigen::DenseBase< Derived >::eval ( ) const
inline
Возвращает
матрицу или вектор, полученные в результате вычисления данного выражения.

Обратите внимание, что в случае обычной матрицы или вектора (а не выражения) эта функция просто возвращает константную ссылку, чтобы избежать бесполезной копии.

Предупреждение
Будьте внимательны при использовании eval() и ключевого слова auto в C++, как подробно описано на этой странице .

fill()

template<typename Derived >
void Eigen::DenseBase< Derived >::fill ( const Scalar & val )
inline

Псевдоним для setConstant(): устанавливает все коэффициенты в этом выражении на val.

См. также
setConstant(), Constant(), класс CwiseNullaryOp

flagged()

template<typename Derived >
template<unsigned int Added, unsigned int Removed>
EIGEN_DEPRECATED const Derived& Eigen::DenseBase< Derived >::flagged ( ) const
inline
Устаревшее:
теперь возвращает *this

format()

template<typename Derived >
const WithFormat<Derived> Eigen::DenseBase< Derived >::format ( const IOFormat & fmt ) const
inline
Возвращает
объект-прокси WithFormat, позволяющий вывести матрицу с заданным форматом fmt.

См. класс IOFormat для примеров.

См. также
класс IOFormat, класс WithFormat

hasNaN()

template<typename Derived >
bool Eigen::DenseBase< Derived >::hasNaN
inline
Возвращает
true, если *this содержит хотя бы одно число Not a Number (NaN).
См. также
allFinite()

innerSize()

template<typename Derived >
EIGEN_CONSTEXPR Index Eigen::DenseBase< Derived >::innerSize ( ) const
inline
Возвращает
внутренний размер.
Примечание
Для вектора это просто размер. Для матрицы (не вектора) это меньшая размерность относительно порядка хранения, т. е. количество строк для матрицы в столбцовом порядке и количество столбцов для матрицы в строчном порядке.

isApprox()

template<typename Derived >
template<typename OtherDerived >
bool Eigen::DenseBase< Derived >::isApprox ( const DenseBase< OtherDerived > & other,
const RealScalar & prec = NumTraits<Scalar>::dummy_precision()
) const
Возвращает
true если *this приблизительно равно other с точностью, определенной prec.
Примечание
Нечеткие сравнения выполняются мультипликативно. Два вектора \( v \) и \( w \) считаются приблизительно равными с точностью \( p \), если

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

Для матриц сравнение выполняется с использованием нормы Гильберта-Шмидта (также известной как норма Фробениуса L2).
Из-за мультипликативности этого сравнения нельзя использовать эту функцию для проверки того, *this приблизительно равно нулевой матрице или вектору. Действительно, isApprox(zero) возвращает false, если *this не является точно нулевой матрицей или вектором. Если необходимо проверить, *this равно нулю, используйте internal::isMuchSmallerThan(const RealScalar&, RealScalar) вместо этого.
См. также
internal::isMuchSmallerThan(const RealScalar&, RealScalar) const

isApproxToConstant()

template<typename Derived >
bool Eigen::DenseBase< Derived >::isApproxToConstant ( const Scalar & val,
const RealScalar & prec = NumTraits<Scalar>::dummy_precision()
) const
Возвращает
true, если все коэффициенты этой матрицы приблизительно равны val с точностью prec

isConstant()

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

Это просто псевдоним для isApproxToConstant().

Возвращает
true, если все коэффициенты этой матрицы приблизительно равны value с точностью prec

isMuchSmallerThan() [1/2]

template<typename Derived >
template<typename OtherDerived >
bool Eigen::DenseBase< Derived >::isMuchSmallerThan ( const DenseBase< OtherDerived > & other,
const RealScalar & prec = NumTraits<Scalar>::dummy_precision()
) const
Возвращает
true если норма *this намного меньше нормы other с точностью, определенной prec.
Примечание
Нечеткие сравнения выполняются мультипликативно. Вектор \( v \) считается намного меньше вектора \( w \) с точностью \( p \), если

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

Для матриц сравнение выполняется с использованием нормы Гильберта-Шмидта.
См. также
isApprox(), isMuchSmallerThan(const RealScalar&, RealScalar) const

isMuchSmallerThan() [2/2]

template<typename Derived >
template<typename Derived >
bool Eigen::DenseBase< Derived >::isMuchSmallerThan ( const typename NumTraits< Scalar >::Real & other,
const RealScalar & prec
) const
Возвращает
true если норма *this намного меньше other с точностью, определенной prec.
Примечание
Нечеткие сравнения выполняются мультипликативно. Вектор \( v \) считается намного меньше \( x \) с точностью \( p \), если

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

Для матриц сравнение выполняется с использованием нормы Гильберта-Шмидта. По этой причине значение эталонного скаляра other должно поступать из нормы Гильберта-Шмидта эталонной матрицы с такими же размерами.

См. также
isApprox(), isMuchSmallerThan(const DenseBase<OtherDerived>&, RealScalar) const

isOnes()

template<typename Derived >
bool Eigen::DenseBase< Derived >::isOnes ( const RealScalar & prec = NumTraits<Scalar>::dummy_precision() ) const
Возвращает
true, если *this приблизительно равно матрице, где все коэффициенты равны 1, с точностью, заданной prec.

Пример:

Matrix3d m = Matrix3d::Ones();
m(0,2) += 1e-4;
cout << "Here's the matrix m:" << endl << m << endl;
cout << "m.isOnes() returns: " << m.isOnes() << endl;
cout << "m.isOnes(1e-3) returns: " << m.isOnes(1e-3) << endl;

Вывод:

Here's the matrix m:
1 1 1
1 1 1
1 1 1
m.isOnes() returns: 0
m.isOnes(1e-3) returns: 1
См. также
класс CwiseNullaryOp, Ones()

isZero()

template<typename Derived >
bool Eigen::DenseBase< Derived >::isZero ( const RealScalar & prec = NumTraits<Scalar>::dummy_precision() ) const
Возвращает
true, если *this приблизительно равен нулевой матрице, с точностью, заданной prec.

Пример:

Matrix3d m = Matrix3d::Zero();
m(0,2) = 1e-4;
cout << "Here's the matrix m:" << endl << m << endl;
cout << "m.isZero() returns: " << m.isZero() << endl;
cout << "m.isZero(1e-3) returns: " << m.isZero(1e-3) << endl;

Вывод:

Here's the matrix m:
     0      0 0.0001
     0      0      0
     0      0      0
m.isZero() returns: 0
m.isZero(1e-3) returns: 1
См. также
класс CwiseNullaryOp, Zero()

lazyAssign()

template<typename Derived >
template<typename OtherDerived >
EIGEN_DEPRECATED Derived& Eigen::DenseBase< Derived >::lazyAssign ( const DenseBase< OtherDerived > & other )
Устарело:

LinSpaced() [1/4]

template<typename Derived >
const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( const Scalar & low,
const Scalar & high
)
inlinestatic

Задает линейно распределённый вектор.

Функция генерирует 'size' равномерно распределённых значений в замкнутом интервале [low,high]. Когда size равен 1, возвращается вектор длины 1, содержащий 'high'.

Это только для векторов (строка-векторов или столбец-векторов), т.е. матриц, чья размерность известна на этапе компиляции и равна либо одной строке, либо одному столбцу.

Пример:

cout << VectorXi::LinSpaced(4,7,10).transpose() << endl;
cout << VectorXd::LinSpaced(5,0.0,1.0).transpose() << endl;

Вывод:

 7  8  9 10
   0 0.25  0.5 0.75    1

Для целочисленных типов скаляров равномерное распределение возможно только если длина диапазона, т.е., high-low является кратной size-1, или если size кратна числу значений high-low+1 (что означает, что каждое значение может повторяться одинаковое количество раз). Если одно из этих условий не выполняется, то high уменьшается до наибольшего значения, удовлетворяющего одному из этих условий. Вот несколько примеров:

Пример:

cout << "Even spacing inputs:" << endl;
cout << VectorXi::LinSpaced(8,1,4).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,8).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,15).transpose() << endl;
cout << "Uneven spacing inputs:" << endl;
cout << VectorXi::LinSpaced(8,1,7).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,9).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,16).transpose() << endl;

Вывод:

Even spacing inputs:
1 1 2 2 3 3 4 4
1 2 3 4 5 6 7 8
 1  3  5  7  9 11 13 15
Uneven spacing inputs:
1 1 2 2 3 3 4 4
1 2 3 4 5 6 7 8
 1  3  5  7  9 11 13 15
См. также
setLinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp Специальная версия для фиксированных типов size, которая не требует параметра size.

LinSpaced() [2/4]

template<typename Derived >
const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( Index size,
const Scalar & low,
const Scalar & high
)
inlinestatic

Задает линейно распределённый вектор.

Функция генерирует 'size' равномерно распределённых значений в замкнутом интервале [low,high]. Когда size равен 1, возвращается вектор длины 1, содержащий 'high'.

Это только для векторов (строка-векторов или столбец-векторов), т.е. матриц, чья размерность известна на этапе компиляции и равна либо одной строке, либо одному столбцу.

Пример:

cout << VectorXi::LinSpaced(4,7,10).transpose() << endl;
cout << VectorXd::LinSpaced(5,0.0,1.0).transpose() << endl;

Вывод:

 7  8  9 10
   0 0.25  0.5 0.75    1

Для целочисленных типов скаляров равномерное распределение возможно только если длина диапазона, т.е., high-low является кратной size-1, или если size кратна числу значений high-low+1 (что означает, что каждое значение может повторяться одинаковое количество раз). Если одно из этих условий не выполняется, то high уменьшается до наибольшего значения, удовлетворяющего одному из этих условий. Вот несколько примеров:

Пример:

cout << "Even spacing inputs:" << endl;
cout << VectorXi::LinSpaced(8,1,4).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,8).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,15).transpose() << endl;
cout << "Uneven spacing inputs:" << endl;
cout << VectorXi::LinSpaced(8,1,7).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,9).transpose() << endl;
cout << VectorXi::LinSpaced(8,1,16).transpose() << endl;

Вывод:

Even spacing inputs:
1 1 2 2 3 3 4 4
1 2 3 4 5 6 7 8
 1  3  5  7  9 11 13 15
Uneven spacing inputs:
1 1 2 2 3 3 4 4
1 2 3 4 5 6 7 8
 1  3  5  7  9 11 13 15
См. также
setLinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp

LinSpaced() [3/4]

template<typename Derived >
EIGEN_DEPRECATED const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( Sequential_t ,
const Scalar & low,
const Scalar & high
)
inlinestatic
Устарело:
из-за потери точности. В Eigen 3.3, это псевдоним для LinSpaced(const Scalar&,const Scalar&)
См. также
LinSpaced(const Scalar&, const Scalar&)

LinSpaced() [4/4]

template<typename Derived >
EIGEN_DEPRECATED const DenseBase< Derived >::RandomAccessLinSpacedReturnType Eigen::DenseBase< Derived >::LinSpaced ( Sequential_t ,
Index size,
const Scalar & low,
const Scalar & high
)
inlinestatic
Устарело:
из-за потери точности. В Eigen 3.3, это псевдоним для LinSpaced(Index,const Scalar&, const Scalar&)

Это только для векторов (строка-векторов или столбец-векторов), т.е. матриц, чья размерность известна на этапе компиляции и равна либо одной строке, либо одному столбцу.

Пример:

cout << VectorXi::LinSpaced(Sequential,4,7,10).transpose() << endl;
cout << VectorXd::LinSpaced(Sequential,5,0.0,1.0).transpose() << endl;

Вывод:

 7  8  9 10
   0 0.25  0.5 0.75    1
См. также
LinSpaced(Index,const Scalar&, const Scalar&), setLinSpaced(Index,const Scalar&,const Scalar&)

maxCoeff() [1/3]

template<typename Derived >
template<int NaNPropagation>
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::maxCoeff
inline
Возвращает
максимальное значение всех коэффициентов *this. В случае, если *this содержит NaN, NaNPropagation определяет поведение: NaNPropagation == PropagateFast : неопределённое NaNPropagation == PropagateNaN : результат равен NaN NaNPropagation == PropagateNumbers : результат - максимальное из элементов, которые не равны NaN
Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.

maxCoeff() [2/3]

template<typename Derived >
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::maxCoeff ( IndexType * index ) const
Возвращает
максимальное значение всех коэффициентов *this и помещает его индекс в *index.

В случае, если *this содержит NaN, NaNPropagation определяет поведение: NaNPropagation == PropagateFast : неопределенное NaNPropagation == PropagateNaN : результат равен NaN NaNPropagation == PropagateNumbers : результат — максимальное значение элементов, которые не равны NaN

Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.
См. также
DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()

maxCoeff() [3/3]

template<typename Derived >
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::maxCoeff ( IndexType * rowId,
IndexType * colId
) const
Возвращает
максимальное значение всех коэффициентов *this и помещает его индекс по строке и столбцу в *row и *col.

В случае, если *this содержит NaN, NaNPropagation определяет поведение: NaNPropagation == PropagateFast : неопределенное NaNPropagation == PropagateNaN : результат равен NaN NaNPropagation == PropagateNumbers : результат — максимальное значение элементов, которые не равны NaN

Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.
См. также
DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::maxCoeff()

mean()

template<typename Derived >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::mean
inline
Возвращает
среднее значение всех коэффициентов *this
См. также
trace(), prod(), sum()

minCoeff() [1/3]

template<typename Derived >
template<int NaNPropagation>
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::minCoeff
inline
Возвращает
минимальное значение всех коэффициентов *this. В случае, если *this содержит NaN, NaNPropagation определяет поведение: NaNPropagation == PropagateFast : неопределенное NaNPropagation == PropagateNaN : результат равен NaN NaNPropagation == PropagateNumbers : результат — минимальное значение элементов, которые не равны NaN
Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.

minCoeff() [2/3]

template<typename Derived >
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::minCoeff ( IndexType * index ) const
Возвращает
минимальное значение всех коэффициентов *this и помещает его индекс в *index.

В случае, если *this содержит NaN, NaNPropagation определяет поведение: NaNPropagation == PropagateFast : неопределенное NaNPropagation == PropagateNaN : результат равен NaN NaNPropagation == PropagateNumbers : результат — максимальное значение элементов, которые не равны NaN

Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.
См. также
DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::minCoeff()

minCoeff() [3/3]

template<typename Derived >
template<int NaNPropagation, typename IndexType >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::minCoeff ( IndexType * rowId,
IndexType * colId
) const
Возвращает
минимальное значение всех коэффициентов *this и помещает его индекс по строке и столбцу в *row и *col.

В случае, если *this содержит NaN, NaNPropagation определяет поведение: NaNPropagation == PropagateFast : неопределенное NaNPropagation == PropagateNaN : результат равен NaN NaNPropagation == PropagateNumbers : результат — максимальное значение элементов, которые не равны NaN

Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.
См. также
DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visit(), DenseBase::minCoeff()

nestByValue()

template<typename Derived >
const NestByValue< Derived > Eigen::DenseBase< Derived >::nestByValue
inline
Возвращает
выражение временной версии *this.

nonZeros()

template<typename Derived >
EIGEN_CONSTEXPR Index Eigen::DenseBase< Derived >::nonZeros ( ) const
inline
Возвращает
количество ненулевых коэффициентов, что фактически соответствует количеству сохранённых коэффициентов.

NullaryExpr() [1/3]

template<typename Derived >
template<typename CustomNullaryOp >
const CwiseNullaryOp< CustomNullaryOp, PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( const CustomNullaryOp & func )
inlinestatic
Возвращает
выражение матрицы, определённой пользовательским функтором func

Этот вариант подходит только для матриц с фиксированным размером DenseBase. Для матриц с динамическим размером используйте варианты с аргументами размера.

Шаблонный параметр CustomNullaryOp — тип функтора.

См. также
класс CwiseNullaryOp

NullaryExpr() [2/3]

template<typename Derived >
template<typename CustomNullaryOp >
const CwiseNullaryOp< CustomNullaryOp, PlainObject > Eigen::DenseBase< Derived >::NullaryExpr ( Index rows,
Index cols,
const CustomNullaryOp & func
)
inlinestatic
Возвращает
выражение матрицы, определённой пользовательским функтором func

Параметры rows и cols — количество строк и столбцов возвращаемой матрицы. Должны быть совместимы с типом MatrixBase.

Этот вариант предназначен для типов матриц с динамическим размером. Для типов с фиксированным размером передача rows и cols избыточна, поэтому следует использовать Zero().

Шаблонный параметр CustomNullaryOp — тип функтора.

См. также
класс CwiseNullaryOp

NullaryExpr() [3/3]

шаблон<typename Производный >
шаблон<typename CustomNullaryOp >
const CwiseNullaryOp< CustomNullaryOp, PlainObject > Eigen::DenseBase< Производный >::NullaryExpr ( Index размер,
const CustomNullaryOp & функция
)
inlinestatic
Возвращает
выражение матрицы, определённой пользовательским функтором функция

Параметр размер — размер возвращаемого вектора. Должен быть совместим с типом MatrixBase.

Это только для векторов (строковых или столбцовых), то есть матриц, которые в момент компиляции известны как имеющие одну строку или один столбец.

Этот вариант предназначен для использования с типами векторов динамического размера. Для типов фиксированного размера передача размера в качестве аргумента избыточна, поэтому следует использовать Zero() вместо этого.

Параметр шаблона CustomNullaryOp — тип функтора.

Вот пример с генераторами случайных чисел C++11:

#include <Eigen/Core>
#include <iostream>
#include <random>
 
using namespace Eigen;
 
int main() {
  std::default_random_engine generator;
  std::poisson_distribution<int> distribution(4.1);
  auto poisson = [&] () {return distribution(generator);};
 
  RowVectorXi v = RowVectorXi::NullaryExpr(10, poisson );
  std::cout << v << "\n";
}

Вывод:

2 3 1 4 3 4 4 3 2 3
См. также
класс CwiseNullaryOp

Ones() [1/3]

шаблон<typename Производный >
const DenseBase< Производный >::ConstantReturnType Eigen::DenseBase< Производный >::Ones
inlinestatic
Возвращает
выражение матрицы или вектора фиксированного размера, где все коэффициенты равны единице.

Этот вариант предназначен только для типов MatrixBase фиксированного размера. Для типов динамического размера необходимо использовать варианты, принимающие аргументы размера.

Пример:

cout << Matrix2d::Ones() << endl;
cout << 6 * RowVector4i::Ones() << endl;

Вывод:

1 1
1 1
6 6 6 6
См. также
Ones(Index), Ones(Index,Index), isOnes(), класс Ones

Ones() [2/3]

шаблон<typename Производный >
const DenseBase< Производный >::ConstantReturnType Eigen::DenseBase< Производный >::Ones ( Index строки,
Index столбцы
)
inlinestatic
Возвращает
выражение матрицы, где все коэффициенты равны единице.

Параметры строки и столбцы — количество строк и столбцов возвращаемой матрицы. Должны быть совместимы с типом MatrixBase.

Этот вариант предназначен для использования с типами матриц динамического размера. Для типов фиксированного размера передача строки и столбцы в качестве аргументов избыточна, поэтому следует использовать Ones() вместо этого.

Пример:

cout << MatrixXi::Ones(2,3) << endl;

Вывод:

1 1 1
1 1 1
См. также
Ones(), Ones(Index), isOnes(), класс Ones

Ones() [3/3]

шаблон<typename Производный >
const DenseBase< Производный >::ConstantReturnType Eigen::DenseBase< Производный >::Ones ( Index новыйРазмер )
inlinestatic
Возвращает
выражение вектора, где все коэффициенты равны единице.

Параметр новыйРазмер — размер возвращаемого вектора. Должен быть совместим с типом MatrixBase.

Это только для векторов (строковых или столбцовых), то есть матриц, которые в момент компиляции известны как имеющие одну строку или один столбец.

Этот вариант предназначен для использования с типами векторов динамического размера. Для типов фиксированного размера передача размера в качестве аргумента избыточна, поэтому следует использовать Ones() вместо этого.

Пример:

cout << 6 * RowVectorXi::Ones(4) << endl;
cout << VectorXf::Ones(2) << endl;

Вывод:

6 6 6 6
1
1
См. также
Ones(), Ones(Index,Index), isOnes(), класс Ones

operator<<() [1/2]

шаблон<typename Производный >
шаблон<typename OtherDerived >
CommaInitializer< Производный > Eigen::DenseBase< Производный >::operator<< ( const DenseBase< OtherDerived > & другой )
inline
См. также
operator<<(const Scalar&)

operator<<() [2/2]

шаблон<typename Производный >
CommaInitializer< Производный > Eigen::DenseBase< Производный >::operator<< ( const Scalar & s )
inline

Удобный оператор для задания коэффициентов матрицы.

Коэффициенты должны быть предоставлены в порядке следования строк и точно соответствовать размеру матрицы. В противном случае будет поднято утверждение.

Пример:

Matrix3i m1;
m1 << 1, 2, 3,
      4, 5, 6,
      7, 8, 9;
cout << m1 << endl << endl;
Matrix3i m2 = Matrix3i::Identity();
m2.block(0,0, 2,2) << 10, 11, 12, 13;
cout << m2 << endl << endl;
Vector2i v1;
v1 << 14, 15;
m2 << v1.transpose(), 16,
      v1, m1.block(1,1,2,2);
cout << m2 << endl;

Вывод:

1 2 3
4 5 6
7 8 9

10 11  0
12 13  0
 0  0  1

14 15 16
14  5  6
15  8  9
Примечание
Согласно стандарту C++, выражения аргументов этого инициализатора запятыми оцениваются в произвольном порядке.
См. также
CommaInitializer::finished(), класс CommaInitializer

operator=() [1/3]

шаблон<typename Производный >
Производный & Eigen::DenseBase< Производный >::operator= ( const DenseBase< Производный > & другой )
inline

Специальный случай оператора=, чтобы предотвратить создание компилятором оператора по умолчанию (проблема возникла с g++ 4.1)

operator=() [2/3]

шаблон<typename Производный >
шаблон<typename OtherDerived >
Производный & Eigen::DenseBase< Производный >::operator= ( const DenseBase< OtherDerived > & другой )
inline

Копирует другой в *this.

Возвращает
ссылку на *this.

operator=() [3/3]

шаблон<typename Производный >
шаблон<typename OtherDerived >
Производный & Eigen::DenseBase< Производный >::operator= ( const EigenBase< OtherDerived > & другой )

Копирует общее выражение другой в *this.

Выражение должно предоставить функцию (с параметром шаблона) evalTo(Производный & dst) const, которая выполняет фактическую работу. На практике это позволяет любому пользователю написать собственную специальную матрицу, не изменяя MatrixBase

Возвращает
ссылку на *this.

outerSize()

template<typename Derived >
EIGEN_CONSTEXPR Index Eigen::DenseBase< Derived >::outerSize ( ) const
inline
Возвращает
внешний размер.
Примечание
Для вектора это возвращает просто 1. Для матрицы (не вектора) это главная размерность относительно порядка хранения, т. е. число столбцов для матрицы в столбцовом порядке и число строк для матрицы в строчном порядке.

prod()

template<typename Derived >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::prod
inline
Возвращает
произведение всех коэффициентов *this

Пример:

Matrix3d m = Matrix3d::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is the product of all the coefficients:" << endl << m.prod() << endl;

Вывод:

Here is the matrix m:
  0.68  0.597  -0.33
-0.211  0.823  0.536
 0.566 -0.605 -0.444
Here is the product of all the coefficients:
0.0019
См. также
sum(), mean(), trace()

Random() [1/3]

template<typename Derived >
const DenseBase< Derived >::RandomReturnType Eigen::DenseBase< Derived >::Random
inlinestatic
Возвращает
матричное или векторное выражение с случайными числами фиксированного размера

Числа равномерно распределены по всему диапазону определения для целочисленных типов и в диапазоне [-1:1] для типов чисел с плавающей точкой.

Этот вариант предназначен только для типов MatrixBase фиксированного размера. Для типов динамического размера необходимо использовать варианты, принимающие аргументы размера.

Пример:

cout << 100 * Matrix2i::Random() << endl;

Вывод:

 700  600
-200  600

Это выражение имеет флаг "оценить перед вложением", чтобы оно всегда оценивалось в временной матрице при вложении в более сложное выражение. Это предотвращает неожиданное поведение с выражениями, содержащими случайные матрицы.

Предупреждение
Эта функция не является потокобезопасной.
См. также
DenseBase::setRandom(), DenseBase::Random(Index,Index), DenseBase::Random(Index)

Random() [2/3]

template<typename Derived >
const DenseBase< Derived >::RandomReturnType Eigen::DenseBase< Derived >::Random ( Index rows,
Index cols
)
inlinestatic
Возвращает
выражение случайной матрицы

Числа равномерно распределены по всему диапазону определения для целочисленных типов и в диапазоне [-1:1] для типов чисел с плавающей точкой.

Параметры rows и cols — количество строк и столбцов возвращаемой матрицы. Должны быть совместимы с типом MatrixBase.

Предупреждение
Эта функция не является потокобезопасной.

Этот вариант предназначен для использования с типами матриц динамического размера. Для типов фиксированного размера передача rows и cols в качестве аргументов избыточна, поэтому следует использовать Random().

Пример:

cout << MatrixXi::Random(2,3) << endl;

Вывод:

 7  6  9
-2  6 -6

Это выражение имеет флаг "оценить перед вложением", чтобы оно всегда оценивалось в временной матрице при вложении в более сложное выражение. Это предотвращает неожиданное поведение с выражениями, содержащими случайные матрицы.

См. DenseBase::NullaryExpr(Index, const CustomNullaryOp&) для примера использования генераторов случайных чисел C++11.

См. также
DenseBase::setRandom(), DenseBase::Random(Index), DenseBase::Random()

Random() [3/3]

template<typename Derived >
const DenseBase< Derived >::RandomReturnType Eigen::DenseBase< Derived >::Random ( Index size )
inlinestatic
Возвращает
выражение случайного вектора

Числа равномерно распределены по всему диапазону определения для целочисленных типов и в диапазоне [-1:1] для типов чисел с плавающей точкой.

Параметр size — размер возвращаемого вектора. Должен быть совместим с типом MatrixBase.

Только для векторов (строчных или столбцовых), т. е. матриц, чьи строки или столбцы известны на этапе компиляции.

Предупреждение
Эта функция не является потокобезопасной.

Этот вариант предназначен для использования с типами векторов динамического размера. Для типов фиксированного размера передача size в качестве аргумента избыточна, поэтому следует использовать Random().

Пример:

cout << VectorXi::Random(2) << endl;

Вывод:

 7
-2

Это выражение имеет флаг "оценить перед вложением", чтобы оно всегда оценивалось в временном векторе при вложении в более сложное выражение. Это предотвращает неожиданное поведение с выражениями, содержащими случайные матрицы.

См. также
DenseBase::setRandom(), DenseBase::Random(Index,Index), DenseBase::Random()

redux()

template<typename Derived >
template<typename Func >
internal::traits<Derived>::Scalar Eigen::DenseBase< Derived >::redux ( const Func & func ) const
inline
Возвращает
результат полной операции redux по всей матрице или вектору с использованием func

Шаблонный параметр BinaryOp — тип функции func, которая должна быть ассоциативным оператором. Обрабатываются оба стиля функций C++98 и C++11.

Предупреждение
матрица должна быть непустой, в противном случае срабатывает утверждение.
См. также
DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()

replicate() [1/2]

template<typename Derived >
template<int RowFactor, int ColFactor>
const Replicate< Derived, RowFactor, ColFactor > Eigen::DenseBase< Derived >::replicate
Возвращает
выражение, представляющее копирование *this

Пример:

MatrixXi m = MatrixXi::Random(2,3);
cout << "Here is the matrix m:" << endl << m << endl;
cout << "m.replicate<3,2>() = ..." << endl;
cout << m.replicate<3,2>() << endl;

Вывод:

Here is the matrix m:
 7  6  9
-2  6 -6
m.replicate<3,2>() = ...
 7  6  9  7  6  9
-2  6 -6 -2  6 -6
 7  6  9  7  6  9
-2  6 -6 -2  6 -6
 7  6  9  7  6  9
-2  6 -6 -2  6 -6
См. также
VectorwiseOp::replicate(), DenseBase::replicate(Index,Index), класс Replicate

replicate() [2/2]

template<typename Derived >
const Replicate<Derived, Dynamic, Dynamic> Eigen::DenseBase< Derived >::replicate ( Index rowFactor,
Index colFactor
) const
inline
Возвращает
выражение, представляющее копирование *this

Пример:

Vector3i v = Vector3i::Random();
cout << "Here is the vector v:" << endl << v << endl;
cout << "v.replicate(2,5) = ..." << endl;
cout << v.replicate(2,5) << endl;

Вывод:

Here is the vector v:
 7
-2
 6
v.replicate(2,5) = ...
 7  7  7  7  7
-2 -2 -2 -2 -2
 6  6  6  6  6
 7  7  7  7  7
-2 -2 -2 -2 -2
 6  6  6  6  6
См. также
VectorwiseOp::replicate(), DenseBase::replicate<int,int>(), класс Replicate

resize() [1/2]

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

Только простые матрицы/массивы, а не выражения, могут быть изменены размером; поэтому единственными полезными методами изменения размера являются Matrix::resize() и Array::resize(). Настоящий метод только утверждает, что новый размер равен старому размеру, и ничего больше не делает.

resize() [2/2]

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

Только простые матрицы/массивы, а не выражения, могут быть изменены размером; поэтому единственными полезными методами изменения размера являются Matrix::resize() и Array::resize(). Настоящий метод только утверждает, что новый размер равен старому размеру, и ничего больше не делает.

reverse() [1/2]

template<typename Derived >
DenseBase< Derived >::ReverseReturnType Eigen::DenseBase< Derived >::reverse
inline
Возвращает
выражение обратного порядка *this.

Пример:

MatrixXi m = MatrixXi::Random(3,4);
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is the reverse of m:" << endl << m.reverse() << endl;
cout << "Here is the coefficient (1,0) in the reverse of m:" << endl
     << m.reverse()(1,0) << endl;
cout << "Let us overwrite this coefficient with the value 4." << endl;
m.reverse()(1,0) = 4;
cout << "Now the matrix m is:" << endl << m << endl;

Вывод:

Here is the matrix m:
 7  6 -3  1
-2  9  6  0
 6 -6 -5  3
Here is the reverse of m:
 3 -5 -6  6
 0  6  9 -2
 1 -3  6  7
Here is the coefficient (1,0) in the reverse of m:
0
Let us overwrite this coefficient with the value 4.
Now the matrix m is:
 7  6 -3  1
-2  9  6  4
 6 -6 -5  3

reverse() [2/2]

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

Это константная версия reverse().

reverseInPlace()

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

Это версия reverse «на месте»: она изменяет порядок элементов *this.

В большинстве случаев лучше просто использовать обратное выражение матрицы. Однако, когда необходимо изменить данные самой матрицы, то эта версия «на месте» — лучший выбор, поскольку она предоставляет следующие дополнительные преимущества:

  • меньше ошибок: выполнение той же операции с помощью .reverse() требует особого внимания:
    m = m.reverse().eval(); 
    
  • этот API позволяет выполнять операции обратного порядка без временного объекта
  • это позволяет в будущем оптимизировать код (согласованность с кэшем и т. д.)
См. также
VectorwiseOp::reverseInPlace(), reverse()

rowwise() [1/2]

template<typename Derived >
DenseBase< Derived >::RowwiseReturnType Eigen::DenseBase< Derived >::rowwise
inline
Возвращает
обёртку VectorwiseOp для записи, для *this, которая предоставляет дополнительные операции частичного сокращения.
См. также
colwise(), класс VectorwiseOp, Сокращения, посетители и векторизация

rowwise() [2/2]

template<typename Derived >
ConstRowwiseReturnType Eigen::DenseBase< Derived >::rowwise ( ) const
inline
Возвращает
обёртку VectorwiseOp для *this для векторизации и частичных сокращений.

Пример:

Matrix3d m = Matrix3d::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is the sum of each row:" << endl << m.rowwise().sum() << endl;
cout << "Here is the maximum absolute value of each row:"
     << endl << m.cwiseAbs().rowwise().maxCoeff() << endl;

Вывод:

Here is the matrix m:
  0.68  0.597  -0.33
-0.211  0.823  0.536
 0.566 -0.605 -0.444
Here is the sum of each row:
 0.948
  1.15
-0.483
Here is the maximum absolute value of each row:
 0.68
0.823
0.605
См. также
colwise(), класс VectorwiseOp, Сокращения, посетители и векторизация

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
Возвращает
матрицу, где каждый коэффициент (i,j) равен thenMatrix(i,j), если *this(i,j), и elseMatrix(i,j) в противном случае.

Пример:

MatrixXi m(3, 3);
m << 1, 2, 3,
     4, 5, 6,
     7, 8, 9;
m = (m.array() >= 5).select(-m, m);
cout << m << endl;

Вывод:

 1  2  3
 4 -5 -6
-7 -8 -9
См. также
класс Select

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

Версия DenseBase::select(const DenseBase&, const DenseBase&) со скалярным значением в качестве выражения else.

См. также
DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, класс Select

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

Версия DenseBase::select(const DenseBase&, const DenseBase&) с then выражением, являющимся скалярным значением.

См. также
DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, класс Select

setConstant()

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

Устанавливает все коэффициенты в этом выражении в значение val.

См. также
fill(), setConstant(Index,const Scalar&), setConstant(Index,Index,const Scalar&), setZero(), setOnes(), Constant(), класс CwiseNullaryOp, setZero(), setOnes()

setLinSpaced() [1/2]

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

Устанавливает линейно-распределённый вектор.

Функция заполняет *this равномерно распределёнными значениями в замкнутом интервале [low,high]. При размере 1 возвращается вектор длиной 1, содержащий 'high'.

Это только для векторов (строковых или столбцовых), т.е. матриц, которые в момент компиляции известны как имеющие либо одну строку, либо один столбец.

Для целочисленных скалярных типов обратите внимание на пояснения по определению равномерного распределения.

См. также
LinSpaced(Index,const Scalar&,const Scalar&), setLinSpaced(Index, const Scalar&, const Scalar&), CwiseNullaryOp

setLinSpaced() [2/2]

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

Устанавливает линейно-распределённый вектор.

Функция генерирует 'size' равномерно распределённых значений в замкнутом интервале [low,high]. При size=1 возвращается вектор длины 1, содержащий 'high'.

Это только для векторов (строковых или столбцовых), т.е. матриц, которые в момент компиляции известны как имеющие либо одну строку, либо один столбец.

Пример:

VectorXf v;
v.setLinSpaced(5,0.5f,1.5f);
cout << v << endl;

Вывод:

 0.5
0.75
   1
1.25
 1.5

Для целочисленных скалярных типов обратите внимание на пояснения по определению равномерного распределения.

См. также
LinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp

setOnes()

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

Устанавливает все коэффициенты в этом выражении в единицу.

Пример:

Matrix4i m = Matrix4i::Random();
m.row(1).setOnes();
cout << m << endl;

Вывод:

 7  9 -5 -3
 1  1  1  1
 6 -3  0  9
 6  6  3  9
См. также
класс CwiseNullaryOp, Ones()

setRandom()

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

Устанавливает все коэффициенты в этом выражении в случайные значения.

Числа равномерно распределены в пределах их диапазона определения для целочисленных типов и в диапазоне [-1:1] для чисел с плавающей точкой.

Предупреждение
Эта функция не является потокобезопасной.

Пример:

Matrix4i m = Matrix4i::Zero();
m.col(1).setRandom();
cout << m << endl;

Вывод:

 0  7  0  0
 0 -2  0  0
 0  6  0  0
 0  6  0  0
См. также
класс CwiseNullaryOp, setRandom(Index), setRandom(Index,Index)

setZero()

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

Устанавливает все коэффициенты в этом выражении в ноль.

Пример:

Matrix4i m = Matrix4i::Random();
m.row(1).setZero();
cout << m << endl;

Вывод:

 7  9 -5 -3
 0  0  0  0
 6 -3  0  9
 6  6  3  9
См. также
класс CwiseNullaryOp, Zero()

sum()

template<typename Derived >
internal::traits< Derived >::Scalar Eigen::DenseBase< Derived >::sum
inline
Возвращает
сумму всех коэффициентов *this

Если *this пуста, то возвращается значение 0.

См. также
trace(), prod(), mean()

swap() [1/2]

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

меняет местами *this и выражение other.

swap() [2/2]

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

меняет местами *this и матрицу или массив other.

transpose() [1/2]

template<typename Derived >
Транспонирование< Derived > Eigen::DenseBase< Derived >::transpose
inline
Возвращает
выражение транспонированной матрицы *this.

Пример:

Matrix2i m = Matrix2i::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is the transpose of m:" << endl << m.transpose() << endl;
cout << "Here is the coefficient (1,0) in the transpose of m:" << endl
     << m.transpose()(1,0) << endl;
cout << "Let us overwrite this coefficient with the value 0." << endl;
m.transpose()(1,0) = 0;
cout << "Now the matrix m is:" << endl << m << endl;

Вывод:

Here is the matrix m:
 7  6
-2  6
Here is the transpose of m:
 7 -2
 6  6
Here is the coefficient (1,0) in the transpose of m:
6
Let us overwrite this coefficient with the value 0.
Now the matrix m is:
 7  0
-2  6
Предупреждение
Если вы хотите заменить матрицу её транспонированной, НЕ делайте так:
m = m.transpose(); // bug!!! caused by aliasing effect
Вместо этого используйте метод transposeInPlace():
m.transposeInPlace();
который даёт Eigen хорошие возможности для оптимизации, или альтернативно, вы можете сделать так:
m = m.transpose().eval();
См. также
transposeInPlace(), adjoint()

transpose() [2/2]

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

Это константная версия transpose().

Убедитесь, что вы прочитали предупреждение для transpose()!

См. также
transposeInPlace(), adjoint()

transposeInPlace()

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

Это "встроенная" версия transpose(): она заменяет *this её собственной транспонированной матрицей. Таким образом, выполнение

m.transposeInPlace();

имеет тот же эффект на m, что и выполнение

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

и является более быстрым и безопасным, потому что в последней строке кода, забыв о eval(), приводит к ошибке, вызванной алиасингом.

Однако обратите внимание, что этот метод полезен только если вы хотите заменить матрицу её собственной транспонированной. Если вам нужна только транспонированная матрица, используйте transpose().

Примечание
если матрица не квадратная, то *this должна быть изменяемой матрицей. Это исключает (неквадратные) матрицы фиксированного размера, блочные выражения и отображения.
См. также
transpose(), adjoint(), adjointInPlace()

value()

template<typename Derived >
CoeffReturnType Eigen::DenseBase< Derived >::value ( ) const
inline
Возвращает
единственный коэффициент выражения 1x1

visit()

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

Применяет visitor visitor ко всем коэффициентам матрицы или вектора.

Шаблонный параметр Visitor — тип visitor и предоставляет следующий интерфейс:

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);
};
Примечание
по сравнению с одним или двумя циклами for, visitors предлагают автоматическую развертку для небольших матриц фиксированного размера.
если матрица пустая, visitor остается неизменным.
См. также
minCoeff(Index*,Index*), maxCoeff(Index*,Index*), DenseBase::redux()

Zero() [1/3]

template<typename Derived >
const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Zero
inlinestatic
Возвращает
выражение нулевой матрицы или вектора фиксированного размера.

Этот вариант предназначен только для типов матриц MatrixBase фиксированного размера. Для типов динамического размера вам необходимо использовать варианты, принимающие аргументы размера.

Пример:

cout << Matrix2d::Zero() << endl;
cout << RowVector4i::Zero() << endl;

Вывод:

0 0
0 0
0 0 0 0
См. также
Zero(Index), Zero(Index,Index)

Zero() [2/3]

template<typename Derived >
const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Zero ( Index rows,
Index cols
)
inlinestatic
Возвращает
выражение нулевой матрицы.

Параметры rows и cols — количество строк и столбцов возвращаемой матрицы. Должны быть совместимы с типом MatrixBase.

Этот вариант предназначен для использования с типами матриц динамического размера. Для типов фиксированного размера передача rows и cols как аргументов избыточна, поэтому следует использовать Zero().

Пример:

cout << MatrixXi::Zero(2,3) << endl;

Вывод:

0 0 0
0 0 0
См. также
Zero(), Zero(Index)

Zero() [3/3]

template<typename Derived >
const DenseBase< Derived >::ConstantReturnType Eigen::DenseBase< Derived >::Zero ( Index size )
inlinestatic
Возвращает
выражение нулевого вектора.

Параметр size — размер возвращаемого вектора. Должен быть совместим с типом MatrixBase.

Только для векторов (строчных или столбцовых), т.е. матриц, размер которых известен на этапе компиляции и имеет либо одну строку, либо один столбец.

Этот вариант предназначен для использования с типами векторов динамического размера. Для типов фиксированного размера передача size как аргумента избыточна, поэтому следует использовать Zero().

Пример:

cout << RowVectorXi::Zero(4) << endl;
cout << VectorXf::Zero(2) << endl;

Вывод:

0 0 0 0
0
0
См. также
Zero(), Zero(Index,Index)

operator<<()

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

Выводит матрицу в заданный поток.

Если вы хотите вывести матрицу с форматом, отличным от стандартного, используйте DenseBase::format().

Также можно изменить стандартный формат, определив EIGEN_DEFAULT_IO_FORMAT до включения заголовков Eigen. Если не определено, оно будет автоматически определено как Eigen::IOFormat(), то есть Eigen::IOFormat с параметрами по умолчанию.

См. также
DenseBase::format()

The documentation for this class was generated from the following files:
  • DenseBase.h
  • Assign.h
  • BooleanRedux.h
  • CommaInitializer.h
  • CwiseNullaryOp.h
  • EigenBase.h
  • Fuzzy.h
  • IO.h
  • NestByValue.h
  • Random.h
  • Redux.h
  • Replicate.h
  • ReturnByValue.h
  • Reverse.h
  • Select.h
  • SelfCwiseBinaryOp.h
  • StlIterators.h
  • Transpose.h
  • VectorwiseOp.h
  • Visitor.h

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1DenseBase.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API