def trans_O_3x3_4x4(Mw, minimal=False, trans=False):
    if minimal:

        T0 = np.empty((3,6))
        T1 = np.empty((3,3))

        for O, I in ((T0, Mw), (T1, T0.T)):

            # t0 = rcp6 * I[1,:]
            # t1 = rcp6 * I[2,:]
            # t2 = rcp6 * (I[3,:] + I[4,:])
            # t3 = t0 + t1

            # O[0,:] = rcp4 * (I[0,:] + t2) - t3
            # O[1,:] = t1 - t0 + rcp12 * (I[3,:] - I[4,:])
            # O[2,:] = t2 - t3 + I[5,:]

            # t0 = -rcp6 * (I[1,:] + I[2,:])
            # t1 =  rcp6 * (I[3,:] + I[4,:])

            # O[0,:] = rcp4 * (I[0,:] + t1) + t0
            # O[1,:] = rcp6 * (I[2,:] - I[1,:]) + rcp12 * (I[3,:] - I[4,:])
            # O[2,:] = t0 + t1 + I[5,:]

            t0 = I[1,:] + I[2,:]
            t1 = I[3,:] + I[4,:]

            O[0,:] = I[0,:] + t0 + t1
            O[1,:] = I[2,:] + 2*(I[3,:] - I[4,:]) - I[1,:]
            O[2,:] = t0 + 4*t1 + I[5,:]

        return T1.T

    else:
        return np.dot( np.dot(F_4x4_3x3[trans[0]].T, Mw), F_4x4_3x3[trans[1]] )
dataset/ETHPy150Open NervanaSystems/neon/neon/backends/winograd4.py/trans_O_3x3_4x4/swapped operands of `-`