|
Mundy: Multibody Nonlocal Dynamics Version of the Day
|
The scalar multiple Op := alpha * op. More...
#include <linear_ops.hpp>
Classes | |
| struct | Workspace |
Public Types | |
| using | backend_t = Backend |
| using | op_storage_t = ::mundy::storage<Op> |
Public Member Functions | |
| ScaledOp (backend_t, Scalar alpha, Op &&op) | |
| Backend | backend () const |
| Scalar | alpha () const |
| const auto & | op () const |
| size_t | domain_size () const |
| size_t | range_size () const |
| auto | make_domain_vector () const |
| auto | make_range_vector () const |
| auto | make_workspace (bool committed=false) const |
| template<class OpWorkspace> | |
| auto | make_workspace (OpWorkspace &&op_workspace, bool committed=false) const |
| template<class XVector, class YVector, class WorkspaceType> | |
| void | apply (const XVector &x, YVector &y, WorkspaceType &workspace) const |
| template<class XVector, class YVector> | |
| void | apply (const XVector &x, YVector &y) const |
Static Public Member Functions | |
| static constexpr size_t | static_domain_size () |
| static constexpr size_t | static_range_size () |
Uses op's own fused scaled apply where op provides one; otherwise applies op, through its workspace, and scales the result in place.
| using mundy::ScaledOp< Backend, Scalar, Op >::backend_t = Backend |
| using mundy::ScaledOp< Backend, Scalar, Op >::op_storage_t = ::mundy::storage<Op> |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |