Lagrange
ArrayBase Class Referenceabstract

Inherited by EigenArray< _EigenType >, EigenArrayRef< _EigenType, false >, EigenArrayRef< _EigenType, true >, RawArray< _Scalar, _Rows, _Cols, _Options, false >, and RawArray< _Scalar, _Rows, _Cols, _Options, true >.

Public Types

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

 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
 

Protected Member Functions

template<typename TargetType >
bool is_compatible (bool ignore_storage_order=false) const
 

Static Protected Member Functions

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

const ScalarEnum m_scalar_type
 

Member Function Documentation

◆ row_slice() [1/2]

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

Using index function for row mapping.

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

Implemented in EigenArray< _EigenType >, EigenArrayRef< _EigenType, false >, EigenArrayRef< _EigenType, true >, RawArray< _Scalar, _Rows, _Cols, _Options, false >, and RawArray< _Scalar, _Rows, _Cols, _Options, true >.

◆ row_slice() [2/2]

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

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).

Implemented in EigenArray< _EigenType >, EigenArrayRef< _EigenType, false >, EigenArrayRef< _EigenType, true >, RawArray< _Scalar, _Rows, _Cols, _Options, false >, and RawArray< _Scalar, _Rows, _Cols, _Options, true >.


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