template<typename AL, typename AR = AL>
class molpro::linalg::array::ArrayHandlerIterable< AL, AR >
Array handler for two containers both of which can be iterated through using begin() and end() member functions, and have a copy constructor.
|
| ArrayHandlerIterable ()=default |
|
| ArrayHandlerIterable (const ArrayHandlerIterable< AL, AR > &)=default |
|
AL | copy (const AR &source) override |
|
void | copy (AL &x, const AR &y) override |
|
void | scal (value_type alpha, AL &x) override |
|
void | fill (value_type alpha, AL &x) override |
|
void | axpy (value_type alpha, const AR &x, AL &y) override |
|
value_type | dot (const AL &x, const AR &y) override |
|
void | gemm_outer (const Matrix< value_type > alphas, const CVecRef< AR > &xx, const VecRef< AL > &yy) override |
|
Matrix< value_type > | gemm_inner (const CVecRef< AL > &xx, const CVecRef< AR > &yy) override |
|
std::map< size_t, value_type_abs > | select_max_dot (size_t n, const AL &x, const AR &y) override |
|
std::map< size_t, value_type > | select (size_t n, const AL &x, bool max=false, bool ignore_sign=false) override |
| Select n indices with largest (or smallest) actual (or absolute) value. More...
|
|
ProxyHandle | lazy_handle () override |
| Returns a lazy handle. Most implementations simply need to call the overload: return lazy_handle(*this);. More...
|
|
Public Member Functions inherited from molpro::linalg::array::ArrayHandler< AL, AL > |
virtual AL | copy (const AL &source)=0 |
|
virtual void | copy (AL &x, const AL &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 AL &x, AL &y)=0 |
|
virtual value_type | dot (const AL &x, const AL &y)=0 |
|
virtual void | gemm_outer (const Matrix< value_type > alphas, const CVecRef< AL > &xx, const VecRef< AL > &yy)=0 |
|
virtual Matrix< value_type > | gemm_inner (const CVecRef< AL > &xx, const CVecRef< AL > &yy)=0 |
|
virtual std::map< size_t, value_type_abs > | select_max_dot (size_t n, const AL &x, const AL &y)=0 |
| Select n indices with largest by absolute value contributions to the dot product. More...
|
|
virtual std::map< size_t, value_type > | select (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...
|
|
|
template<typename T , typename S , typename std::enable_if_t< util::is_array_v< T >, std::nullptr_t > = nullptr> |
T | copyAny (const S &source) |
|
template<typename T , typename S , typename std::enable_if_t<!util::is_array_v< T >, int > = 0> |
T | copyAny (const S &source) |
|
Protected Member Functions inherited from molpro::linalg::array::ArrayHandler< AL, AL > |
| 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 > > ®, const std::vector< value_type > &alphas, const std::vector< std::reference_wrapper< const AL > > &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 > > ®, const std::vector< std::reference_wrapper< const AL > > &xx, const std::vector< std::reference_wrapper< const AL > > &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, AL > &handler) |
|