
    PhL                     F    d dl Z d dlZd dlZ G d d      Z G d de      Zy)    Nc                      e Zd Zed        Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed        Zed	        Zed
        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Z ed        Z!ed        Z"y) ReferenceAnalysisc                 ,    t        j                  |       S N)sympysympifycdtypes     gC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/utils/_sympy/reference.pyconstantzReferenceAnalysis.constant       }}Q    c                     | |z  S r    abs     r   or_zReferenceAnalysis.or_       1ur   c                     | |z  S r   r   r   s     r   and_zReferenceAnalysis.and_   r   r   c                     t        | t        j                        st        |t        j                        rt        j                  | |      S | |k(  S r   )
isinstancer   ExprEqr   s     r   eqzReferenceAnalysis.eq   s6    a$
1ejj(A88Aq>!Avr   c                 D    | j                  | j                  ||            S r   )not_r   )clsr   r   s      r   nezReferenceAnalysis.ne!   s    xxq!%%r   c                     | |k  S r   r   r   s     r   ltzReferenceAnalysis.lt%   r   r   c                     | |kD  S r   r   r   s     r   gtzReferenceAnalysis.gt)   r   r   c                     | |k  S r   r   r   s     r   lezReferenceAnalysis.le-       Avr   c                     | |k\  S r   r   r   s     r   gezReferenceAnalysis.ge1   r(   r   c                 ,    t        | t              rJ |  S r   )r   boolr   s    r   r   zReferenceAnalysis.not_5   s    a&&&r	r   c                     d| z  S )N   r   xs    r   
reciprocalzReferenceAnalysis.reciprocal:   r   r   c                     | | z  S r   r   r0   s    r   squarezReferenceAnalysis.square>   r   r   c                     | |z  S r   r   )r1   ys     r   modzReferenceAnalysis.modB   r   r   c                     t        |       S r   )absr0   s    r   r9   zReferenceAnalysis.absF   s    1vr   c                     |  S r   r   r0   s    r   negzReferenceAnalysis.negJ   s	    r	r   c                     | |z  S r   r   r   s     r   truedivzReferenceAnalysis.truedivN   r   r   c                 .    t         j                  | |      S r   )r   r=   r   s     r   divzReferenceAnalysis.divR   s     ((A..r   c                 `    |dk(  r%| dk(  rt         j                  S t         j                  S | |z  S )Nr   )r   nanzoor   s     r   floordivzReferenceAnalysis.floordivV   s+    6 !Q5995EII5Avr   c                 R    | |z  }|j                   rt        j                  |      }|S r   )	is_finiter   Integer)r   r   results      r   truncdivzReferenceAnalysis.truncdiv\   s'    Q]]6*Fr   c                     | |z   S r   r   r   s     r   addzReferenceAnalysis.addd   r   r   c                     | |z  S r   r   r   s     r   mulzReferenceAnalysis.mulh   r   r   c                     | |z
  S r   r   r   s     r   subzReferenceAnalysis.subl   r   r   c                 ,    t        j                  |       S r   )r   expr0   s    r   rP   zReferenceAnalysis.expp       yy|r   c                 ,    t        j                  |       S r   )r   logr0   s    r   rS   zReferenceAnalysis.logt   rQ   r   c                 ,    t        j                  |       S r   )r   sqrtr0   s    r   rU   zReferenceAnalysis.sqrtx   s    zz!}r   c                     | |z  S r   r   r   s     r   powzReferenceAnalysis.pow|   s    !tr   c                     | j                   s$| j                  r|j                   s|j                  st        j                  }n,| j                  sJ |j                  sJ t        j
                  }t        j                   ||        ||            S r   )is_FloatrE   r   Float
is_IntegerrF   Minr   r   result_types      r   minimumzReferenceAnalysis.minimum   `     ::Q[[AJJakk++K<<<<<<--KyyQQ88r   c                     | j                   s$| j                  r|j                   s|j                  st        j                  }n,| j                  sJ |j                  sJ t        j
                  }t        j                   ||        ||            S r   )rY   rE   r   rZ   r[   rF   Maxr]   s      r   maximumzReferenceAnalysis.maximum   r`   r   c                 ,    t        j                  |       S r   )r   floorr0   s    r   re   zReferenceAnalysis.floor   s    {{1~r   c                 ,    t        j                  |       S r   )r   ceilingr0   s    r   ceilzReferenceAnalysis.ceil   r   r   N)#__name__
__module____qualname__staticmethodr   r   r   r   classmethodr!   r#   r%   r'   r*   r   r2   r4   r7   r9   r;   r=   r?   rC   rH   rJ   rL   rN   rP   rS   rU   rW   r_   rc   re   rh   r   r   r   r   r      sX            
 & &                       / /  
                 	9 	9 	9 	9      r   r   c                       e Zd Zed        Zed        Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zy)PythonReferenceAnalysisc                     |t         j                  u rt        |       S |t         j                  u rt	        |       S |t         j
                  u rt        |       S t        d|       )Nzunrecognized dtype )torchint64intdoublefloatr,   AssertionErrorr	   s     r   r   z PythonReferenceAnalysis.constant   sT    EKKq6Mell"8Oejj 7N #6ug!>??r   c                 ,    t        j                  |       S r   )rq   sym_notr-   s    r   r   zPythonReferenceAnalysis.not_   r   r   c                     | |z  S r   r   r   s     r   rC   z PythonReferenceAnalysis.floordiv   r(   r   c                     | |z  S r   r   r   s     r   rH   z PythonReferenceAnalysis.truncdiv   r   r   c                     t        d      )Nz!exp is not valid shape sympy exprrv   r0   s    r   rP   zPythonReferenceAnalysis.exp       @AAr   c                     t        d      )Nz!log is not valid shape sympy exprr|   r0   s    r   rS   zPythonReferenceAnalysis.log   r}   r   c                 ,    t        j                  |       S r   )rq   sym_sqrtr0   s    r   rU   zPythonReferenceAnalysis.sqrt   s    ~~a  r   c                 .    t        j                  | |      S r   )rq   sym_minr   s     r   r_   zPythonReferenceAnalysis.minimum       }}Q""r   c                 .    t        j                  | |      S r   )rq   sym_maxr   s     r   rc   zPythonReferenceAnalysis.maximum   r   r   c                 ,    t        j                  |       S r   )mathre   r0   s    r   re   zPythonReferenceAnalysis.floor   s    zz!}r   c                 ,    t        j                  |       S r   )r   rh   r0   s    r   rh   zPythonReferenceAnalysis.ceil   s    yy|r   N)ri   rj   rk   rl   r   r   rC   rH   rP   rS   rU   r_   rc   re   rh   r   r   r   ro   ro      s    @ @         B B B B ! ! # # # #    r   ro   )r   r   rq   r   ro   r   r   r   <module>r      s(      P  P l2/ 2r   