
    Vhm                        U d dl Z d dlmZ d dlZd dlmZ  e j                  e      Zej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  iZeeej$                     eej&                     f   ed<   ej                  ej                  ej                  ej                  fZdedeeej&                        fdZ	 	 ddej$                  d	ej$                  d
ededeeej&                  ej4                  f      f
dZdej$                  d	ej$                  dedej$                  fdZy)    N)Optional)FloorDiv_MIRROR_REL_OPtypereturnc                 .    t         j                  | d       S N)r   get)r   s    H/home/dcms/DCMS/lib/python3.12/site-packages/torch/utils/_sympy/solve.pymirror_rel_opr      s    dD))    exprthingtrialsfloordiv_inequalityc                 
   t        t        |             }t        | t        j                        r| t
        j                  dt        |              y | j                  j                  |      }| j                  j                  |      }|r|rt
        j                  d||        y g }|r|j                  |        |r,|j                   || j                  | j                               |D ]  }|t        |t        j                        sJ t        |      D ]  }	t        |||      }
|
|k(  r n|
} t        |t        j                        sd|j                  |k(  stt
        j                  d| |       ||j                  fc S  y )Nz$expression with unsupported type: %sz0thing (%s) found in both sides of expression: %s)r   zsolved: %s ---> %s)r   r   
isinstancesympyRellogdebuglhshasrhsappendrange_try_isolate_lhs)r   r   r   r   mirrorlhs_has_thingrhs_has_thingexpressionse_trials              r   	try_solver%   )   sN    4:&F
 dEII&&.		8$t*EHHLL'MHHLL'M
 		DeTR K 4 6$((DHH56 9!UYY'''v 	A$QCVWEzA	 a#II*D!4aee8O!$ r   r"   c                    t        |       }t        | t        j                        rqt        | j                  t        j
                        r(t        fd| j                  j                  D              nd} || j                  |z
  | j                  |z
        } t        | t        j                        rt        | j                  t        j                        r| j                  \  }}t        j                  |j                  D cg c]  }|j                        r| c} }t        | t              r|j                  Zt        | t              s|j                  s>||z  }||z  }t        | t              r|j                  rt        |      }|J  |||      } |rt        | t        j                        rt        | j                  t              r| j                  j                   j"                  r| j                  j$                  rht        | t        j&                        rt| j                  j                  \  }	}
t        j(                  t        j*                  |	| j                  |
z        t        j,                  |	| j                  dz   |
z              S t        | t        j.                        rt| j                  j                  \  }	}
t        j0                  t        j,                  |	| j                  |
z        t        j*                  |	| j                  dz   |
z              S t        | t        j2                  t        j*                  f      r|t        | t        j*                        r| j                  n| j                  dz   }t        j*                  | j                  j                  d   || j                  j                  d   z        S t        | t        j,                  t        j4                  f      r|t        | t        j,                        r| j                  n| j                  dz   }t        j,                  | j                  j                  d   || j                  j                  d   z        S | S c c}w )Nc              3   F   K   | ]  }|j                        r|  y wr	   )r   ).0ar   s     r   	<genexpr>z#_try_isolate_lhs.<locals>.<genexpr>i   s     :aQUU5\:s   !!r      )r   r   r   r   r   Addsumargsr   Mulr   INEQUALITY_TYPESis_negativeis_zeror   r   divisoris_positive
is_integerEqAndGeLtNeOrGtLe)r"   r   r   oplhs_not_thingr   r   r)   other	numeratordenominatorquotients    `          r   r   r   a   s    
aB!UYY !%%+ :155:::: 	
 quu}$aeem&;< !UYYJquueii$@66S		sxxD!quuU|ADE
 1./E4E4E4M1./CKK +C+C !-.53D3D"2&>!>3A 	q%))$quuh'EEMM%%EE a"%&UUZZ"I{99QUU[%8:aeeai;%>@  a"%&UUZZ"I{88QUU[%8:aeeai;%>@  a%((EHH-. *1ehh 7quuaeeaiH88AEEJJqMHquuzz!},DFF a%((EHH-. *1ehh 7quuaeeaiH88AEEJJqMHquuzz!},DFFHA Es   Q2Q2)   T)loggingtypingr   r   torch.utils._sympy.functionsr   	getLogger__name__r   r6   r:   r8   r=   r<   r9   r   dictr   Basicr   __annotations__r0   r   intbooltupleExprr%   r    r   r   <module>rR      sp      1 g! 
HHehh	HHehh	HHehh	HHehh	HHehh	HHehh<T%++&UYY78  HHehh%((; * *$uyy/!: **  $	5
++5;;5 5 	5
 eEIIuzz)*+5pQ{{Q ;;Q=AQ
[[Qr   