MRPT  1.9.9
mrpt::math::CMatrix Class Reference

Detailed Description

This class is a "CSerializable" wrapper for "CMatrixFloat".

Note
For a complete introduction to Matrices and vectors in MRPT, see: https://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes

Definition at line 22 of file CMatrix.h.

#include <mrpt/math/CMatrix.h>

Inheritance diagram for mrpt::math::CMatrix:

Public Types

using Base = Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::AutoAlign|Eigen::RowMajor >
 
using mrpt_autotype = CMatrixTemplateNumeric< T >
 

Public Member Functions

voidoperator new (size_t size)
 
voidoperator new[] (size_t size)
 
void operator delete (void *ptr) noexcept
 
void operator delete[] (void *ptr) noexcept
 
void operator delete (void *memory, void *ptr) noexcept
 
voidoperator new (size_t size, const std::nothrow_t &) noexcept
 
void operator delete (void *ptr, const std::nothrow_t &) noexcept
 
 CMatrix ()
 Constructor. More...
 
 CMatrix (size_t row, size_t col)
 Constructor. More...
 
 CMatrix (const CMatrixFloat &m)
 Copy constructor. More...
 
 CMatrix (const CMatrixTemplateNumeric< double > &m)
 Copy constructor. More...
 
template<class OTHERMAT >
CMatrixoperator= (const OTHERMAT &m)
 Assignment operator for float matrixes. More...
 
template<typename OtherDerived >
CMatrixoperator= (const Eigen::MatrixBase< OtherDerived > &other)
 
template<typename OtherDerived >
 CMatrix (const Eigen::MatrixBase< OtherDerived > &other)
 
virtual mxArraywriteToMatlab () const
 Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More...
 
 MRPT_EIGEN_DERIVED_CLASS_CTOR_OPERATOR_EQUAL (CMatrixTemplateNumeric) template< class R > inline CMatrixTemplateNumeric< T > &operator
 Assignment operator of other types. More...
 
template<typename Derived >
bool operator== (const Eigen::MatrixBase< Derived > &m2) const
 == comparison of two matrices; it differs from default Eigen operator in that returns false if matrices are of different sizes instead of raising an assert. More...
 
template<typename Derived >
bool operator!= (const Eigen::MatrixBase< Derived > &m2) const
 != comparison of two matrices; it differs from default Eigen operator in that returns true if matrices are of different sizes instead of raising an assert. More...
 
RTTI classes and functions for polymorphic hierarchies
mrpt::rtti::CObject::Ptr duplicateGetSmartPtr () const
 Makes a deep copy of the object and returns a smart pointer to it. More...
 

Static Public Member Functions

static voidoperator new (size_t size, void *ptr)
 

Protected Member Functions

CSerializable virtual methods
uint8_t serializeGetVersion () const override
 Must return the current versioning number of the object. More...
 
void serializeTo (mrpt::serialization::CArchive &out) const override
 Serialize CSerializable Object to CSchemeArchiveBase derived object. More...
 
void serializeFrom (mrpt::serialization::CArchive &in, uint8_t serial_version) override
 Serialize CSchemeArchiveBase derived object to CSerializable Object. More...
 
CSerializable virtual methods
virtual void serializeTo (CSchemeArchiveBase &out) const
 Virtual method for writing (serializing) to an abstract schema based archive. More...
 
virtual void serializeFrom (CSchemeArchiveBase &in)
 Virtual method for reading (deserializing) from an abstract schema based archive. More...
 

RTTI stuff

using Ptr = std::shared_ptr< CMatrix >
 
using ConstPtr = std::shared_ptr< const CMatrix >
 
using UniquePtr = std::unique_ptr< CMatrix >
 
using ConstUniquePtr = std::unique_ptr< const CMatrix >
 
static mrpt::rtti::CLASSINIT _init_CMatrix
 
static const mrpt::rtti::TRuntimeClassId runtimeClassId
 
static constexpr const char * className = "CMatrix"
 
static const mrpt::rtti::TRuntimeClassId_GetBaseClass ()
 
static constexpr auto getClassName ()
 
static const mrpt::rtti::TRuntimeClassIdGetRuntimeClassIdStatic ()
 
static mrpt::rtti::CObjectCreateObject ()
 
template<typename... Args>
static Ptr Create (Args &&... args)
 
template<typename Alloc , typename... Args>
static Ptr CreateAlloc (const Alloc &alloc, Args &&... args)
 
template<typename... Args>
static UniquePtr CreateUnique (Args &&... args)
 
virtual const mrpt::rtti::TRuntimeClassIdGetRuntimeClass () const override
 Returns information about the class of an object in runtime. More...
 
virtual mrpt::rtti::CObjectclone () const override
 Returns a deep copy (clone) of the object, indepently of its class. More...
 

Member Typedef Documentation

◆ Base

template<class T>
using mrpt::math::CMatrixTemplateNumeric< T >::Base = Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::AutoAlign | Eigen::RowMajor>
inherited

Definition at line 46 of file CMatrixTemplateNumeric.h.

