o
    i                     @   s   d d Z dd ZdS )c                    st   d  fddd fddt| D }d  fddd fd	dt| t d D }|d
 | S )N   c                    s(   | v rdS t td  } d7  |S Nar   chrordidxresult)	_next_ordaxes_in [/home/ubuntu/.local/lib/python3.10/site-packages/einx/_src/adapter/classical_from_einsum.pyget_input_name_at   
   z._einsum_diag_string.<locals>.get_input_name_at c                 3       | ]} |V  qd S Nr   .0i)r   r   r   	<genexpr>       z&_einsum_diag_string.<locals>.<genexpr>c                    s(   | krdS t td  } d7  |S r   r   r   )r
   axis_outr   r   get_output_name_at   r   z/_einsum_diag_string.<locals>.get_output_name_atc                 3   r   r   r   r   )r   r   r   r      r   z->)joinrangelen)ndimr   r   einsum_str_inputeinsum_str_outputr   )r
   r   r   r   r   r   _einsum_diag_string   s   	(	r    c                    s    fdd}|S )Nc                    s   t | j||} || S r   )r    r   )xr   r   
einsum_streinsumr   r   diagonal    s   
zdiagonal.<locals>.diagonalr   )r$   r%   r   r#   r   r%      s   r%   N)r    r%   r   r   r   r   <module>   s    