padSymmetric

Pads with the reflection of the slice mirrored along the edge of the slice.

  1. auto padSymmetric(Slice!(Iterator, N, kind) s, size_t[N] lengths)
    @optmath
    padSymmetric
    (
    string direction = "both"
    Iterator
    size_t N
    SliceKind kind
    )
    (
    Slice!(Iterator, N, kind) s
    ,
    size_t[N] lengths...
    )
  2. template padSymmetric(size_t[] dimensions, string[] directions)

Parameters

direction

padding direction. Direction can be one of the following values: "both", "pre", and "post".

s Slice!(Iterator, N, kind)
lengths size_t[N]

list of lengths for each dimension. Each length must be less or equal to the corresponding slice length.

Return Value

Type: auto

Examples

import mir.ndslice.allocation: slice;
import mir.ndslice.topology: iota;

auto pad = iota([3], 1)
    .padSymmetric([2])
    .slice;

assert(pad == [2, 1,  1, 2, 3,  3, 2]);
import mir.ndslice.allocation: slice;
import mir.ndslice.topology: iota;

auto pad = iota([2, 2], 1)
    .padSymmetric([2, 1])
    .slice;

assert(pad == [
    [3,  3, 4,  4],
    [1,  1, 2,  2],

    [1,  1, 2,  2],
    [3,  3, 4,  4],

    [3,  3, 4,  4],
    [1,  1, 2,  2]]);

See Also

._concatenation examples.

Meta