Main MRPT website > C++ reference for MRPT 1.9.9
matrix_adaptors.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #ifndef mrpt_matrix_adaptors_H
10 #define mrpt_matrix_adaptors_H
11 
12 #include <mrpt/math/math_frwds.h> // forward declarations
13 
14 namespace mrpt
15 {
16 namespace math
17 {
18 /** Internal classes not to be directly used by the user. */
19 // Forward declarations:
20 template <typename T, typename U, bool UIsObject>
21 class CBinaryRelation;
22 namespace detail
23 {
24 /**
25  * This template is a trick to switch the type of a variable using a boolean
26  * variable in the template. It's easy to extend its functionality to several
27  * types, using a unsigned char instead of a bool.
28  */
29 template <typename U, bool B>
31 
32 // partial specializations:
33 template <typename U>
34 class MatrixWrapper<U, true>
35 {
36  public:
38 };
39 template <typename U>
40 class MatrixWrapper<U, false>
41 {
42  public:
44 };
45 
46 template <typename T, typename U, bool UIsObject, typename FunctionType>
47 inline void applyFunction(
48  CBinaryRelation<T, U, UIsObject>& o, FunctionType fun, size_t e1, size_t e2,
49  const T& T1, const T& T2);
50 } // namespace detail
51 
52 namespace detail
53 {
54 /** Template class for matrix accessor's iterators.
55  * \sa CMatrixRowAccessor,CMatrixColumnAccessor
56  */
57 template <typename A, typename T>
59 {
60  protected:
61  A* base;
62  int pos;
63 
64  public:
65  // typedefs for iterator_traits:
66  using iterator_category = std::random_access_iterator_tag;
67  using value_type = T;
68  using difference_type = int;
69  using pointer = T*;
70  using reference = T&;
71 
72  inline AccessorIterator(A& obj, size_t N) : base(&obj), pos(N) {}
73  inline T& operator*() const { return (*base)[pos]; }
75  {
76  ++pos;
77  return *this;
78  }
80  {
81  AccessorIterator<A, T> it = *this;
82  ++*this;
83  return it;
84  }
86  {
87  --pos;
88  return *this;
89  }
91  {
92  AccessorIterator<A, T> it = *this;
93  --*this;
94  return it;
95  }
97  {
98  pos += off;
99  return *this;
100  }
101  inline AccessorIterator<A, T> operator+(int off) const
102  {
103  AccessorIterator<A, T> it = *this;
104  it += off;
105  return it;
106  }
108  {
109  pos -= off;
110  return *this;
111  }
112  inline AccessorIterator<A, T> operator-(int off) const
113  {
114  AccessorIterator<A, T> it = *this;
115  it -= off;
116  return it;
117  }
118  inline int operator-(const AccessorIterator<A, T>& it) const
119  {
120  return pos - it.pos;
121  }
122  inline T& operator[](int off) const { return (*base)[pos + off]; }
123  inline bool operator==(const AccessorIterator<A, T>& it) const
124  {
125  return (pos == it.pos) && (base == it.base);
126  }
127  inline bool operator!=(const AccessorIterator<A, T>& it) const
128  {
129  return !(operator==(it));
130  }
131 };
132 
133 /** Template class for matrix accessor's iterators.
134  * \sa CMatrixRowAccessor,CMatrixColumnAccessor
135  */
136 template <typename A, typename T>
138 {
139  protected:
140  A* base;
141  int pos;
142 
143  public:
144  // typedefs for iterator_traits:
145  using iterator_category = std::random_access_iterator_tag;
146  using value_type = T;
147  using difference_type = int;
148  using pointer = T*;
149  using reference = T&;
150 
151  inline ReverseAccessorIterator(A& obj, size_t N) : base(&obj), pos(N) {}
152  inline T& operator*() const { return (*base)[pos]; }
154  {
155  --pos;
156  return *this;
157  }
159  {
161  ++*this; // Yes, that's right.
162  return it;
163  }
165  {
166  ++pos;
167  return *this;
168  }
170  {
172  --*this; // Yes, that's right.
173  return it;
174  }
176  {
177  pos -= off;
178  return *this;
179  }
181  {
183  it += off; // Yes, that's right.
184  return it;
185  }
187  {
188  pos += off;
189  return *this;
190  }
191  inline AccessorIterator<A, T> operator-(int off) const
192  {
194  it -= off; // Yes, that's right
195  return it;
196  }
197  inline int operator-(const ReverseAccessorIterator<A, T>& it) const
198  {
199  return it.pos - pos;
200  }
201  inline T& operator[](int off) const { return (*base)[pos - off]; }
202  inline bool operator==(const ReverseAccessorIterator<A, T>& it) const
203  {
204  return (pos == it.pos) && (&base == &it.base);
205  }
206  inline bool operator!=(const ReverseAccessorIterator<A, T>& it) const
207  {
208  return !(operator==(it));
209  }
210 };
211 } // namespace detail
212 
213 /** A vector-like wrapper for a Matrix for accessing the elements of a given row
214  * with a [] operator.
215  * For usage with MRPT's CMatrixTemplate only (for MRPT numeric matrices, use
216  * Eigen methods)
217  * \sa
218  * CMatrixColumnAccessor,CMatrixRowAccessorExtended,CConstMatrixRowAccessor,CConstMatrixRowAccessorExtended
219  */
220 template <typename MAT>
222 {
223  protected:
224  MAT* m_mat;
225  size_t m_rowInd;
226 
227  public:
228  using value_type = typename MAT::Scalar;
230  inline CMatrixRowAccessor(MAT& mat, size_t rowIdx)
231  : m_mat(&mat), m_rowInd(rowIdx)
232  {
233  ASSERT_(rowIdx < mat.rows();
234  }
235  inline CMatrixRowAccessor() {}
236  inline value_type& operator[](const size_t i)
237  {
238  return (*m_mat)(m_rowInd, i);
239  }
240  inline value_type operator[](const size_t i) const
241  {
242  return (*m_mat)(m_rowInd, i);
243  }
244  using iterator =
248  using reverse_iterator =
252  inline iterator begin() { return iterator(*this, 0); }
253  inline const_iterator begin() const { return const_iterator(*this, 0); }
254  inline iterator end() { return iterator(*this, m_mat->cols()); }
255  inline const_iterator end() const
256  {
257  return const_iterator(*this, m_mat->cols());
258  }
260  {
261  return reverse_iterator(*this, m_mat->cols() - 1);
262  }
264  {
265  return const_reverse_iterator(*this, m_mat->cols() - 1);
266  }
267  inline reverse_iterator rend() { return reverse_iterator(*this, -1); }
269  {
270  return const_reverse_iterator(*this, -1);
271  }
272  inline size_t size() const { return m_mat->cols(); }
273  inline void resize(size_t N)
274  {
275  if (N != size())
276  throw std::logic_error("Tried to resize a fixed-size vector");
277  }
278 };
279 template <typename MAT>
280 inline CMatrixRowAccessor<MAT> getRowAccessor(MAT& m, size_t rowIdx)
281 {
282  return CMatrixRowAccessor<MAT>(m, rowIdx);
283 }
284 
285 /** A vector-like wrapper for a Matrix for accessing the elements of a given row
286  * with a [] operator, with offset and custom spacing.
287  * For usage with MRPT's CMatrixTemplate only (for MRPT numeric matrices, use
288  * Eigen methods)
289  * \sa
290  * CMatrixColumnAccessorExtended,CMatrixRowAccessor,CConstMatrixRowAccessor,CConstMatrixRowAccessorExtended
291  */
292 template <class MAT>
294 {
295  protected:
296  MAT* m_mat;
297  size_t m_rowInd;
298  size_t m_colOffset;
300  size_t howMany;
301 
302  public:
303  using value_type = typename MAT::Scalar;
306  MAT& mat, size_t row, size_t offset, size_t space)
307  : m_mat(&mat),
308  m_rowInd(row),
310  m_elementsSpace(space)
311  {
312  ASSERT_(row < mat.rows());
313  howMany = (mat.cols() - m_colOffset) / m_elementsSpace;
314  }
316  inline value_type& operator[](size_t i)
317  {
318  return (*m_mat)(m_rowInd, m_colOffset + (i * m_elementsSpace));
319  }
320  inline value_type operator[](size_t i) const
321  {
322  return (*m_mat)(m_rowInd, m_colOffset + (i * m_elementsSpace));
323  }
324  using iterator =
332  inline iterator begin() { return iterator(*this, 0); }
333  inline const_iterator begin() const { return const_iterator(*this, 0); }
334  inline iterator end() { return iterator(*this, howMany); }
335  inline const_iterator end() const { return const_iterator(*this, howMany); }
337  {
338  return reverse_iterator(*this, howMany - 1);
339  }
341  {
342  return const_reverse_iterator(*this, howMany - 1);
343  }
344  inline reverse_iterator rend() { return reverse_iterator(*this, -1); }
346  {
347  return const_reverse_iterator(*this, -1);
348  }
349  inline size_t size() const { return howMany; }
350  inline void resize(size_t N)
351  {
352  if (N != size())
353  throw std::logic_error("Tried to resize a fixed-size vector");
354  }
355 };
356 template <typename MAT>
358  MAT& m, size_t rowIdx, size_t offset, size_t space = 1)
359 {
360  return CMatrixRowAccessor<MAT>(m, rowIdx, offset, space);
361 }
362 
363 /** A vector-like wrapper for a const Matrix for accessing the elements of a
364  * given row with a [] operator.
365  * For usage with MRPT's CMatrixTemplate only (for MRPT numeric matrices, use
366  * Eigen methods)
367  * \sa
368  * CConstMatrixColumnAccessor,CMatrixRowAccessorExtended,CMatrixRowAccessor,CConstMatrixRowAccessorExtended
369  */
370 template <class MAT>
372 {
373  protected:
374  const MAT* m_mat;
375  size_t m_rowInd;
376 
377  public:
378  using value_type = typename MAT::Scalar;
380  inline CConstMatrixRowAccessor(const MAT& mat, size_t row)
381  : m_mat(&mat), m_rowInd(row)
382  {
383  ASSERT_(row < mat.rows());
384  }
386  inline value_type operator[](size_t i) const
387  {
388  return (*m_mat)(m_rowInd, i);
389  }
394  inline const_iterator begin() const { return const_iterator(*this, 0); }
395  inline const_iterator end() const
396  {
397  return const_iterator(*this, m_mat->cols());
398  }
400  {
401  return const_reverse_iterator(*this, m_mat->cols() - 1);
402  }
404  {
405  return const_reverse_iterator(*this, -1);
406  }
407  inline size_t size() const { return m_mat->cols(); }
408  inline void resize(size_t N)
409  {
410  if (N != size())
411  throw std::logic_error("Tried to resize a fixed-size vector");
412  }
413 };
414 template <typename MAT>
415 inline CConstMatrixRowAccessor<MAT> getRowAccessor(const MAT& m, size_t rowIdx)
416 {
417  return CMatrixRowAccessor<MAT>(m, rowIdx);
418 }
419 
420 /** A vector-like wrapper for a const Matrix for accessing the elements of a
421  * given row with a [] operator, with offset and custom spacing.
422  * For usage with MRPT's CMatrixTemplate only (for MRPT numeric matrices, use
423  * Eigen methods)
424  * \sa
425  * CConstMatrixColumnAccessorExtended,CMatrixRowAccessor,CConstMatrixRowAccessor,CMatrixRowAccessorExtended
426  */
427 template <class MAT>
429 {
430  protected:
431  const MAT* m_mat;
432  size_t m_rowInd;
433  size_t m_colOffset;
435  size_t howMany;
436 
437  public:
438  using value_type = typename MAT::Scalar;
441  const MAT& mat, size_t row, size_t offset, size_t space)
442  : m_mat(&mat),
443  m_rowInd(row),
445  m_elementsSpace(space)
446  {
447  ASSERT_(row < mat.rows());
448  howMany = (mat.cols() - m_colOffset) / m_elementsSpace;
449  }
451  inline value_type operator[](size_t i) const
452  {
453  return (*m_mat)(m_rowInd, m_colOffset + (i * m_elementsSpace));
454  }
459  inline const_iterator begin() const { return const_iterator(*this, 0); }
460  inline const_iterator end() const { return const_iterator(*this, howMany); }
462  {
463  return const_reverse_iterator(*this, howMany - 1);
464  }
466  {
467  return const_reverse_iterator(*this, -1);
468  }
469  inline size_t size() const { return howMany; }
470  inline void resize(size_t N)
471  {
472  if (N != size())
473  throw std::logic_error("Tried to resize a fixed-size vector");
474  }
475 };
476 template <typename MAT>
478  const MAT& m, size_t rowIdx, size_t offset, size_t space = 1)
479 {
480  return CConstMatrixRowAccessorExtended<MAT>(m, rowIdx, offset, space);
481 }
482 
483 /** A vector-like wrapper for a Matrix for accessing the elements of a given
484  * column with a [] operator.
485  * \sa
486  * CMatrixRowAccessor,CMatrixColumnAccessorExtended,CConstMatrixColumnAccessor,CConstMatrixColumnAccessorExtended
487  */
488 template <typename MAT>
490 {
491  protected:
492  MAT* m_mat;
493  size_t m_colInd;
494 
495  public:
496  using value_type = typename MAT::Scalar;
498  inline CMatrixColumnAccessor(MAT& mat, size_t colIdx)
499  : m_mat(&mat), m_colInd(colIdx)
500  {
501  ASSERT_(colIdx < mat.cols();
502  }
504  inline value_type& operator[](const size_t i)
505  {
506  return (*m_mat)(i, m_colInd);
507  }
508  inline value_type operator[](const size_t i) const
509  {
510  return (*m_mat)(i, m_colInd);
511  }
512  using iterator =
516  using reverse_iterator =
520  inline iterator begin() { return iterator(*this, 0); }
521  inline const_iterator begin() const { return const_iterator(*this, 0); }
522  inline iterator end() { return iterator(*this, m_mat->rows()); }
523  inline const_iterator end() const
524  {
525  return const_iterator(*this, m_mat->rows());
526  }
528  {
529  return reverse_iterator(*this, m_mat->rows() - 1);
530  }
532  {
533  return const_reverse_iterator(*this, m_mat->rows() - 1);
534  }
535  inline reverse_iterator rend() { return reverse_iterator(*this, -1); }
537  {
538  return const_reverse_iterator(*this, -1);
539  }
540  inline size_t size() const { return m_mat->rows(); }
541  inline void resize(size_t N)
542  {
543  if (N != size())
544  throw std::logic_error("Tried to resize a fixed-size vector");
545  }
546 };
547 template <typename MAT>
548 inline CMatrixColumnAccessor<MAT> getColumnAccessor(MAT& m, size_t colIdx)
549 {
550  return CMatrixColumnAccessor<MAT>(m, colIdx);
551 }
552 
553 /** A vector-like wrapper for a Matrix for accessing the elements of a given
554  * column with a [] operator, with offset and custom spacing.
555  * \sa
556  * CMatrixRowAccessorExtended,CMatrixColumnAccessor,CConstMatrixColumnAccessor,CConstMatrixColumnAccessorExtended
557  */
558 template <typename MAT>
560 {
561  protected:
562  MAT* m_mat;
563  size_t m_colInd;
564  size_t m_rowOffset;
566  size_t howMany;
567 
568  public:
569  using value_type = typename MAT::Scalar;
572  MAT& mat, size_t col, size_t offset, size_t space)
573  : m_mat(&mat),
574  m_colInd(col),
576  m_elementsSpace(space)
577  {
578  ASSERT_(col < mat.cols());
579  howMany = (mat.rows() - m_rowOffset) / m_elementsSpace;
580  }
582  inline value_type& operator[](size_t i)
583  {
584  return (*m_mat)(m_rowOffset + (i * m_elementsSpace), m_colInd);
585  }
586  inline value_type operator[](size_t i) const
587  {
588  return (*m_mat)(m_rowOffset + (i * m_elementsSpace), m_colInd);
589  }
598  inline iterator begin() { return iterator(*this, 0); }
599  inline const_iterator begin() const { return const_iterator(*this, 0); }
600  inline iterator end() { return iterator(*this, howMany); }
601  inline const_iterator end() const { return const_iterator(*this, howMany); }
603  {
604  return reverse_iterator(*this, howMany - 1);
605  }
607  {
608  return const_reverse_iterator(*this, howMany - 1);
609  }
610  inline reverse_iterator rend() { return reverse_iterator(*this, -1); }
612  {
613  return const_reverse_iterator(*this, -1);
614  }
615  inline size_t size() const { return howMany; }
616  inline void resize(size_t N)
617  {
618  if (N != size())
619  throw std::logic_error("Tried to resize a fixed-size vector");
620  }
621 };
622 template <typename MAT>
624  MAT& m, size_t colIdx, size_t offset, size_t space = 1)
625 {
626  return CMatrixColumnAccessorExtended<MAT>(m, colIdx, offset, space);
627 }
628 
629 /** A vector-like wrapper for a const Matrix for accessing the elements of a
630  * given column with a [] operator.
631  * \sa
632  * CConstMatrixRowAccessor,CMatrixColumnAccessorExtended,CMatrixColumnAccessor,CConstMatrixColumnAccessorExtended
633  */
634 template <class MAT>
636 {
637  protected:
638  const MAT* m_mat;
639  size_t m_colInd;
640 
641  public:
642  using value_type = typename MAT::Scalar;
644  inline CConstMatrixColumnAccessor(const MAT& mat, size_t colIdx)
645  : m_mat(&mat), m_colInd(colIdx)
646  {
647  ASSERT_(colIdx < mat.cols());
648  }
650  inline value_type operator[](size_t i) const
651  {
652  return (*m_mat)(i, m_colInd);
653  }
658  inline const_iterator begin() const { return const_iterator(*this, 0); }
659  inline const_iterator end() const
660  {
661  return const_iterator(*this, m_mat->rows());
662  }
664  {
665  return const_reverse_iterator(*this, m_mat->rows() - 1);
666  }
668  {
669  return const_reverse_iterator(*this, -1);
670  }
671  inline size_t size() const { return m_mat->rows(); }
672  inline void resize(size_t N)
673  {
674  if (N != size())
675  throw std::logic_error("Tried to resize a fixed-size vector");
676  }
677 };
678 template <typename MAT>
680  const MAT& m, size_t colIdx)
681 {
682  return CConstMatrixColumnAccessor<MAT>(m, colIdx);
683 }
684 
685 /** A vector-like wrapper for a const Matrix for accessing the elements of a
686  * given column with a [] operator, with offset and custom spacing.
687  * \sa
688  * CConstMatrixRowAccessorExtended,CMatrixColumnAccessor,CConstMatrixColumnAccessor,CMatrixColumnAccessorExtended
689  */
690 template <typename MAT>
692 {
693  protected:
694  const MAT* m_mat;
695  size_t m_colInd;
696  size_t m_rowOffset;
698  size_t howMany;
699 
700  public:
701  using value_type = typename MAT::Scalar;
704  const MAT& mat, size_t col, size_t offset, size_t space)
705  : m_mat(&mat),
706  m_colInd(col),
708  m_elementsSpace(space)
709  {
710  ASSERT_(col < mat.cols());
711  howMany = (mat.rows() - m_rowOffset) / m_elementsSpace;
712  }
714  inline value_type operator[](size_t i) const
715  {
716  return (*m_mat)(m_rowOffset + (i * m_elementsSpace), m_colInd);
717  }
722  inline const_iterator begin() const { return const_iterator(*this, 0); }
723  inline const_iterator end() const { return const_iterator(*this, howMany); }
725  {
726  return const_reverse_iterator(*this, howMany - 1);
727  }
729  {
730  return const_reverse_iterator(*this, -1);
731  }
732  inline size_t size() const { return howMany; }
733  inline void resize(size_t N)
734  {
735  if (N != size())
736  throw std::logic_error("Tried to resize a fixed-size vector");
737  }
738 };
739 template <typename MAT>
741  const MAT& m, size_t colIdx, size_t offset, size_t space = 1)
742 {
743  return CConstMatrixColumnAccessorExtended<MAT>(m, colIdx, offset, space);
744 }
745 
746 } // namespace math
747 } // namespace mrpt
748 
749 #endif
mrpt::math::CConstMatrixRowAccessorExtended::operator[]
value_type operator[](size_t i) const
Definition: matrix_adaptors.h:451
mrpt::math::detail::ReverseAccessorIterator::iterator_category
std::random_access_iterator_tag iterator_category
Definition: matrix_adaptors.h:145
mrpt::math::CConstMatrixColumnAccessor::const_iterator
detail::AccessorIterator< const CConstMatrixColumnAccessor< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:655
mrpt::math::CConstMatrixRowAccessor::const_reverse_iterator
detail::ReverseAccessorIterator< const CConstMatrixRowAccessor< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:393
mrpt::math::CMatrixRowAccessorExtended::m_mat
MAT * m_mat
Definition: matrix_adaptors.h:296
mrpt::math::CMatrixColumnAccessor::rbegin
reverse_iterator rbegin()
Definition: matrix_adaptors.h:527
mrpt::math::CConstMatrixColumnAccessorExtended::m_colInd
size_t m_colInd
Definition: matrix_adaptors.h:695
mrpt::math::CMatrixRowAccessorExtended::rbegin
reverse_iterator rbegin()
Definition: matrix_adaptors.h:336
mrpt::math::CMatrixColumnAccessorExtended::iterator
detail::AccessorIterator< CMatrixColumnAccessorExtended< MAT >, value_type > iterator
Definition: matrix_adaptors.h:591
mrpt::math::CConstMatrixRowAccessor::end
const_iterator end() const
Definition: matrix_adaptors.h:395
mrpt::math::CMatrixRowAccessorExtended::end
const_iterator end() const
Definition: matrix_adaptors.h:335
mrpt::math::CConstMatrixColumnAccessorExtended::resize
void resize(size_t N)
Definition: matrix_adaptors.h:733
mrpt::math::CConstMatrixRowAccessorExtended::CConstMatrixRowAccessorExtended
CConstMatrixRowAccessorExtended()
Definition: matrix_adaptors.h:450
mrpt::math::CConstMatrixColumnAccessorExtended::m_mat
const MAT * m_mat
Definition: matrix_adaptors.h:694
mrpt::math::detail::ReverseAccessorIterator::pos
int pos
Definition: matrix_adaptors.h:141
mrpt::math::CMatrixRowAccessor::operator[]
value_type & operator[](const size_t i)
Definition: matrix_adaptors.h:236
mrpt::math::CMatrixColumnAccessor::operator[]
value_type operator[](const size_t i) const
Definition: matrix_adaptors.h:508
mrpt::math::detail::AccessorIterator::operator+=
AccessorIterator< A, T > & operator+=(int off)
Definition: matrix_adaptors.h:96
mrpt::math::detail::AccessorIterator::operator-=
AccessorIterator< A, T > & operator-=(int off)
Definition: matrix_adaptors.h:107
const_iterator
const Scalar * const_iterator
Definition: eigen_plugins.h:27
mrpt::math::detail::AccessorIterator::operator*
T & operator*() const
Definition: matrix_adaptors.h:73
mrpt::math::CMatrixRowAccessor::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:228
mrpt::math::CMatrixColumnAccessorExtended::howMany
size_t howMany
Definition: matrix_adaptors.h:566
mrpt::math::detail::AccessorIterator::base
A * base
Definition: matrix_adaptors.h:61
mrpt::math::CMatrixColumnAccessor::begin
iterator begin()
Definition: matrix_adaptors.h:520
mrpt::math::CConstMatrixColumnAccessor::begin
const_iterator begin() const
Definition: matrix_adaptors.h:658
mrpt::math::CMatrixRowAccessorExtended::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:303
mrpt::math::CConstMatrixRowAccessorExtended::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:438
mrpt::math::CMatrixRowAccessorExtended::reverse_iterator
detail::ReverseAccessorIterator< CMatrixRowAccessorExtended< MAT >, value_type > reverse_iterator
Definition: matrix_adaptors.h:329
mrpt::math::detail::AccessorIterator::difference_type
int difference_type
Definition: matrix_adaptors.h:68
mrpt::math::CMatrixRowAccessorExtended::iterator
detail::AccessorIterator< CMatrixRowAccessorExtended< MAT >, value_type > iterator
Definition: matrix_adaptors.h:325
mrpt::math::detail::AccessorIterator
Template class for matrix accessor's iterators.
Definition: matrix_adaptors.h:58
mrpt::math::CConstMatrixRowAccessorExtended::const_iterator
detail::AccessorIterator< const CConstMatrixRowAccessorExtended< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:456
mrpt::math::CConstMatrixColumnAccessorExtended::howMany
size_t howMany
Definition: matrix_adaptors.h:698
mrpt::math::CConstMatrixRowAccessor::resize
void resize(size_t N)
Definition: matrix_adaptors.h:408
mrpt::math::CMatrixColumnAccessor::CMatrixColumnAccessor
CMatrixColumnAccessor()
Definition: matrix_adaptors.h:503
mrpt::math::CBinaryRelation
This class models a binary relation through the elements of any given set.
Definition: CBinaryRelation.h:42
mrpt::math::CConstMatrixColumnAccessor::m_mat
const MAT * m_mat
Definition: matrix_adaptors.h:638
mrpt::math::CMatrixColumnAccessorExtended::CMatrixColumnAccessorExtended
CMatrixColumnAccessorExtended(MAT &mat, size_t col, size_t offset, size_t space)
Definition: matrix_adaptors.h:571
mrpt::math::CConstMatrixColumnAccessorExtended::size
size_t size() const
Definition: matrix_adaptors.h:732
mrpt::math::CConstMatrixRowAccessorExtended::m_colOffset
size_t m_colOffset
Definition: matrix_adaptors.h:433
mrpt::math::CMatrixRowAccessorExtended::size
size_t size() const
Definition: matrix_adaptors.h:349
mrpt::math::detail::ReverseAccessorIterator::operator==
bool operator==(const ReverseAccessorIterator< A, T > &it) const
Definition: matrix_adaptors.h:202
mrpt::math::CMatrixColumnAccessorExtended::CMatrixColumnAccessorExtended
CMatrixColumnAccessorExtended()
Definition: matrix_adaptors.h:581
mrpt::math::CMatrixRowAccessorExtended::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:340
mrpt::math::detail::ReverseAccessorIterator::operator*
T & operator*() const
Definition: matrix_adaptors.h:152
mrpt::math::detail::AccessorIterator::operator--
AccessorIterator< A, T > & operator--()
Definition: matrix_adaptors.h:85
mrpt::math::CMatrixTemplate
This template class provides the basic functionality for a general 2D any-size, resizable container o...
Definition: CMatrixTemplate.h:72
mrpt::math::detail::ReverseAccessorIterator
Template class for matrix accessor's iterators.
Definition: matrix_adaptors.h:137
mrpt::math::detail::AccessorIterator::operator==
bool operator==(const AccessorIterator< A, T > &it) const
Definition: matrix_adaptors.h:123
mrpt::math::detail::AccessorIterator::operator!=
bool operator!=(const AccessorIterator< A, T > &it) const
Definition: matrix_adaptors.h:127
mrpt::math::CMatrixColumnAccessorExtended::size
size_t size() const
Definition: matrix_adaptors.h:615
mrpt::math::CMatrixColumnAccessorExtended::rend
reverse_iterator rend()
Definition: matrix_adaptors.h:610
mrpt::math::CConstMatrixRowAccessorExtended::begin
const_iterator begin() const
Definition: matrix_adaptors.h:459
mrpt::math::detail::applyFunction
void applyFunction(CBinaryRelation< T, U, UIsObject > &o, FunctionType fun, size_t e1, size_t e2, const T &T1, const T &T2)
Definition: CBinaryRelation.h:563
mrpt::math::CMatrixRowAccessorExtended::resize
void resize(size_t N)
Definition: matrix_adaptors.h:350
obj
GLsizei GLsizei GLuint * obj
Definition: glext.h:4070
mrpt::math::CMatrixRowAccessor::iterator
detail::AccessorIterator< CMatrixRowAccessor< MAT >, value_type > iterator
Definition: matrix_adaptors.h:245
mrpt::math::CConstMatrixColumnAccessorExtended
A vector-like wrapper for a const Matrix for accessing the elements of a given column with a [] opera...
Definition: matrix_adaptors.h:691
mrpt::math::CMatrixRowAccessorExtended::m_elementsSpace
size_t m_elementsSpace
Definition: matrix_adaptors.h:299
mrpt::math::detail::ReverseAccessorIterator::operator!=
bool operator!=(const ReverseAccessorIterator< A, T > &it) const
Definition: matrix_adaptors.h:206
mrpt::math::CConstMatrixColumnAccessor::operator[]
value_type operator[](size_t i) const
Definition: matrix_adaptors.h:650
mrpt::math::CConstMatrixColumnAccessorExtended::operator[]
value_type operator[](size_t i) const
Definition: matrix_adaptors.h:714
mrpt::math::getColumnAccessor
CMatrixColumnAccessor< MAT > getColumnAccessor(MAT &m, size_t colIdx)
Definition: matrix_adaptors.h:548
mrpt::math::detail::AccessorIterator::operator++
AccessorIterator< A, T > operator++(int)
Definition: matrix_adaptors.h:79
mrpt::math::detail::ReverseAccessorIterator::operator-
AccessorIterator< A, T > operator-(int off) const
Definition: matrix_adaptors.h:191
mrpt::math::detail::AccessorIterator::reference
T & reference
Definition: matrix_adaptors.h:70
mrpt::math::CMatrixRowAccessor::m_mat
MAT * m_mat
Definition: matrix_adaptors.h:224
mrpt::math::CMatrixColumnAccessorExtended::operator[]
value_type & operator[](size_t i)
Definition: matrix_adaptors.h:582
mrpt::math::CConstMatrixColumnAccessor::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:667
mrpt::math::detail::ReverseAccessorIterator::operator--
ReverseAccessorIterator< A, T > operator--(int)
Definition: matrix_adaptors.h:169
mrpt
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Definition: CKalmanFilterCapable.h:30
mrpt::math::CConstMatrixRowAccessor::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:378
mrpt::math::CMatrixColumnAccessorExtended::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:611
mrpt::math::CConstMatrixColumnAccessorExtended::CConstMatrixColumnAccessorExtended
CConstMatrixColumnAccessorExtended()
Definition: matrix_adaptors.h:713
mrpt::math::CConstMatrixRowAccessorExtended::end
const_iterator end() const
Definition: matrix_adaptors.h:460
mrpt::math::CConstMatrixRowAccessor::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:403
mrpt::math::CMatrixRowAccessorExtended::const_iterator
detail::AccessorIterator< const CMatrixRowAccessorExtended< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:327
mrpt::math::CMatrixColumnAccessor::reverse_iterator
detail::ReverseAccessorIterator< CMatrixColumnAccessor< MAT >, value_type > reverse_iterator
Definition: matrix_adaptors.h:517
mrpt::math::CMatrixRowAccessor::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:268
ASSERT_
#define ASSERT_(f)
Defines an assertion mechanism.
Definition: exceptions.h:113
mrpt::math::CMatrixRowAccessor
A vector-like wrapper for a Matrix for accessing the elements of a given row with a [] operator.
Definition: matrix_adaptors.h:221
mrpt::math::detail::AccessorIterator::operator+
AccessorIterator< A, T > operator+(int off) const
Definition: matrix_adaptors.h:101
mrpt::math::CMatrixColumnAccessorExtended
A vector-like wrapper for a Matrix for accessing the elements of a given column with a [] operator,...
Definition: matrix_adaptors.h:559
mrpt::math::CMatrixRowAccessor::CMatrixRowAccessor
CMatrixRowAccessor()
Definition: matrix_adaptors.h:235
mrpt::math::CMatrixRowAccessor::const_reverse_iterator
detail::ReverseAccessorIterator< const CMatrixRowAccessor< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:251
mrpt::math::CMatrixRowAccessor::m_rowInd
size_t m_rowInd
Definition: matrix_adaptors.h:225
mrpt::math::CMatrixColumnAccessor::m_colInd
size_t m_colInd
Definition: matrix_adaptors.h:493
mrpt::math::CMatrixRowAccessor::const_iterator
detail::AccessorIterator< const CMatrixRowAccessor< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:247
mrpt::math::CConstMatrixRowAccessor::m_rowInd
size_t m_rowInd
Definition: matrix_adaptors.h:375
mrpt::math::CMatrixRowAccessorExtended::begin
iterator begin()
Definition: matrix_adaptors.h:332
Scalar
double Scalar
Definition: KmUtils.h:44
mrpt::math::CConstMatrixRowAccessor::CConstMatrixRowAccessor
CConstMatrixRowAccessor()
Definition: matrix_adaptors.h:385
mrpt::math::CMatrixColumnAccessorExtended::end
iterator end()
Definition: matrix_adaptors.h:600
mrpt::math::CMatrixColumnAccessorExtended::m_elementsSpace
size_t m_elementsSpace
Definition: matrix_adaptors.h:565
mrpt::math::CConstMatrixRowAccessor::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:399
mrpt::math::CConstMatrixRowAccessorExtended::resize
void resize(size_t N)
Definition: matrix_adaptors.h:470
mrpt::math::CConstMatrixColumnAccessorExtended::m_rowOffset
size_t m_rowOffset
Definition: matrix_adaptors.h:696
mrpt::math::detail::ReverseAccessorIterator::difference_type
int difference_type
Definition: matrix_adaptors.h:147
mrpt::math::detail::AccessorIterator::operator-
int operator-(const AccessorIterator< A, T > &it) const
Definition: matrix_adaptors.h:118
mrpt::math::CMatrixRowAccessorExtended::howMany
size_t howMany
Definition: matrix_adaptors.h:300
mrpt::math::detail::ReverseAccessorIterator::operator-=
AccessorIterator< A, T > & operator-=(int off)
Definition: matrix_adaptors.h:186
mrpt::math::detail::ReverseAccessorIterator::value_type
T value_type
Definition: matrix_adaptors.h:146
mrpt::math::CConstMatrixColumnAccessorExtended::end
const_iterator end() const
Definition: matrix_adaptors.h:723
mrpt::math::CConstMatrixColumnAccessor::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:663
mrpt::math::detail::AccessorIterator::value_type
T value_type
Definition: matrix_adaptors.h:67
mrpt::math::detail::ReverseAccessorIterator::operator--
ReverseAccessorIterator< A, T > & operator--()
Definition: matrix_adaptors.h:164
mrpt::math::CMatrixColumnAccessor::rend
reverse_iterator rend()
Definition: matrix_adaptors.h:535
offset
GLintptr offset
Definition: glext.h:3925
mrpt::math::CMatrixColumnAccessorExtended::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:569
mrpt::math::detail::AccessorIterator::AccessorIterator
AccessorIterator(A &obj, size_t N)
Definition: matrix_adaptors.h:72
mrpt::math::CConstMatrixColumnAccessor::size
size_t size() const
Definition: matrix_adaptors.h:671
mrpt::math::CMatrixRowAccessorExtended::const_reverse_iterator
detail::ReverseAccessorIterator< const CMatrixRowAccessorExtended< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:331
mrpt::math::CConstMatrixColumnAccessor::CConstMatrixColumnAccessor
CConstMatrixColumnAccessor()
Definition: matrix_adaptors.h:649
mrpt::math::CMatrixColumnAccessor::const_iterator
detail::AccessorIterator< const CMatrixColumnAccessor< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:515
mrpt::math::detail::ReverseAccessorIterator::reference
T & reference
Definition: matrix_adaptors.h:149
mrpt::math::CConstMatrixRowAccessor::const_iterator
detail::AccessorIterator< const CConstMatrixRowAccessor< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:391
mrpt::math::CMatrixColumnAccessorExtended::reverse_iterator
detail::ReverseAccessorIterator< CMatrixColumnAccessorExtended< MAT >, value_type > reverse_iterator
Definition: matrix_adaptors.h:595
mrpt::math::CMatrixColumnAccessor::CMatrixColumnAccessor
CMatrixColumnAccessor(MAT &mat, size_t colIdx)
Definition: matrix_adaptors.h:498
mrpt::math::CMatrixRowAccessorExtended::m_rowInd
size_t m_rowInd
Definition: matrix_adaptors.h:297
mrpt::math::CConstMatrixRowAccessor::m_mat
const MAT * m_mat
Definition: matrix_adaptors.h:374
mrpt::math::CMatrixRowAccessorExtended::rend
reverse_iterator rend()
Definition: matrix_adaptors.h:344
mrpt::math::CMatrixColumnAccessor::begin
const_iterator begin() const
Definition: matrix_adaptors.h:521
mrpt::math::CMatrixRowAccessorExtended
A vector-like wrapper for a Matrix for accessing the elements of a given row with a [] operator,...
Definition: matrix_adaptors.h:293
mrpt::math::CConstMatrixRowAccessorExtended::m_rowInd
size_t m_rowInd
Definition: matrix_adaptors.h:432
mrpt::math::CMatrixColumnAccessorExtended::m_rowOffset
size_t m_rowOffset
Definition: matrix_adaptors.h:564
mrpt::math::CMatrixRowAccessor::end
const_iterator end() const
Definition: matrix_adaptors.h:255
mrpt::math::CConstMatrixRowAccessorExtended::size
size_t size() const
Definition: matrix_adaptors.h:469
mrpt::math::detail::ReverseAccessorIterator::operator+
ReverseAccessorIterator< A, T > operator+(int off) const
Definition: matrix_adaptors.h:180
mrpt::math::CMatrixColumnAccessor::end
iterator end()
Definition: matrix_adaptors.h:522
mrpt::math::CMatrixColumnAccessor::operator[]
value_type & operator[](const size_t i)
Definition: matrix_adaptors.h:504
mrpt::math::CMatrixRowAccessorExtended::CMatrixRowAccessorExtended
CMatrixRowAccessorExtended(MAT &mat, size_t row, size_t offset, size_t space)
Definition: matrix_adaptors.h:305
mrpt::math::CConstMatrixColumnAccessor::resize
void resize(size_t N)
Definition: matrix_adaptors.h:672
mrpt::math::CMatrixRowAccessor::resize
void resize(size_t N)
Definition: matrix_adaptors.h:273
mrpt::math::CConstMatrixRowAccessorExtended::m_elementsSpace
size_t m_elementsSpace
Definition: matrix_adaptors.h:434
mrpt::math::detail::MatrixWrapper
This template is a trick to switch the type of a variable using a boolean variable in the template.
Definition: matrix_adaptors.h:30
mrpt::math::CMatrixColumnAccessorExtended::m_colInd
size_t m_colInd
Definition: matrix_adaptors.h:563
mrpt::math::CConstMatrixColumnAccessorExtended::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:728
mrpt::math::detail::ReverseAccessorIterator::ReverseAccessorIterator
ReverseAccessorIterator(A &obj, size_t N)
Definition: matrix_adaptors.h:151
mrpt::math::CMatrixColumnAccessor::iterator
detail::AccessorIterator< CMatrixColumnAccessor< MAT >, value_type > iterator
Definition: matrix_adaptors.h:513
mrpt::math::CMatrixRowAccessor::end
iterator end()
Definition: matrix_adaptors.h:254
math_frwds.h
mrpt::math::CMatrixRowAccessor::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:263
mrpt::math::detail::AccessorIterator::operator[]
T & operator[](int off) const
Definition: matrix_adaptors.h:122
mrpt::math::detail::ReverseAccessorIterator::operator[]
T & operator[](int off) const
Definition: matrix_adaptors.h:201
mrpt::math::CConstMatrixColumnAccessor::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:642
mrpt::math::CMatrixColumnAccessorExtended::const_reverse_iterator
detail::ReverseAccessorIterator< const CMatrixColumnAccessorExtended< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:597
mrpt::math::CMatrixRowAccessor::size
size_t size() const
Definition: matrix_adaptors.h:272
mrpt::math::CMatrixColumnAccessor::size
size_t size() const
Definition: matrix_adaptors.h:540
mrpt::math::CMatrixTemplateObjects
This template class extends the class "CMatrixTemplate" for storing "objects" at each matrix entry.
Definition: CMatrixTemplateObjects.h:47
mrpt::math::detail::ReverseAccessorIterator::operator-
int operator-(const ReverseAccessorIterator< A, T > &it) const
Definition: matrix_adaptors.h:197
mrpt::math::CMatrixColumnAccessor
A vector-like wrapper for a Matrix for accessing the elements of a given column with a [] operator.
Definition: matrix_adaptors.h:489
mrpt::math::CMatrixColumnAccessor::resize
void resize(size_t N)
Definition: matrix_adaptors.h:541
mrpt::math::CConstMatrixColumnAccessorExtended::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:701
mrpt::math::detail::ReverseAccessorIterator::operator+=
ReverseAccessorIterator< A, T > & operator+=(int off)
Definition: matrix_adaptors.h:175
mrpt::math::CConstMatrixColumnAccessorExtended::m_elementsSpace
size_t m_elementsSpace
Definition: matrix_adaptors.h:697
mrpt::math::CMatrixColumnAccessor::value_type
typename MAT::Scalar value_type
Definition: matrix_adaptors.h:496
mrpt::math::CConstMatrixColumnAccessorExtended::const_reverse_iterator
detail::ReverseAccessorIterator< const CConstMatrixColumnAccessorExtended< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:721
mrpt::math::CMatrixColumnAccessor::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:536
mrpt::math::CConstMatrixColumnAccessorExtended::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:724
mrpt::math::CConstMatrixRowAccessor
A vector-like wrapper for a const Matrix for accessing the elements of a given row with a [] operator...
Definition: matrix_adaptors.h:371
mrpt::math::CMatrixRowAccessorExtended::begin
const_iterator begin() const
Definition: matrix_adaptors.h:333
mrpt::math::CConstMatrixRowAccessor::operator[]
value_type operator[](size_t i) const
Definition: matrix_adaptors.h:386
mrpt::math::CConstMatrixColumnAccessor::m_colInd
size_t m_colInd
Definition: matrix_adaptors.h:639
mrpt::math::CMatrixColumnAccessor::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:531
mrpt::math::CConstMatrixRowAccessorExtended
A vector-like wrapper for a const Matrix for accessing the elements of a given row with a [] operator...
Definition: matrix_adaptors.h:428
mrpt::math::CMatrixColumnAccessorExtended::begin
const_iterator begin() const
Definition: matrix_adaptors.h:599
mrpt::math::CMatrixColumnAccessor::end
const_iterator end() const
Definition: matrix_adaptors.h:523
mrpt::math::CMatrixRowAccessor::reverse_iterator
detail::ReverseAccessorIterator< CMatrixRowAccessor< MAT >, value_type > reverse_iterator
Definition: matrix_adaptors.h:249
mrpt::math::CConstMatrixRowAccessorExtended::howMany
size_t howMany
Definition: matrix_adaptors.h:435
mrpt::math::CConstMatrixColumnAccessorExtended::begin
const_iterator begin() const
Definition: matrix_adaptors.h:722
mrpt::math::detail::ReverseAccessorIterator::operator++
ReverseAccessorIterator< A, T > operator++(int)
Definition: matrix_adaptors.h:158
mrpt::math::CConstMatrixRowAccessor::size
size_t size() const
Definition: matrix_adaptors.h:407
mrpt::math::CConstMatrixColumnAccessor::CConstMatrixColumnAccessor
CConstMatrixColumnAccessor(const MAT &mat, size_t colIdx)
Definition: matrix_adaptors.h:644
mrpt::math::CMatrixColumnAccessorExtended::rbegin
reverse_iterator rbegin()
Definition: matrix_adaptors.h:602
mrpt::math::CMatrixRowAccessorExtended::CMatrixRowAccessorExtended
CMatrixRowAccessorExtended()
Definition: matrix_adaptors.h:315
mrpt::math::CConstMatrixColumnAccessor::end
const_iterator end() const
Definition: matrix_adaptors.h:659
row
GLenum GLenum GLvoid * row
Definition: glext.h:3576
mrpt::math::CConstMatrixRowAccessorExtended::CConstMatrixRowAccessorExtended
CConstMatrixRowAccessorExtended(const MAT &mat, size_t row, size_t offset, size_t space)
Definition: matrix_adaptors.h:440
mrpt::math::detail::AccessorIterator::pointer
T * pointer
Definition: matrix_adaptors.h:69
mrpt::math::CMatrixColumnAccessorExtended::begin
iterator begin()
Definition: matrix_adaptors.h:598
mrpt::math::CMatrixColumnAccessorExtended::m_mat
MAT * m_mat
Definition: matrix_adaptors.h:562
mrpt::math::CConstMatrixRowAccessor::CConstMatrixRowAccessor
CConstMatrixRowAccessor(const MAT &mat, size_t row)
Definition: matrix_adaptors.h:380
mrpt::math::CConstMatrixRowAccessorExtended::const_reverse_iterator
detail::ReverseAccessorIterator< const CConstMatrixRowAccessorExtended< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:458
mrpt::math::CMatrixRowAccessorExtended::end
iterator end()
Definition: matrix_adaptors.h:334
mrpt::math::CMatrixRowAccessor::CMatrixRowAccessor
CMatrixRowAccessor(MAT &mat, size_t rowIdx)
Definition: matrix_adaptors.h:230
mrpt::math::CConstMatrixRowAccessorExtended::m_mat
const MAT * m_mat
Definition: matrix_adaptors.h:431
mrpt::math::CConstMatrixRowAccessorExtended::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:461
mrpt::math::CMatrixRowAccessorExtended::operator[]
value_type operator[](size_t i) const
Definition: matrix_adaptors.h:320
mrpt::math::CConstMatrixColumnAccessor
A vector-like wrapper for a const Matrix for accessing the elements of a given column with a [] opera...
Definition: matrix_adaptors.h:635
mrpt::math::CConstMatrixColumnAccessorExtended::const_iterator
detail::AccessorIterator< const CConstMatrixColumnAccessorExtended< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:719
mrpt::math::CConstMatrixColumnAccessor::const_reverse_iterator
detail::ReverseAccessorIterator< const CConstMatrixColumnAccessor< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:657
iterator
Scalar * iterator
Definition: eigen_plugins.h:26
mrpt::math::detail::ReverseAccessorIterator::operator++
ReverseAccessorIterator< A, T > & operator++()
Definition: matrix_adaptors.h:153
mrpt::math::CMatrixColumnAccessorExtended::operator[]
value_type operator[](size_t i) const
Definition: matrix_adaptors.h:586
mrpt::math::detail::AccessorIterator::operator++
AccessorIterator< A, T > & operator++()
Definition: matrix_adaptors.h:74
mrpt::math::CMatrixRowAccessor::begin
iterator begin()
Definition: matrix_adaptors.h:252
mrpt::math::CMatrixRowAccessorExtended::operator[]
value_type & operator[](size_t i)
Definition: matrix_adaptors.h:316
mrpt::math::CConstMatrixRowAccessor::begin
const_iterator begin() const
Definition: matrix_adaptors.h:394
mrpt::math::CMatrixRowAccessor::rend
reverse_iterator rend()
Definition: matrix_adaptors.h:267
mrpt::math::CMatrixRowAccessor::rbegin
reverse_iterator rbegin()
Definition: matrix_adaptors.h:259
mrpt::math::CMatrixColumnAccessorExtended::rbegin
const_reverse_iterator rbegin() const
Definition: matrix_adaptors.h:606
mrpt::math::getRowAccessor
CMatrixRowAccessor< MAT > getRowAccessor(MAT &m, size_t rowIdx)
Definition: matrix_adaptors.h:280
mrpt::math::detail::AccessorIterator::pos
int pos
Definition: matrix_adaptors.h:62
mrpt::math::CMatrixRowAccessor::operator[]
value_type operator[](const size_t i) const
Definition: matrix_adaptors.h:240
mrpt::math::CMatrixColumnAccessorExtended::resize
void resize(size_t N)
Definition: matrix_adaptors.h:616
mrpt::math::detail::AccessorIterator::operator--
AccessorIterator< A, T > operator--(int)
Definition: matrix_adaptors.h:90
mrpt::math::CConstMatrixRowAccessorExtended::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:465
mrpt::math::CMatrixColumnAccessorExtended::const_iterator
detail::AccessorIterator< const CMatrixColumnAccessorExtended< MAT >, const value_type > const_iterator
Definition: matrix_adaptors.h:593
mrpt::math::CMatrixColumnAccessor::const_reverse_iterator
detail::ReverseAccessorIterator< const CMatrixColumnAccessor< MAT >, const value_type > const_reverse_iterator
Definition: matrix_adaptors.h:519
mrpt::math::detail::AccessorIterator::iterator_category
std::random_access_iterator_tag iterator_category
Definition: matrix_adaptors.h:66
mrpt::math::detail::ReverseAccessorIterator::base
A * base
Definition: matrix_adaptors.h:140
mrpt::math::CMatrixRowAccessor::begin
const_iterator begin() const
Definition: matrix_adaptors.h:253
mrpt::math::CMatrixRowAccessorExtended::m_colOffset
size_t m_colOffset
Definition: matrix_adaptors.h:298
mrpt::math::detail::AccessorIterator::operator-
AccessorIterator< A, T > operator-(int off) const
Definition: matrix_adaptors.h:112
mrpt::math::CMatrixColumnAccessor::m_mat
MAT * m_mat
Definition: matrix_adaptors.h:492
mrpt::math::detail::ReverseAccessorIterator::pointer
T * pointer
Definition: matrix_adaptors.h:148
mrpt::math::CMatrixRowAccessorExtended::rend
const_reverse_iterator rend() const
Definition: matrix_adaptors.h:345
mrpt::math::CMatrixColumnAccessorExtended::end
const_iterator end() const
Definition: matrix_adaptors.h:601
mrpt::math::CConstMatrixColumnAccessorExtended::CConstMatrixColumnAccessorExtended
CConstMatrixColumnAccessorExtended(const MAT &mat, size_t col, size_t offset, size_t space)
Definition: matrix_adaptors.h:703



Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST