Fork me on GitHub

src/arraymancer/tensor/private/p_shapeshifting

  Source Edit

Procs

proc broadcast2Impl[T](a, b: AnyTensor[T]; result: var tuple[a, b: AnyTensor[T]]) {.
    noSideEffect.}
  Source Edit
proc broadcastImpl(t: var AnyTensor; shape: varargs[int] | Metadata) {.
    noSideEffect.}
  Source Edit
proc contiguousImpl[T](t: Tensor[T]; layout: OrderType; result: var Tensor[T])
  Source Edit
proc exch_dim[T](t: Tensor[T]; dim1, dim2: int): Tensor[T] {.noinit,
    noSideEffect.}
  Source Edit
proc infer_shape(t: Tensor; new_shape: varargs[int]): seq[int] {.noinit.}
Replace the single -1 value on new_shape with the value that makes the size the same as that of the input tensor   Source Edit
proc permuteImpl[T](result: var Tensor[T]; dims: varargs[int]) {.noSideEffect.}
  Source Edit
proc reshape_no_copy(t: AnyTensor;
                     new_shape: varargs[int] | Metadata | seq[int];
                     result: var AnyTensor; layout: OrderType) {.noSideEffect.}
  Source Edit
proc reshape_with_copy[T](t: Tensor[T];
                          new_shape: varargs[int] | Metadata | seq[int];
                          result: var Tensor[T])
  Source Edit
proc reshapeImpl(t: AnyTensor; new_shape: varargs[int] | Metadata | seq[int];
                 result: var AnyTensor; infer: static bool)
  Source Edit
proc squeezeImpl(t: var AnyTensor) {.noSideEffect.}
  Source Edit
proc squeezeImpl(t: var AnyTensor; axis: int) {.noSideEffect.}
  Source Edit
proc unsqueezeImpl(t: var AnyTensor; axis: int) {.noSideEffect.}
  Source Edit
Arraymancer Technical reference Tutorial Spellbook (How-To's) Under the hood