
    bIg                    >    d dl mZ d dlmZ d dlmZ  G d de      Zy)    )annotations)OpRunExperimental)im2col_fastc                      e Zd ZddZy)Im2ColNc                   ||j                   dd  D cg c]  }d }}| |j                   dd  D cg c]  }d c}dz  }||j                   dd  D cg c]  }d }}t        |      t        |      cxk(  rdk(  r!n nt        |t	        |dd        ||      d   fS |d   dk7  st        |      t        |      k7  rt        |      }g }t        |      }	t        |      D ]\  \  }
}t        |      |z
  |
z   }|	j                  ||   ||   dz
  |dz
  z  z          |j                  ||
   ||
   dz
  |dz
  z  z          ^ |}t        |t	        |dd        ||      fS c c}w c c}w c c}w )N      r   )	shapeminmaxr   tuplelenlist	enumerateappend)selfimgkernel_shape	dilationspadsstridessndnew_kernel_shape	new_shapeiddis                f/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/reference/ops/experimental/op_im2col.py_runzIm2Col._run   s   $'IIabM2q2I2<"yy}-!A-1D?"%))AB-0Qq0G0y>S^0q0U<+;%<dGLQOQQQ<1I#i. @YB!\*I!), 1&+a/  b!1\"5E5IaRSe4T!TU '' O|A':q1u&EE ,LC|AB'7!8$HJJ- 3-0s   	E	E 	E%)NNN)__name__
__module____qualname__r!        r    r   r   
   s    Kr&   r   N)
__future__r   4onnx.reference.ops.experimental._op_run_experimentalr   .onnx.reference.ops_optimized.op_conv_optimizedr   r   r%   r&   r    <module>r*      s    # R FK Kr&   