iterative-solver 0.0
molpro::linalg::array::ArrayHandlerDDiskSparse< AL, AR, bool > Class Template Reference

#include <ArrayHandlerDDiskSparse.h>

Inheritance diagram for molpro::linalg::array::ArrayHandlerDDiskSparse< AL, AR, bool >:
Collaboration diagram for molpro::linalg::array::ArrayHandlerDDiskSparse< AL, AR, bool >:

Additional Inherited Members

- Public Types inherited from molpro::linalg::array::ArrayHandler< AL, AR >
using value_type_L = typename array::mapped_or_value_type_t< AL >
 
using value_type_R = typename array::mapped_or_value_type_t< AR >
 
using value_type = decltype(value_type_L{} *value_type_R{})
 
using value_type_abs = decltype(check_abs< value_type >())
 
- Public Member Functions inherited from molpro::linalg::array::ArrayHandler< AL, AR >
virtual AL copy (const AR &source)=0
 
virtual void copy (AL &x, const AR &y)=0
 Copy content of y into x. More...
 
virtual void scal (value_type alpha, AL &x)=0
 
virtual void fill (value_type alpha, AL &x)=0
 
virtual void axpy (value_type alpha, const AR &x, AL &y)=0
 
virtual value_type dot (const AL &x, const AR &y)=0
 
virtual void gemm_outer (const Matrix< value_type > alphas, const CVecRef< AR > &xx, const VecRef< AL > &yy)=0
 
virtual Matrix< value_typegemm_inner (const CVecRef< AL > &xx, const CVecRef< AR > &yy)=0
 
virtual std::map< size_t, value_type_absselect_max_dot (size_t n, const AL &x, const AR &y)=0
 Select n indices with largest by absolute value contributions to the dot product. More...
 
virtual std::map< size_t, value_typeselect (size_t n, const AL &x, bool max=false, bool ignore_sign=false)=0
 Select n indices with largest (or smallest) actual (or absolute) value. More...
 
const Counter & counter () const
 
std::string counter_to_string (std::string L, std::string R)
 
void clear_counter ()
 
virtual ~ArrayHandler ()
 Destroys ArrayHandler instance and invalidates any LazyHandler it created. Invalidated handler will not evaluate. More...
 
virtual ProxyHandle lazy_handle ()=0
 Returns a lazy handle. Most implementations simply need to call the overload: return lazy_handle(*this);. More...
 
- Protected Member Functions inherited from molpro::linalg::array::ArrayHandler< AL, AR >
 ArrayHandler ()
 
 ArrayHandler (const ArrayHandler &)=default
 
virtual void error (const std::string &message)
 Throws an error. More...
 
virtual void fused_axpy (const std::vector< std::tuple< size_t, size_t, size_t > > &reg, const std::vector< value_type > &alphas, const std::vector< std::reference_wrapper< const AR > > &xx, std::vector< std::reference_wrapper< AL > > &yy)
 Default implementation of fused_axpy without any simplification. More...
 
virtual void fused_dot (const std::vector< std::tuple< size_t, size_t, size_t > > &reg, const std::vector< std::reference_wrapper< const AL > > &xx, const std::vector< std::reference_wrapper< const AR > > &yy, std::vector< std::reference_wrapper< value_type > > &out)
 Default implementation of fused_dot without any simplification. More...
 
void save_handle (const std::shared_ptr< LazyHandle > &handle)
 Save weak ptr to a lazy handle. More...
 
ProxyHandle lazy_handle (ArrayHandler< AL, AR > &handler)
 
- Protected Attributes inherited from molpro::linalg::array::ArrayHandler< AL, AR >
std::unique_ptr< Counter > m_counter
 
std::vector< std::weak_ptr< LazyHandle > > m_lazy_handles
 keeps track of all created lazy handles More...