|
| | ConcatDomainOp (backend_t, Op1 &&op1, Op2 &&op2) |
| Backend | backend () const |
| const auto & | op1 () const |
| const auto & | op2 () 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 Y2Vector, class Op1Workspace, class Op2Workspace> |
| auto | make_workspace (Y2Vector &&y2, Op1Workspace &&op1_workspace, Op2Workspace &&op2_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 |
template<class Backend, class Op1, class Op2>
class mundy::ConcatDomainOp< Backend, Op1, Op2 >
op1 and op2 share a range but have independent domains: apply([x1; x2]) = op1(x1) + op2(x2). x/y must be Kokkos::View-backed (apply splits x via Kokkos::subview).