26 #ifndef TILEDARRAY_TILE_OP_NOOP_H__INCLUDED 27 #define TILEDARRAY_TILE_OP_NOOP_H__INCLUDED 29 #include "../tile_interface/permute.h" 30 #include "../tile_interface/clone.h" 43 template <
typename Result,
typename Arg,
bool Consumable>
67 template <bool C, typename std::enable_if<!C>::type* =
nullptr>
73 template <bool C, typename std::enable_if<C>::type* =
nullptr>
86 return eval(arg, perm);
96 return Noop_::template eval<is_consumable>(arg);
105 std::is_same<result_type, argument_type>::value;
106 return Noop_::template eval<can_consume>(arg);
114 #endif // TILEDARRAY_TILE_OP_NOOP_H__INCLUDED void permute(InputOp &&input_op, OutputOp &&output_op, Result &result, const Permutation &perm, const Arg0 &arg0, const Args &... args)
Construct a permuted tensor copy.
result_type operator()(const argument_type &arg, const Permutation &perm) const
Permute operator.
Result result_type
The result tile type.
DistArray< Tile, Policy > clone(const DistArray< Tile, Policy > &arg)
Create a deep copy of an array.
Noop< Result, Arg, Consumable > Noop_
This object type.
Arg argument_type
The argument type.
static constexpr bool is_consumable
Consumable tile type trait.
result_type operator()(A &&arg) const
Clone operator.
Permutation of a sequence of objects indexed by base-0 indices.
result_type consume(argument_type &arg) const
Pass-through operations (shallow copy)
Create a deep copy of a tile.