def fconv_slice(q, S, X, padding, strides):
    f1 = 0
    f2 = S - 1
    x1 = q * strides - padding
    x2 = x1 + f2
    if x1 < 0:
        f1 = -x1
        x1 = 0
    if x2 >= X:
        dif = x2 - X + 1
        f2 -= dif
        x2 -= dif
    return (slice(f1, f2+1), slice(x1, x2+1), f2 - f1 + 1)
dataset/ETHPy150Open NervanaSystems/neon/neon/backends/winograd4.py/fconv_slice/original