o
    ÜÜÓhä  ã                   @   s   d dl Z G dd„ dƒZdS )é    Nc                   @   st  e Zd Zedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed	d
„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd „ ƒZed!d"„ ƒZed#d$„ ƒZed%d&„ ƒZed'd(„ ƒZed)d*„ ƒZed+d,„ ƒZed-d.„ ƒZed/d0„ ƒZed1d2„ ƒZed3d4„ ƒZed5d6„ ƒZed7d8„ ƒZ ed9d:„ ƒZ!ed;d<„ ƒZ"d=S )>ÚReferenceAnalysisc                 C   ó
   t  | ¡S ©N)ÚsympyÚsympify)ÚcÚdtype© r	   úR/var/www/html/ai/venv/lib/python3.10/site-packages/torch/utils/_sympy/reference.pyÚconstant   ó   
zReferenceAnalysis.constantc                 C   s    t | tƒs
t |tƒrJ ‚| |B S r   ©Ú
isinstanceÚbool©ÚaÚbr	   r	   r
   Úor_   ó   zReferenceAnalysis.or_c                 C   s    t | tƒs
t |tƒrJ ‚| |@ S r   r   r   r	   r	   r
   Úand_   r   zReferenceAnalysis.and_c                 C   s,   t | tjƒst |tjƒrt | |¡S | |kS r   )r   r   ÚExprÚEqr   r	   r	   r
   Úeq   s   zReferenceAnalysis.eqc                 C   s   |   |  ||¡¡S r   )Únot_r   )Úclsr   r   r	   r	   r
   Úne   s   zReferenceAnalysis.nec                 C   s   | |k S r   r	   r   r	   r	   r
   Últ    ó   zReferenceAnalysis.ltc                 C   s   | |kS r   r	   r   r	   r	   r
   Úgt$   r   zReferenceAnalysis.gtc                 C   s   | |kS r   r	   r   r	   r	   r
   Úle(   r   zReferenceAnalysis.lec                 C   s   | |kS r   r	   r   r	   r	   r
   Úge,   r   zReferenceAnalysis.gec                 C   s   t | tƒrJ ‚|  S r   r   )r   r	   r	   r
   r   0   s   zReferenceAnalysis.not_c                 C   s   d|  S )Né   r	   ©Úxr	   r	   r
   Ú
reciprocal5   r   zReferenceAnalysis.reciprocalc                 C   s   | |  S r   r	   r"   r	   r	   r
   Úsquare9   r   zReferenceAnalysis.squarec                 C   s   | | S r   r	   )r#   Úyr	   r	   r
   Úmod=   r   zReferenceAnalysis.modc                 C   s   t | ƒS r   )Úabsr"   r	   r	   r
   r(   A   r   zReferenceAnalysis.absc                 C   s   |  S r   r	   r"   r	   r	   r
   ÚnegE   s   zReferenceAnalysis.negc                 C   s   | | S r   r	   r   r	   r	   r
   ÚtruedivI   r   zReferenceAnalysis.truedivc                 C   s   t  | |¡S r   )r   r*   r   r	   r	   r
   ÚdivM   s   zReferenceAnalysis.divc                 C   s$   |dkr| dkrt jS t jS | | S )Nr   )r   ÚnanÚzoor   r	   r	   r
   ÚfloordivQ   s   zReferenceAnalysis.floordivc                 C   s   | | }|j rt |¡}|S r   )Ú	is_finiter   ÚInteger)r   r   Úresultr	   r	   r
   ÚtruncdivW   s   
zReferenceAnalysis.truncdivc                 C   s   | | S r   r	   r   r	   r	   r
   Úadd_   r   zReferenceAnalysis.addc                 C   s   | | S r   r	   r   r	   r	   r
   Úmulc   r   zReferenceAnalysis.mulc                 C   s   | | S r   r	   r   r	   r	   r
   Úsubg   r   zReferenceAnalysis.subc                 C   r   r   )r   Úexpr"   r	   r	   r
   r6   k   r   zReferenceAnalysis.expc                 C   r   r   )r   Úlogr"   r	   r	   r
   r7   o   r   zReferenceAnalysis.logc                 C   r   r   )r   Úsqrtr"   r	   r	   r
   r8   s   r   zReferenceAnalysis.sqrtc                 C   s   | | S r   r	   r   r	   r	   r
   Úpoww   r   zReferenceAnalysis.powc                 C   óN   | j s| jr|j s|jstj}n| jsJ ‚|jsJ ‚tj}t || ƒ||ƒ¡S r   )Úis_Floatr/   r   ÚFloatÚ
is_Integerr0   ÚMin©r   r   Úresult_typer	   r	   r
   Úminimum{   ó   

zReferenceAnalysis.minimumc                 C   r:   r   )r;   r/   r   r<   r=   r0   ÚMaxr?   r	   r	   r
   Úmaximum‡   rB   zReferenceAnalysis.maximumc                 C   r   r   )r   Úfloorr"   r	   r	   r
   rE   “   r   zReferenceAnalysis.floorc                 C   r   r   )r   Úceilingr"   r	   r	   r
   Úceil—   r   zReferenceAnalysis.ceilN)#Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   Úclassmethodr   r   r   r   r    r   r$   r%   r'   r(   r)   r*   r+   r.   r2   r3   r4   r5   r6   r7   r8   r9   rA   rD   rE   rG   r	   r	   r	   r
   r      sz    




























r   )r   r   r	   r	   r	   r
   Ú<module>   s    