Lagrange
Loading...
Searching...
No Matches
ArrayBase Class Referenceabstract
Inheritance diagram for ArrayBase:
EigenArray< EigenType > EigenArray< _EigenType >

Public Types

using Index = Eigen::Index
 
using IndexFunction = std::function<Index(Index)>
 
using WeightedIndexFunction
 

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>
Scalardata ()
 
template<typename Scalar>
const Scalardata () 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.
 
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.
 
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 Typedef Documentation

◆ WeightedIndexFunction

using WeightedIndexFunction
Initial value:
std::function<void(Index, std::vector<std::pair<Index, double>>&)>

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 >, EigenArray< EigenType >, and EigenArray< EigenType >.

◆ 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 >, EigenArray< EigenType >, and EigenArray< EigenType >.


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