o
    i                     @   sd   d dl m  mZ d dlm  m  mZ d dlmZ G dd dZG dd dZG dd dZ	dS )	    N)partialc                   @      e Zd Zdd ZdS )nnc                 C   s$   t j|j| _t j|j| _d S )N)	signature	classicalpreserve_shapesoftmaxlog_softmax)selfr    r   \/home/ubuntu/.local/lib/python3.10/site-packages/einx/_src/tracer/signature/classical/mlx.py__init__   s   znn.__init__N__name__
__module____qualname__r   r   r   r   r   r          r   c                   @   r   )corec                 C   s  |j | _ tj | j _tj | j _tjj| j _tj|j	| _	tj
|j
| _
tj|j| _tj|j| _tj|j| _tjj|jdd| _tj|j| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|jdd| _tjj|j dd| _ tjj|j!dd| _!tjj|j"dd| _"tjj|j#dd| _#tjj|j$dd| _$tjj|j%dd| _%tjj|j&dd| _&tj'|j(| _(tj'|j)| _)tj'|j*| _*tj'|j+| _+tj'|j,| _,tj'|j-| _-tj'|j.| _.tj'|j/| _/tj'|j0| _0tj'|j1| _1tj'|j2| _2tj'|j3| _3tj'|j4| _4tj5|j5| _5tj6|j6| _6tj7|j7| _7tj8|j8| _8tj9|j:| _:tj9|j;| _;tj9|j<| _<tj9|j=| _=tj>|j>| _>|j?| _?|j@| _@|jA| _A|jB| _B|jC| _Dtj9|jE| _Ed S )NT)
cumulative   )num_outputs   )Farrayr   r   getitem__getitem__setitem__setitem__at	set_shapereshape	transposebroadcast_toarangeconcatenatesplitdiagonalelementwiseaddsubtractmultiplytrue_dividefloor_dividedividelogical_and
logical_orwheremaximumminimumless
less_equalgreatergreater_equalequal	not_equal	logaddexpexplognegativedivmodreducesummeanvarstdprodcount_nonzeroallanyminmaxargmaxargmin	logsumexptake	tensordotmatmuleinsumr   rollflipsortargsortvmapint32int64float32float64bool_boolstop_gradient)r
   mxr   r   r   r      sz   zcore.__init__Nr   r   r   r   r   r      r   r   c                   @   r   )mlxc                 C   s4   t tjjjddd| _ ttjjjddd| _d S )Nzmlx.corer[   )as_zmlx.nnmnn)r   tracerr   pythonimport_r   )r
   r   r   r   r   W   s   zmlx.__init__Nr   r   r   r   r   r\   V   r   r\   )
einx._src.tracer_srcr_   einx._src.tracer.signaturer   	functoolsr   r   r   r\   r   r   r   r   <module>   s    J