|
| | ConcatRangeOp (backend_t, Op1T &&op1t, Op2T &&op2t) |
| Backend | backend () const |
| const auto & | op1t () const |
| const auto & | op2t () 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 Op1TWorkspace, class Op2TWorkspace> |
| auto | make_workspace (Op1TWorkspace &&op1t_workspace, Op2TWorkspace &&op2t_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 Op1T, class Op2T>
class mundy::ConcatRangeOp< Backend, Op1T, Op2T >
op1T and op2T share a domain but produce independent ranges: apply(v) = [op1T(v); op2T(v)]. x/y must be Kokkos::View-backed (apply splits y via Kokkos::subview).