code: def trans_I_3x3_2x2(Iw, I, minimal=False):
      if minimal:
          T0 = np.empty((4, 4))
          T1 = np.empty((4, 4))
  
          for O, I in ((T0, I), (T1, T0.T)):
              O[0, :] = I[0, :] - I[2, :]
              O[1, :] = I[1, :] + I[2, :]
              O[2, :] = I[2, :] - I[1, :]
              O[3, :] = I[3, :] - I[1, :]
  
          Iw[:] = T1.T
  
      else:
          Iw[:] = np.dot(np.dot(I_3x3_2x2, I), I_3x3_2x2.T)
  
imports: from __future__ import division
  import numpy
  from struct import pack, unpack
  from neon import logger
label_desc: Use image node_id 12 for calling a global function with example usage: trans_I_3x3_2x2(Iw, I, minimal) without return types