o
    wi                     @  sl   d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZdS )    )annotations)OpRunc                   @  s   e Zd Zdd Zdd ZdS )CommonSplitc                 C  s   t | || t|j| _d S )N)r   __init__lenoutput	n_outputs)self	onnx_node
run_params r   X/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/reference/ops/op_split.pyr   
   s   zCommonSplit.__init__c                 C  s   |p| j }|d u r<|j| | dkr|j| | }|g| }n|j| | d }|g| }|d  |j| t| 7  < dd |jD }g }d}	|D ]}
t|	|	|
 ||< |	|
7 }	||t|  qJt|S )Nr      c                 S  s   g | ]}t d |qS )r   )slice).0sr   r   r   
<listcomp>   s    z*CommonSplit.common_run.<locals>.<listcomp>)r   shapesumr   appendtuple)r	   matsplitaxisnum_outputsr   divslirespossplr   r   r   
common_run   s    

zCommonSplit.common_runN)__name__
__module____qualname__r   r!   r   r   r   r   r   	   s    r   c                   @     e Zd ZdddZdS )Split_2Nc                 C  s   | j |||d dS N)r   r   r!   )r	   r   r   r   r   r   r   _run$      zSplit_2._runNNr"   r#   r$   r)   r   r   r   r   r&   #       r&   c                   @  s   e Zd ZdS )Split_11N)r"   r#   r$   r   r   r   r   r.   (   s    r.   c                   @  r%   )Split_13Nc                 C  s   | j |||d dS r'   r(   )r	   r   r   r   r   r   r   r)   -   r*   zSplit_13._runr+   r,   r   r   r   r   r/   ,   r-   r/   c                   @  r%   )Split_18Nc                 C  s   | j ||||dS r'   r(   )r	   r   r   r   r   r   r   r   r)   2   r*   zSplit_18._run)NNNr,   r   r   r   r   r0   1   r-   r0   N)	
__future__r   onnx.reference.op_runr   r   r&   r.   r/   r0   r   r   r   r   <module>   s   