3#ifndef poplar_TensorRearranger_hpp
4#define poplar_TensorRearranger_hpp
6#include <poplar/Interval.hpp>
7#include <poplar/Tensor.hpp>
11class TensorRearranger;
40 std::vector<Interval>
rearrange(ArrayRef<Interval> is)
const;
52 core::TensorRearranger &getImpl()
const {
return *impl; }
53 std::unique_ptr<core::TensorRearranger> *getPImpl() {
return &impl; }
54 bool valid()
const {
return impl.get() !=
nullptr; }
57 std::unique_ptr<core::TensorRearranger> impl;
TensorRearranger can be used to re-order the view on a tensor and to undo that re-ordering.
Definition: TensorRearranger.hpp:19
Tensor undoRearrangement(const Tensor &t) const
Undo the rearrangement done with the rearrange() method.
std::vector< Interval > undoRearrangement(ArrayRef< Interval > is) const
Undo the rearrangement of intervals.
std::vector< Interval > rearrange(ArrayRef< Interval > is) const
Rearrange intervals.
Tensor rearrange(const Tensor &t) const
Rearrange a tensor.
A reference to a subset of tensor elements.
Definition: Tensor.hpp:38
Poplar classes and functions.
Definition: ArrayRef.hpp:14