eigen_util.h Source File
|
CPP API
|
eigen_util.h
Go to the documentation of this file.
109 return Eigen::Map<CVPlainMatrixT<std::decay_t<V>>, 0, Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic>>(
110 v.data() + elems.start, elems.n, Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic>{1, elems.stride});
202 //false if the elements are temporaries, e.g. for expressions like Eigen::MatrixXd::Constant(r, c, v).
205 std::is_reference_v<decltype(std::declval<M>()(std::declval<Eigen::Index>(), std::declval<Eigen::Index>()))>;
219 static_assert(IsConst || details::IsElementReference<M>, "Iterator must be const if matrix is not in memory.");
iterate over elements of eigen matrix expressions in row major order.
Definition: eigen_util.h:215
std::conditional_t< IsConst, const M &, M & > MatrixRef
Definition: eigen_util.h:217
RowMajorIterator(MatrixRef m, Eigen::Index i)
Create an iterator that points to a specific element.
Definition: eigen_util.h:246
RowMajorIterator & operator+=(difference_type n)
add n to index of this.
Definition: eigen_util.h:292
std::conditional_t< IsConst, const value_type &, value_type & > reference
Definition: eigen_util.h:223
bool operator<=(const RowMajorIterator &other) const
lesser equal comparison operator.
Definition: eigen_util.h:384
std::conditional_t< details::IsElementReference< MatrixRef >, std::conditional_t< IsConst, const value_type *, value_type * >, Proxy > pointer
Definition: eigen_util.h:238
bool operator<(const RowMajorIterator &other) const
lesser comparison operator.
Definition: eigen_util.h:370
RowMajorIterator operator++(int)
post increment operator.
Definition: eigen_util.h:269
difference_type operator-(RowMajorIterator r) const
calculate the distance between this and r.
Definition: eigen_util.h:332
RowMajorIterator operator-(difference_type n) const
take n from the index of this.
Definition: eigen_util.h:317
RowMajorIterator operator--(int)
post decrement operator.
Definition: eigen_util.h:308
RowMajorIterator operator+(difference_type n) const
random access, add n to index of this.
Definition: eigen_util.h:278
RowMajorIterator & operator-=(difference_type n)
take n from the index of this.
Definition: eigen_util.h:324
std::random_access_iterator_tag iterator_category
Definition: eigen_util.h:221
friend RowMajorIterator operator+(difference_type n, const RowMajorIterator &iter)
random access, add n to index of iterator.
Definition: eigen_util.h:285
RowMajorIterator & operator++()
pre increment operator.
Definition: eigen_util.h:261
bool operator>=(const RowMajorIterator &other) const
greater equal comparison operator.
Definition: eigen_util.h:391
RowMajorIterator & operator--()
pre decrement operator.
Definition: eigen_util.h:300
bool operator>(const RowMajorIterator &other) const
greater than comparison operator.
Definition: eigen_util.h:377
bool operator==(const RowMajorIterator &other) const
equality comparison operator.
Definition: eigen_util.h:398
std::conditional_t< IsConst, const M *, M * > MatrixPtr
Definition: eigen_util.h:218
bool operator!=(const RowMajorIterator &other) const
inequality comparison operator.
Definition: eigen_util.h:405
pointer operator->() const requires details
get a pointer to the element this iterator points to.
Definition: eigen_util.h:354
Definition: ad.h:57
A collection of classes to simplify handling of matrix shapes in meta programming.
Definition: models/abm/analyze_result.h:30
requires details::IsElementReference< M > RowMajorIterator< M, false > end(M &m)
create a non-const end iterator for the matrix m.
Definition: eigen_util.h:449
auto reshape(M &&m, Eigen::Index rows, Eigen::Index cols)
reshape the matrix.
Definition: eigen_util.h:151
Eigen::Index minor_size(M &&m)
number of columns (rows) of a row (column) major matrix.
Definition: eigen_util.h:77
RowMajorIterator< M, true > cend(const M &m)
create a non-const end iterator for the matrix m.
Definition: eigen_util.h:467
Eigen::Index major_size(M &&m)
number of rows (columns) of a row (column) major matrix.
Definition: eigen_util.h:68
requires(!std::is_trivial_v< T >) void BinarySerializerObject
Definition: binary_serializer.h:333
concept IsMatrixExpression
Concept to detect whether T is an Eigen matrix expression.
Definition: eigen_util.h:162
auto slice(V &&v, Seq< Eigen::Index > elems)
take a regular slice of a row or column vector.
Definition: eigen_util.h:107
auto max(const Eigen::MatrixBase< A > &a, B &&b)
coefficient wise maximum of two matrices.
Definition: eigen_util.h:171
requires details::IsElementReference< M > RowMajorIterator< M, false > begin(M &m)
create a non-const iterator to first element of the matrix m.
Definition: eigen_util.h:421
RowMajorIterator< M, true > cbegin(const M &m)
create a const iterator to first element of the matrix m.
Definition: eigen_util.h:439
concept IsDynamicVector
check if Eigen::Matrix type M is a dynamic vector type.
Definition: eigen_util.h:52
concept IsDynamicMatrix
check if Eigen::Matrix type M is a dynamic matrix type.
Definition: eigen_util.h:61
helper to get the matrix type from an eigen expression with correct const volatile qualitfications.
Definition: eigen_util.h:87
Definition: eigen_util.h:230
const value_type * operator->() const
Definition: eigen_util.h:232
Generated by