Lagrange
EigenArray< _EigenType > Class Template Reference

This class is a thin wrapper around an Eigen matrix. More...

#include <lagrange/experimental/Array.h>

Inherits ArrayBase.

Public Types

using EigenType = _EigenType
 
using Self = EigenArray< EigenType >
 
using Index = ArrayBase::Index
 
using WeightedIndexFunction = std::function< void(Index, std::vector< std::pair< Index, double > > &)>
 
- Public Types inherited from ArrayBase
using Index = Eigen::Index
 
using IndexFunction = std::function< Index(Index)>
 
using WeightedIndexFunction = std::function< void(Index, std::vector< std::pair< Index, double > > &)>
 

Public Member Functions

template<typename T >
 EigenArray (const Eigen::MatrixBase< T > &data)
 
template<typename T >
 EigenArray (Eigen::MatrixBase< T > &&data)
 
std::any get_type_info () const override
 
EigenType & get_ref ()
 
const EigenType & get_ref () const
 
template<typename Derived >
void set (Derived &&data)
 
Index rows () const override
 
Index cols () const override
 
bool is_row_major () const override
 
void * data () override
 
const void * data () const override
 
void resize (Index r, Index c) override
 
std::unique_ptr< ArrayBaseclone () const override
 
std::unique_ptr< ArrayBaserow_slice (Index num_rows, const IndexFunction &mapping_fn) const override
 Using index function for row mapping. More...
 
std::unique_ptr< ArrayBaserow_slice (Index num_rows, const WeightedIndexFunction &mapping_fn) const override
 This is the most generic version of row_slice method. More...
 
std::string type_name () const override
 
- Public Member Functions inherited from ArrayBase
 ArrayBase (ScalarEnum type)
 
template<typename TargetType >
Eigen::Map< TargetType > view ()
 
template<typename TargetType >
Eigen::Map< const TargetType > view () const
 
virtual std::any get_type_info () const =0
 
template<typename Derived >
bool is_base_of () const
 
template<typename DerivedPtr >
auto down_cast () -> std::add_pointer_t< std::decay_t< std::remove_pointer_t< DerivedPtr > > >
 
template<typename DerivedPtr >
auto down_cast () const -> std::add_pointer_t< std::add_const_t< std::decay_t< std::remove_pointer_t< DerivedPtr > > > >
 
template<typename Derived >
void set (const Eigen::MatrixBase< Derived > &data)
 
template<typename Derived >
void set (Eigen::MatrixBase< Derived > &&data)
 
ScalarEnum get_scalar_type () const
 
template<typename TargetType >
const auto & get () const
 
template<typename TargetType >
auto & get ()
 
template<typename Scalar >
Scalar * data ()
 
template<typename Scalar >
const Scalar * data () const
 
virtual Index rows () const =0
 
virtual Index cols () const =0
 
virtual bool is_row_major () const =0
 
virtual void * data ()=0
 
virtual const void * data () const =0
 
virtual void resize (Index, Index)=0
 
virtual std::unique_ptr< ArrayBaseclone () const =0
 
template<typename T >
std::unique_ptr< ArrayBaserow_slice (const std::vector< T > &row_indices) const
 
virtual std::unique_ptr< ArrayBaserow_slice (Index num_rows, const IndexFunction &mapping_fn) const =0
 Using index function for row mapping. More...
 
virtual std::unique_ptr< ArrayBaserow_slice (Index num_rows, const WeightedIndexFunction &mapping_fn) const =0
 This is the most generic version of row_slice method. More...
 
virtual std::string type_name () const =0
 

Additional Inherited Members

- Protected Member Functions inherited from ArrayBase
template<typename TargetType >
bool is_compatible (bool ignore_storage_order=false) const
 
- Static Protected Member Functions inherited from ArrayBase
template<typename Derived >
static std::unique_ptr< ArrayBaserow_slice_impl (const Eigen::MatrixBase< Derived > &matrix, Index num_rows, const IndexFunction &mapping)
 
template<typename Derived >
static std::enable_if_t< std::is_integral< typename Derived::Scalar >::value, std::unique_ptr< ArrayBase > > row_slice_impl (const Eigen::MatrixBase< Derived > &matrix, Index num_rows, const WeightedIndexFunction &mapping)
 
template<typename Derived >
static std::enable_if_t<!std::is_integral< typename Derived::Scalar >::value, std::unique_ptr< ArrayBase > > row_slice_impl (const Eigen::MatrixBase< Derived > &matrix, Index num_rows, const WeightedIndexFunction &mapping)
 
- Protected Attributes inherited from ArrayBase
const ScalarEnum m_scalar_type
 

Detailed Description

template<typename _EigenType>
class lagrange::experimental::EigenArray< _EigenType >

This class is a thin wrapper around an Eigen matrix.

It takes ownership of the Eigen matrix.

Member Function Documentation

◆ get_type_info()

std::any get_type_info ( ) const
inlineoverridevirtual

Implements ArrayBase.

◆ rows()

Index rows ( ) const
inlineoverridevirtual

Implements ArrayBase.

◆ cols()

Index cols ( ) const
inlineoverridevirtual

Implements ArrayBase.

◆ is_row_major()

bool is_row_major ( ) const
inlineoverridevirtual

Implements ArrayBase.

◆ data() [1/2]

void * data ( )
inlineoverridevirtual

Implements ArrayBase.

◆ data() [2/2]

const void * data ( ) const
inlineoverridevirtual

Implements ArrayBase.

◆ resize()

void resize ( Index  r,
Index  c 
)
inlineoverridevirtual

Implements ArrayBase.

◆ clone()

std::unique_ptr< ArrayBase > clone ( ) const
inlineoverridevirtual

Implements ArrayBase.

◆ row_slice() [1/2]

std::unique_ptr< ArrayBase > row_slice ( Index  num_rows,
const IndexFunction &  mapping_fn 
) const
inlineoverridevirtual

Using index function for row mapping.

Parameters
mapping_fnAn index mapping function: input_row_index = mapping_fn(output_row_index)).

Implements ArrayBase.

◆ row_slice() [2/2]

std::unique_ptr< ArrayBase > row_slice ( Index  num_rows,
const WeightedIndexFunction &  mapping_fn 
) const
inlineoverridevirtual

This is the most generic version of row_slice method.

Parameters
mapping_fnA mapping function that maps each output row index to a vector of (input_row_index, weight).

Implements ArrayBase.

◆ type_name()

std::string type_name ( ) const
inlineoverridevirtual

Implements ArrayBase.


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