code: def trans_I_2x2_5x5(Iw, I, minimal=False, trans=False):
      if minimal:
          T0 = np.empty((6, 2))
          T1 = np.empty((6, 6))
  
          for O, I in ((T0, I), (T1, T0.T)):
              # 4*2 + 4*6 = 30
  
              O[0, :] = I[0, :]
              O[1, :] = I[0, :] + I[1, :] * 0.75
              O[2, :] = I[0, :] - I[1, :] * 0.75
              O[3, :] = I[0, :] + I[1, :] * 1.50
              O[4, :] = I[0, :] - I[1, :] * 1.50
              O[5, :] = I[1, :]
  
          Iw[:] = T1.T
  
      else:
          Iw[:] = np.dot(
              np.dot(I_2x2_5x5[trans[0]], I), I_2x2_5x5[trans[1]].T
          )
  
file_path: neon/neon/backends/winograd5.py
imports: from __future__ import division
  import numpy
  from struct import pack, unpack
  from neon import logger
label_desc: Use image node_id 10 for calling a global function with example usage: trans_I_2x2_5x5(Iw, I, minimal, trans) without return types