◆ ConstPtr

Definition at line 24 of file CMatrix.h.

◆ ConstUniquePtr

using mrpt::math::CMatrix::ConstUniquePtr = std::unique_ptr<const CMatrix >

Definition at line 24 of file CMatrix.h.

◆ mrpt_autotype

template<class T>
using mrpt::math::CMatrixTemplateNumeric< T >::mrpt_autotype = CMatrixTemplateNumeric<T>
inherited

Definition at line 47 of file CMatrixTemplateNumeric.h.

◆ Ptr

A type for the associated smart pointer

Definition at line 24 of file CMatrix.h.

◆ UniquePtr

using mrpt::math::CMatrix::UniquePtr = std::unique_ptr< CMatrix >

Definition at line 24 of file CMatrix.h.

Constructor & Destructor Documentation

◆ CMatrix() [1/5]

mrpt::math::CMatrix::CMatrix ( )
inline

Constructor.

Definition at line 29 of file CMatrix.h.

◆ CMatrix() [2/5]

mrpt::math::CMatrix::CMatrix ( size_t  row,
size_t  col 
)
inline

Constructor.

Definition at line 31 of file CMatrix.h.

◆ CMatrix() [3/5]

mrpt::math::CMatrix::CMatrix ( const CMatrixFloat m)
inline

Copy constructor.

Definition at line 34 of file CMatrix.h.

◆ CMatrix() [4/5]

mrpt::math::CMatrix::CMatrix ( const CMatrixTemplateNumeric< double > &  m)
inline

Copy constructor.

Definition at line 37 of file CMatrix.h.

◆ CMatrix() [5/5]

template<typename OtherDerived >
mrpt::math::CMatrix::CMatrix ( const Eigen::MatrixBase< OtherDerived > &  other)
inline

Constructor from any other Eigen class

Definition at line 61 of file CMatrix.h.

Member Function Documentation

◆ _GetBaseClass()

static const mrpt::rtti::TRuntimeClassId* mrpt::math::CMatrix::_GetBaseClass ( )
staticprotected

◆ clone()

virtual mrpt::rtti::CObject* mrpt::math::CMatrix::clone ( ) const
overridevirtual

Returns a deep copy (clone) of the object, indepently of its class.

Implements mrpt::rtti::CObject.

◆ Create()

template<typename... Args>
static Ptr mrpt::math::CMatrix::Create ( Args &&...  args)
inlinestatic

Definition at line 24 of file CMatrix.h.

◆ CreateAlloc()

template<typename Alloc , typename... Args>
static Ptr mrpt::math::CMatrix::CreateAlloc ( const Alloc &  alloc,
Args &&...  args 
)
inlinestatic

Definition at line 24 of file CMatrix.h.

◆ CreateObject()

static mrpt::rtti::CObject* mrpt::math::CMatrix::CreateObject ( )
static

◆ CreateUnique()

template<typename... Args>
static UniquePtr mrpt::math::CMatrix::CreateUnique ( Args &&...  args)
inlinestatic

Definition at line 24 of file CMatrix.h.

◆ duplicateGetSmartPtr()

mrpt::rtti::CObject::Ptr CObject::duplicateGetSmartPtr ( ) const
inlineinherited

Makes a deep copy of the object and returns a smart pointer to it.

Definition at line 170 of file CObject.h.

References mrpt::rtti::CObject::clone().

Referenced by mrpt::obs::CRawlog::addActions(), and mrpt::obs::CRawlog::addObservations().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getClassName()

static constexpr auto mrpt::math::CMatrix::getClassName ( )
inlinestatic

Definition at line 24 of file CMatrix.h.

◆ GetRuntimeClass()

virtual const mrpt::rtti::TRuntimeClassId* mrpt::math::CMatrix::GetRuntimeClass ( ) const
overridevirtual

Returns information about the class of an object in runtime.

Reimplemented from mrpt::serialization::CSerializable.

◆ GetRuntimeClassIdStatic()

static const mrpt::rtti::TRuntimeClassId& mrpt::math::CMatrix::GetRuntimeClassIdStatic ( )
static

◆ MRPT_EIGEN_DERIVED_CLASS_CTOR_OPERATOR_EQUAL()

template<class T>
mrpt::math::CMatrixTemplateNumeric< T >::MRPT_EIGEN_DERIVED_CLASS_CTOR_OPERATOR_EQUAL ( CMatrixTemplateNumeric< T >  ) &
inherited

Assignment operator of other types.

◆ operator delete() [1/3]

void mrpt::math::CMatrix::operator delete ( void ptr,
const std::nothrow_t &   
)
inlinenoexcept

Definition at line 24 of file CMatrix.h.

◆ operator delete() [2/3]

void mrpt::math::CMatrix::operator delete ( void ptr)
inlinenoexcept

Definition at line 24 of file CMatrix.h.

◆ operator delete() [3/3]

void mrpt::math::CMatrix::operator delete ( void memory,
void ptr 
)
inlinenoexcept

Definition at line 24 of file CMatrix.h.

