rollaxis function

VARP rollaxis(
  1. VARP a,
  2. int axis, {
  3. int start = 0,
})

Implementation

VARP rollaxis(VARP a, int axis, {int start = 0}) {
  final ndim = a.ndim;
  MnnAssert(ndim != null, "a must have a shape");
  final axis_ = _normalAxis(axis, ndim!);
  var start_ = _normalAxis(start, ndim);
  MnnAssert(start_ >= 0 && start_ < ndim + 1, "start must be in the range [0, ${ndim + 1})");
  if (axis_ < start_) {
    start_ -= 1;
  }
  if (axis_ == start_) {
    return a;
  }

  final axes = List.generate(ndim, (index) => index);
  axes.remove(axis_);
  axes.insert(start_, axis_);
  return F.transpose(a, axes);
}