
    /j                    B    d dl mZ d dlZd dlmZ  G d de          ZdS )    )annotationsN)OpRunc                      e Zd Z	 ddZdS )	MaxUnpoolNc                v   t          |j                  dz
  }|dk    rt          d| d          |p| j        }|p| j        }|p| j        }|d |D             }|)d t          t          |          dz            D             }t          j        t          |j                  ft          j	                  }|j        d         |d<   |j        d	         |d	<   t          t          |                    D ]O}	|j        |	dz            d	z
  ||	         z  ||	         |t          |          |	z            z   z
  ||	         z   ||	dz   <   P||}
n|}
t          j
        |j                  }t          j        t          j
        |          f|j                  }|                                }|                                }t          |          D ]}||         |||         <   |                    t          |                    }t          j        |
|j                  }t          d
 |D                       }|||<   |fS )N      zUnsupported pooling size z for operator MaxUnpool.c                    g | ]}d S )    .0ds     e/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/reference/ops/op_max_unpool.py
<listcomp>z"MaxUnpool._run.<locals>.<listcomp>   s    ///Qq///    c                    g | ]}d S )r   r   r   s     r   r   z"MaxUnpool._run.<locals>.<listcomp>   s    <<<!A<<<r   )dtyper   r   c              3  6   K   | ]}t          d |          V  dS )r   N)slice)r   is     r   	<genexpr>z!MaxUnpool._run.<locals>.<genexpr>8   s*      ;;quQ{{;;;;;;r   )lenshapeNotImplementedErrorkernel_shapepadsstridesrangenpemptyint64prodzerosr   flattenreshapetuple)selfXindicesoutput_shaper   r   r   pooling_dimsinferred_shapedimr   total_elementsYI_dataX_datacur_elemresslicess                     r   _runzMaxUnpool._run   sV    17||a'!%RLRRR   $8t'8 ty)T\?//,///G<<<uS%6%6%:;;<<<D3qw<</BBBGAJqGAJq\**++ 	 	Cq!A%59tC$5$5$;<<>s#$ 37## "EE E))Hbgn--/qw???""n-- 	3 	3H"("2AfXIIeN++,,huAG,,,;;N;;;;;Fvr   )NNNN)__name__
__module____qualname__r6   r   r   r   r   r      s+        SW. . . . . .r   r   )
__future__r   numpyr    onnx.reference.op_runr   r   r   r   r   <module>r=      sk    # " " " " "     ' ' ' ' ' '/ / / / / / / / / /r   