◆ operator delete[]()

void mrpt::math::CMatrix::operator delete[] ( void ptr)
inlinenoexcept

Definition at line 24 of file CMatrix.h.

◆ operator new() [1/3]

void* mrpt::math::CMatrix::operator new ( size_t  size,
const std::nothrow_t &   
)
inlinenoexcept

Definition at line 24 of file CMatrix.h.

◆ operator new() [2/3]

void* mrpt::math::CMatrix::operator new ( size_t  size)
inline

Definition at line 24 of file CMatrix.h.

◆ operator new() [3/3]

static void* mrpt::math::CMatrix::operator new ( size_t  size,
void ptr 
)
inlinestatic

Definition at line 24 of file CMatrix.h.

◆ operator new[]()

void* mrpt::math::CMatrix::operator new[] ( size_t  size)
inline

Definition at line 24 of file CMatrix.h.

◆ operator!=()

template<class T>
template<typename Derived >
bool mrpt::math::CMatrixTemplateNumeric< T >::operator!= ( const Eigen::MatrixBase< Derived > &  m2) const
inlineinherited

!= comparison of two matrices; it differs from default Eigen operator in that returns true if matrices are of different sizes instead of raising an assert.

Definition at line 127 of file CMatrixTemplateNumeric.h.

◆ operator=() [1/2]

template<class OTHERMAT >
CMatrix& mrpt::math::CMatrix::operator= ( const OTHERMAT &  m)
inline

Assignment operator for float matrixes.

Definition at line 46 of file CMatrix.h.

◆ operator=() [2/2]

template<typename OtherDerived >
CMatrix& mrpt::math::CMatrix::operator= ( const Eigen::MatrixBase< OtherDerived > &  other)
inline

Assignment operator from any other Eigen class

Definition at line 54 of file CMatrix.h.

◆ operator==()

template<class T>
template<typename Derived >
bool mrpt::math::CMatrixTemplateNumeric< T >::operator== ( const Eigen::MatrixBase< Derived > &  m2) const
inlineinherited

== comparison of two matrices; it differs from default Eigen operator in that returns false if matrices are of different sizes instead of raising an assert.

Definition at line 118 of file CMatrixTemplateNumeric.h.

◆ serializeFrom() [1/2]

void CMatrix::serializeFrom ( mrpt::serialization::CArchive in,
uint8_t  serial_version 
)
overrideprotectedvirtual

Serialize CSchemeArchiveBase derived object to CSerializable Object.

Implements mrpt::serialization::CSerializable.

Definition at line 35 of file CMatrix.cpp.

References MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION, and setSize().

Here is the call graph for this function:

◆ serializeFrom() [2/2]

virtual void mrpt::serialization::CSerializable::serializeFrom ( CSchemeArchiveBase in)
inlineprotectedvirtualinherited

Virtual method for reading (deserializing) from an abstract schema based archive.

Definition at line 74 of file CSerializable.h.

References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.

Here is the call graph for this function:

◆ serializeGetVersion()

uint8_t CMatrix::serializeGetVersion ( ) const
overrideprotectedvirtual

Must return the current versioning number of the object.

Start in zero for new classes, and increments each time there is a change in the stored format.

Implements mrpt::serialization::CSerializable.

Definition at line 24 of file CMatrix.cpp.

◆ serializeTo() [1/2]

void CMatrix::serializeTo ( mrpt::serialization::CArchive out) const
overrideprotectedvirtual

Serialize CSerializable Object to CSchemeArchiveBase derived object.

Implements mrpt::serialization::CSerializable.

Definition at line 25 of file CMatrix.cpp.

References mrpt::serialization::CArchive::WriteBufferFixEndianness().

Here is the call graph for this function:

◆ serializeTo() [2/2]

virtual void mrpt::serialization::CSerializable::serializeTo ( CSchemeArchiveBase out) const
inlineprotectedvirtualinherited

Virtual method for writing (serializing) to an abstract schema based archive.

Definition at line 64 of file CSerializable.h.

References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.

Here is the call graph for this function:

◆ writeToMatlab()

virtual mxArray* mrpt::serialization::CSerializable::writeToMatlab ( ) const
inlinevirtualinherited

Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class.

Returns
A new mxArray (caller is responsible of memory freeing) or nullptr is class does not support conversion to MATLAB.

Definition at line 90 of file CSerializable.h.

Member Data Documentation

◆ _init_CMatrix

mrpt::rtti::CLASSINIT mrpt::math::CMatrix::_init_CMatrix
staticprotected

Definition at line 24 of file CMatrix.h.

◆ className

constexpr const char* mrpt::math::CMatrix::className = "CMatrix"
static

Definition at line 24 of file CMatrix.h.

◆ runtimeClassId

const mrpt::rtti::TRuntimeClassId mrpt::math::CMatrix::runtimeClassId
staticprotected

Definition at line 24 of file CMatrix.h.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 58f856185 Mon May 20 11:43:57 2019 +0200 at lun may 20 11:50:17 CEST 2019