U
    qh                     @  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)selfZ	onnx_nodeZ
run_params r
   ?/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/op_split.pyr   
   s    zCommonSplit.__init__c                 C  s   |p| j }|d krx|j| | dkr>|j| | }|g| }n:|j| | d }|g| }|d  |j| t| 7  < dd |jD }g }d}	|D ]0}
t|	|	|
 ||< |	|
7 }	||t|  qt|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   divZsliresposZsplr
   r
   r   
common_run   s     

zCommonSplit.common_runN)__name__
__module____qualname__r   r   r
   r
   r
   r   r   	   s   r   c                   @  s   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$   s    zSplit_2._run)NNr   r   r    r$   r
   r
   r
   r   r!   #   s   r!   c                   @  s   e Zd ZdS )Split_11N)r   r   r    r
   r
   r
   r   r&   (   s   r&   c                   @  s   e Zd ZdddZdS )Split_13Nc                 C  s   | j |||d dS r"   r#   )r	   r   r   r   r
   r
   r   r$   -   s    zSplit_13._run)NNr%   r
   r
   r
   r   r'   ,   s   r'   c                   @  s   e Zd ZdddZdS )Split_18Nc                 C  s   | j ||||dS r"   r#   )r	   r   r   r   r   r
   r
   r   r$   2   s    zSplit_18._run)NNNr%   r
   r
   r
   r   r(   1   s   r(   N)	
__future__r   Zonnx.reference.op_runr   r   r!   r&   r'   r(   r
   r
   r
   r   <module>   s   