code: def trans_F_3x3_2x2(Fw, F, minimal=False):
      if minimal:
          T0 = np.empty((4, 2))
          T1 = np.empty((4, 4))
  
          for O, I in ((T0, F), (T1, T0.T)):
              O[0, :] = I[0, :]
              O[1, :] = (I[0, :] + I[1, :]) * 0.5
              O[2, :] = (I[0, :] - I[1, :]) * 0.5
              O[3, :] = I[1, :]
  
          Fw[:] = T1.T
  
          # x0  =  half*F[0,0]
          # x1  =  half*F[1,1]
          # B0  =  half*F[1,0] + x0
          # B1  =  half*F[0,1] + x1
          # C0  = -half*F[1,0] + x0
          # C1  =  half*F[0,1] - x1
          # x2  =  half*B0
          # x3  =  half*C0
          # Fw[0,0] =  F[0,0]
          # Fw[0,1] =  half*F[0,1] + x0
          # Fw[0,2] = -half*F[0,1] + x0
          # Fw[0,3] =  F[0,1]
          # Fw[3,0] =  F[1,0]
          # Fw[3,1] =  half*F[1,0] + x1
          # Fw[3,2] =  half*F[1,0] - x1
          # Fw[3,3] =  F[1,1]
          # Fw[1,0] =  B0
          # Fw[1,1] =  half*B1 + x2
          # Fw[1,2] = -half*B1 + x2
          # Fw[1,3] =  B1
          # Fw[2,0] =  C0
          # Fw[2,1] =  half*C1 + x3
          # Fw[2,2] = -half*C1 + x3
          # Fw[2,3] =  C1
      else:
          Fw[:] = np.dot(np.dot(F_3x3_2x2, F), F_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 13 for calling a global function with example usage: trans_F_3x3_2x2(Fw, F, minimal) without return types