
    \h$R                        S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	J
r
Jr  SSKJrJr  SSKJr  SSKJrJr  SS	KJrJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJ r J!r!  SSK"J#r#J$r$  SSK%J&r&  SSK'J(r(  SSK)J*r*  SSK+J,r,J-r-J.r.J/r/  SSK0J1r1  SSK2J3r3  SSK4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>   " S S\55      r? " S S\?\65      r@ " S S\9\?5      rA " S S\?\75      rB " S S \>5      rC " S! S"\C\=5      rD " S# S$\:5      rE " S% S&\E\;5      rFS' rGS( rHg))*zl
Continuous Random Variables Module

See Also
========
sympy.stats.crv_types
sympy.stats.rv
sympy.stats.frv
    )Basic)cacheit)Lambda	PoleError)Inanoo)EqNe)S)Dummysymbols)_sympifysympify)	factorial)exp)	Piecewise)
DiracDelta)Integral	integrate)AndOr)PolynomialError)poly)series)	FiniteSetIntersectionIntervalUnion)solveset)reduce_rational_inequalities)
RandomDomainSingleDomainConditionalDomain	is_randomProductDomainPSpaceSinglePSpacerandom_symbolsNamedArgsMixinDistributionc                   "    \ rS rSrSrSrS rSrg)ContinuousDomain$   zL
A domain with continuous support

Represented using symbols and Intervals.
Tc                     [        S5      e)Nz#Not Implemented for generic Domains)NotImplementedErrorselfs    G/var/www/auris/envauris/lib/python3.13/site-packages/sympy/stats/crv.py
as_booleanContinuousDomain.as_boolean,   s    !"GHH     N)__name__
__module____qualname____firstlineno____doc__is_Continuousr4   __static_attributes__r7   r6   r3   r-   r-   $   s    
 MIr6   r-   c                   (    \ rS rSrSrSS jrS rSrg)SingleContinuousDomain0   z^
A univariate domain with continuous support

Represented using a single symbol and interval.
Nc                     Uc  U R                   nU(       d  U$ [        U5      [        U R                   5      :w  a  [        S5      e[        XR                  U R
                  440 UD6$ )NzValues should be equal)r   	frozenset
ValueErrorr   symbolset)r2   expr	variableskwargss       r3   compute_expectation*SingleContinuousDomain.compute_expectation6   sX    IKY9T\\#::566{{DHH5@@@r6   c                 L    U R                   R                  U R                  5      $ N)rF   as_relationalrE   r1   s    r3   r4   !SingleContinuousDomain.as_boolean@   s    xx%%dkk22r6   r7   rM   r8   r9   r:   r;   r<   rJ   r4   r>   r7   r6   r3   r@   r@   0   s    
A3r6   r@   c                   (    \ rS rSrSrSS jrS rSrg)ProductContinuousDomainD   z=
A collection of independent domains with continuous support
Nc                     Uc  U R                   nU R                   H@  n[        U5      [        UR                   5      -  nU(       d  M-  UR                  " X40 UD6nMB     U$ rM   )r   domainsrC   rJ   )r2   rG   rH   rI   domaindomain_varss         r3   rJ   +ProductContinuousDomain.compute_expectationI   sX    IllF#I.6>>1JJK{11$NvN # r6   c                 l    [        U R                   Vs/ s H  oR                  5       PM     sn6 $ s  snf rM   )r   rU   r4   )r2   rV   s     r3   r4   "ProductContinuousDomain.as_booleanR   s*    t||D|V&&(|DEEDs   1r7   rM   rP   r7   r6   r3   rR   rR   D   s    Fr6   rR   c                   8    \ rS rSrSrSS jrS r\S 5       rSr	g)	ConditionalContinuousDomainV   zc
A domain with continuous support that has been further restricted by a
condition such as $x > 3$.
Nc                    Uc  U R                   nU(       d  U$ U R                  R                  X5      nUR                  [	        UR
                  5      peU R                  /nU(       Ga  UR                  5       nUR                  (       aT  [        U[        5      (       a  UR                  UR                  5        GO-[        U[        5      (       a  [        S5      eGOUR                  (       a  UR                   (       a&  U[#        UR$                  UR&                  -
  5      -  nOUR(                  [+        U R                   5      -  n	[-        U	5      S:w  a  [        S5      eU	R                  " 5       n
[/        U5       HX  u  pUS   U
:X  d  M  [1        X5      n[3        US   US   5      nUR5                  U5      nXR6                  UR8                  4Xk'   MZ     O[;        SU-  5      eU(       a  GM  [=        U/UQ70 UD6$ )NzOr not implemented here   z-Multivariate Inequalities not yet implementedr      z+Condition %s is not a relational or Boolean)r   
fulldomainrJ   functionlistlimits	conditionpop
is_Boolean
isinstancer   extendargsr   r0   is_Relationalis_Equalityr   lhsrhsfree_symbolsrF   len	enumerate!reduce_rational_inequalities_wrapr   	intersectleftright	TypeErrorr   )r2   rG   rH   rI   
fullintgrl	integrandrd   
conditionscondr   rE   ilimitcintvllintvlintvls                   r3   rJ   /ConditionalContinuousDomain.compute_expectation\   s   IK__88I
&//j6G6G1H6nn%
>>#DdC((%%dii0b))-.GHH *####DHHtxx,?!@@I"//#dll2CCG7|q(1KM M %[[]F$-f$5 8v-%F $&.F &.eAha%AF$*$4$4V$<E)/U[[(IFI %6  ADHJ J? jD 	5F5f55r6   c                 ^    [        U R                  R                  5       U R                  5      $ rM   )r   ra   r4   re   r1   s    r3   r4   &ConditionalContinuousDomain.as_boolean   s     4??--/@@r6   c                     [        U R                  5      S:X  aC  U R                  R                  [	        U R
                  [        U R                  5      S   5      -  $ [        S5      e)Nr_   r   z)Set of Conditional Domain not Implemented)rp   r   ra   rF   rr   re   tupler0   r1   s    r3   rF   ConditionalContinuousDomain.set   s[    t||!OO''*Kdll 3A 6+8 8 9 &;= =r6   r7   rM   )
r8   r9   r:   r;   r<   rJ   r4   propertyrF   r>   r7   r6   r3   r\   r\   V   s'    
-6^A = =r6   r\   c                       \ rS rSrS rSrg)ContinuousDistribution   c                      U R                   " U6 $ rM   )pdf)r2   rj   s     r3   __call__ContinuousDistribution.__call__   s    xxr6   r7   N)r8   r9   r:   r;   r   r>   r7   r6   r3   r   r      s    r6   r   c                       \ rS rSrSr\" \* \5      rS r\	S 5       r
\S 5       rS rS r\S 5       rS	 rS
 r\S 5       rS rS rSS jr\S 5       rS rS rSrg)SingleContinuousDistribution   ap  Continuous distribution of a single variable.

Explanation
===========

Serves as superclass for Normal/Exponential/UniformDistribution etc....

Represented by parameters for each of the specific classes.  E.g
NormalDistribution is represented by a mean and standard deviation.

Provides methods for pdf, cdf, and sampling.

See Also
========

sympy.stats.crv_types.*
c                 b    [        [        [        U5      5      n[        R                  " U /UQ76 $ rM   )rc   mapr   r   __new__)clsrj   s     r3   r   $SingleContinuousDistribution.__new__   s'    C&'}}S(4((r6   c                      g rM   r7   )rj   s    r3   check"SingleContinuousDistribution.check   s    r6   c                     [        SS[        S9u  p#U R                  R                  nU R	                  U5      n[        UR                  5       X$U440 UD6n[        XcU:  4S5      n[        X65      $ )z1Compute the CDF from the PDF.

Returns a Lambda.
x, zTrealr   r   T)	r   r   rF   startr   r   doitr   r   )r2   rI   xz
left_boundr   cdfs          r3   compute_cdf(SingleContinuousDistribution.compute_cdf   si     vDe4XX^^
 hhqk
QA$6A&A:o.	:a~r6   c                     g rM   r7   r2   r   s     r3   _cdf!SingleContinuousDistribution._cdf       r6   c                 |    [        U5      S:X  a  U R                  U5      nUb  U$ U R                  " S0 UD6" U5      $ zCumulative density function r   r7   )rp   r   r   )r2   r   rI   r   s       r3   r    SingleContinuousDistribution.cdf   s>    v;!))A,C
)&)!,,r6   c                     [        SS[        S9u  p#U R                  U5      n[        [	        [
        U-  U-  5      U-  X R                  45      n[        X55      $ )zECompute the characteristic function from the PDF.

Returns a Lambda.
x, tTr   )r   r   r   r   r   r   rF   r   )r2   rI   r   tr   cfs         r3   compute_characteristic_function<SingleContinuousDistribution.compute_characteristic_function   sM     vDe4hhqks1Q3q5z#~88}5a}r6   c                     g rM   r7   r2   r   s     r3   _characteristic_function5SingleContinuousDistribution._characteristic_function   r   r6   c                 |    [        U5      S:X  a  U R                  U5      nUb  U$ U R                  " S0 UD6" U5      $ )zCharacteristic function r   r7   )rp   r   r   )r2   r   rI   r   s       r3   characteristic_function4SingleContinuousDistribution.characteristic_function   sA    v;!..q1B~	33=f=a@@r6   c                     [        SS[        S9u  p#U R                  U5      n[        [	        X2-  5      U-  X R
                  45      n[        X55      $ )zHCompute the moment generating function from the PDF.

Returns a Lambda.
r   Tr   )r   r   r   r   r   rF   r   )r2   rI   r   r   r   mgfs         r3   "compute_moment_generating_function?SingleContinuousDistribution.compute_moment_generating_function   sH     vDe4hhqkAE
S(1hh-8a~r6   c                     g rM   r7   r   s     r3   _moment_generating_function8SingleContinuousDistribution._moment_generating_function   r   r6   c                 l    U(       d  U R                  U5      nUb  U$ U R                  " S0 UD6" U5      $ )zMoment generating function r7   )r   r   )r2   r   rI   r   s       r3   moment_generating_function7SingleContinuousDistribution.moment_generating_function   s8    66q9?J66@@CCr6   c           	         U(       a   [        X5      nUR                  (       a  [        R                  $ [	        SSS9nU R                  U5      nUc)  [        XR                  U5      -  X R                  440 UD6$ UR                  5       n[        [        XvSUS-   5      R                  5       U5      n	Sn
[        US-   5       H8  nXR                  X+-  5      U	R                  Xk-  5      -  [        U5      -  -  n
M:     U
$ [!        XR                  U5      -  X R                  440 UD6$ ! [         a,    [        XR                  U5      -  X R                  440 UD6s $ f = f)z,Expectation of expression over distribution r   Tr   r   r_   )r   is_zeror   Zeror   r   r   r   rF   degreer   removeOrangecoeff_monomialr   r   r   )r2   rG   varevaluaterI   pr   r   degtaylorresultks               r3   expectation(SingleContinuousDistribution.expectation  sA   RO9966M#D)66q9;$THHSM%9C?UfUUhhjfSQa8@@BAFs1uA..sx86;P;PQRQW;XX[def[gggF & D88C=03/LVLL # R !5XXQ&QQRs   +D+ AD+ <BD+ +3E! E!c           	      
   [        SS[        S9u  p#U R                  R                  nU R	                  U5      n[        XRXB440 UD6n[        Xc-
  X R                  5      n[        U[        XsS:  US:*  -  4[        S45      5      $ )z6Compute the Quantile from the PDF.

Returns a Lambda.
zx, pTr   r   r_   )
r   r   rF   r   r   r   r    r   r   r   )r2   rI   r   r   r   r   r   quantiles           r3   compute_quantile-SingleContinuousDistribution.compute_quantile  s|     vDe4XX^^
hhqk/:6:CGQ1aHAv!q&.A#Cc4[QRRr6   c                     g rM   r7   r   s     r3   	_quantile&SingleContinuousDistribution._quantile%  r   r6   c                 |    [        U5      S:X  a  U R                  U5      nUb  U$ U R                  " S0 UD6" U5      $ r   )rp   r   r   )r2   r   rI   r   s       r3   r   %SingleContinuousDistribution.quantile(  s@    v;!~~a(H#$$.v.q11r6   r7   NT)r8   r9   r:   r;   r<   r   r	   rF   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   r7   r6   r3   r   r      s    $ B3
C)    -  A  DM, S S2r6   r   c                       \ rS rSrSrSrSr\S 5       rSS jr	S r
\S 5       r\S	 5       r\S
 5       r\S 5       rS rS rSS jrSrg)ContinuousPSpacei1  zContinuous Probability Space

Represents the likelihood of an event space defined over a continuum.

Represented with a ContinuousDomain and a PDF (Lambda-Like)
Tc                 H    U R                   " U R                  R                  6 $ rM   )densityrV   r   r1   s    r3   r   ContinuousPSpace.pdf<  s    ||T[[0011r6   Nc                    Uc  U R                   nO[        U5      nUR                  U Vs0 s H  oUUR                  _M     sn5      n[        S U 5       5      nU R                  R
                  " U R                  U-  U40 UD6$ s  snf )Nc              3   8   #    U  H  oR                   v   M     g 7frM   rE   ).0rvs     r3   	<genexpr>7ContinuousPSpace.compute_expectation.<locals>.<genexpr>H  s     ";s99s   )valuesrC   xreplacerE   rV   rJ   r   )r2   rG   rvsr   rI   r   domain_symbolss          r3   rJ   $ContinuousPSpace.compute_expectation@  s}    ;++CC.C}}c:c"))mc:;"";s";;{{..txx$*"(* 	*	 ;s   Bc           	      x   XR                   ;   a{  [        [        U R                   5      [        U/5      -
  5      n[        S U 5       5      nU R                  R
                  " U R                  U40 UD6n[        UR                  U5      $ [        SSS9n[        X`R
                  " [        X-
  5      40 UD65      $ )Nc              3   8   #    U  H  oR                   v   M     g 7frM   r   )r   rss     r3   r   3ContinuousPSpace.compute_density.<locals>.<genexpr>R  s     >"IIr   r   Tr   )r   r   rF   rC   rV   rJ   r   r   rE   r   r   )r2   rG   rI   randomsymbolsr   r   r   s          r3   compute_density ContinuousPSpace.compute_densityM  s    ;;!#dkk"2Yv5F"FGM>>>G++11$((GNvNC$++s++#D!a11*TX2FQ&QRRr6   c                 J   U R                   R                  R                  (       d  [        S5      eU R                  " U40 UD6n[        SS[        S9u  pEU R                   R                  R                  n[        U" U5      XFU440 UD6n[        XuU:  4S5      n[        XW5      $ )Nz0CDF not well defined on multivariate expressionsr   Tr   r   )rV   rF   is_IntervalrD   r   r   r   r   r   r   r   )r2   rG   rI   dr   r   r   r   s           r3   r   ContinuousPSpace.compute_cdfY  s    {{**BD D   00vDe4[[__**
 !qa0;F;:o.	:a~r6   c                 *   U R                   R                  R                  (       d  [        S5      eU R                  " U40 UD6n[        SS[        S9u  pE[        [        [        U-  U-  5      U" U5      -  U[        * [        440 UD6n[        XV5      $ )NzCCharacteristic function of multivariate expressions not implementedr   Tr   )rV   rF   r   r0   r   r   r   r   r   r   r	   r   )r2   rG   rI   r   r   r   r   s          r3   r   0ContinuousPSpace.compute_characteristic_functioni  s{    {{**%&kll  00vDe4s1Q3q5z!A$RC??a}r6   c                    U R                   R                  R                  (       d  [        S5      eU R                  " U40 UD6n[        SS[        S9u  pE[        [        XT-  5      U" U5      -  U[        * [        440 UD6n[        XV5      $ )NzFMoment generating function of multivariate expressions not implementedr   Tr   )rV   rF   r   r0   r   r   r   r   r   r	   r   )r2   rG   rI   r   r   r   r   s          r3   r   3ContinuousPSpace.compute_moment_generating_functions  sv    {{**%&noo  00vDe4AE
QqT)AsB<B6Ba~r6   c                    U R                   R                  R                  (       d  [        S5      eU R                  " U40 UD6n[        SSS9n[        SSS9n[        U" U5      U-
  X@R                  5      n[        XV5      $ )Nz5Quantile not well defined on multivariate expressionsr   Tr   r   )positive)rV   rF   r   rD   r   r   r    r   )r2   rG   rI   r   r   r   r   s          r3   r   !ContinuousPSpace.compute_quantile}  sw    {{**GI I T,V,#D!#%AaD1Ha2a""r6   c                   ^^^ [        SSS9mSn[        U[        5      (       a(  [        UR                  S   UR                  S   5      nSn U R                  U5      nU R                   Vs/ s H   oUR                  UR                  :X  d  M  UPM"     snS   nU R                  " U40 TD6mUR                  [        R                  L d  [        UR                  [        5      (       a'  U(       d  [        R                  $ [        R                  $ [        UR                  [        5      (       a+  [!        UUU4S jUR                  R                   5       5      $ [#        T" T5      TUR                  440 TD6$ s  snf ! [$         a    SSKJn  UR*                  UR,                  -
  n[/        U5      (       d  U R(                  nUR,                  n	OU" U40 TD6nSn	[        U[0        5      (       d   SS	KJn
  U
" XR6                  R                  S
9n[9        TU5      nUR;                  UR=                  UR>                  U	5      5      nU(       d  Us $ [        R                  U-
  s $ f = f)Nr   Tr   Fr   r_   c              3   |   >#    U  H1  n[        U[        5      (       d  M  [        T" T5      TU440 TD6v   M3     g 7frM   )rh   r   r   )r   subsetrI   r   r   s     r3   r   /ContinuousPSpace.probability.<locals>.<genexpr>  s>      F$ BH(268(D =Xc!fq&k<V<$s   <<)r   )ContinuousDistributionHandmade)rF   ) r   rh   r   r
   rj   wherer   rE   r   rF   r   EmptySetr   r   Oner   sumr   r0   sympy.stats.rvr   rm   rn   r%   r   sympy.stats.crv_typesr	  rV   SingleContinuousPSpaceprobability	__class__value)r2   re   rI   cond_invrV   r   r   rG   denscompr	  spacer   r   r   s     `          @@r3   r  ContinuousPSpace.probability  s   #D!i$$9>>!,innQ.?@IH 	>ZZ	*F#{{I{ii6==.H"{I!LB&&r4V4CzzQZZ':fjj)+L+L%-qvv81558&**e,, FZZ__F F F CFQ

O>v>> J # 	>.==9==0DT??|| }}t.v.d$:;;P5dP*1d3E&&y':':5;;'MNF!)6=quuv~=	>sE   E> -E9E9A+E>  E> A	E> E> 9E> >CI(I('I(c                 F   [        [        U5      5      n[        U5      S:X  a   UR                  U R                  5      (       d  [        S5      e[        U5      S   n[        X5      nUR                  U R                  R                  5      n[        UR                  U5      $ )Nr_   z2Multiple continuous random variables not supportedr   )rC   r)   rp   issubsetr   r0   r   rr   rs   rV   rF   r@   rE   )r2   re   r   r   intervals        r3   r
  ContinuousPSpace.where  s    y12CA#,,t{{";";%DF F3Z]4YC%%dkkoo6%bii::r6   c           	         UR                  U R                   Vs0 s H  oDUR                  _M     sn5      n[        U R                  U5      nU(       a  U R
                   Vs0 s H  oD[        [        U5      5      _M     nnUR                  " U R                  40 UD6nU R                  UR                  U5      -  n[        [        UR
                  5      U5      n	[        UW	5      $ s  snf s  snf rM   )r   r   rE   r\   rV   r   r   strrJ   r   r   r   r   )
r2   re   	normalizerI   r   rV   replacementnormr   r   s
             r3   conditional_space"ContinuousPSpace.conditional_space  s    &&'L"BII'LM	,T[[)D :>F2c"g.KF--dhhA&AD((T]];77C U6>>2C8G00 (M Gs   C("C-r7   NFr   )r8   r9   r:   r;   r<   r=   is_realr   r   rJ   r   r   r   r   r   r   r  r
  r"  r>   r7   r6   r3   r   r   1  s     MG2 2*
S       # #'>R;1r6   r   c                   j    \ rS rSrSr\S 5       r\S 5       rSS jrSS jr	S	 r
S
 rS rS rS rSrg)r  i  z
A continuous probability space over a single univariate variable.

These consist of a Symbol and a SingleContinuousDistribution

This class is normally accessed through the various random variable
functions, Normal, Exponential, Uniform, etc....
c                 .    U R                   R                  $ rM   )distributionrF   r1   s    r3   rF   SingleContinuousPSpace.set  s      $$$r6   c                 T    [        [        U R                  5      U R                  5      $ rM   )r@   r   rE   rF   r1   s    r3   rV   SingleContinuousPSpace.domain  s    %gdkk&:DHHEEr6   r7   Nc                 N    U R                   U R                  R                  XUS90$ )zX
Internal sample method.

Returns dictionary mapping RandomSymbol to realization value.
)libraryseed)r  r(  sample)r2   sizer-  r.  s       r3   r/  SingleContinuousPSpace.sample  s*     

D--44TQU4VWWr6   c                    U=(       d    U R                   4nU R                   U;  a  U$ [        U5      nUR                  U Vs0 s H  oUUR                  _M     sn5      nU R                   R                  n U R                  R
                  " X4SU0UD6$ s  snf ! [         a'    [        XR                  -  X`R                  440 UD6s $ f = f)Nr   )
r  r   r   rE   r(  r   r   r   r   rF   )r2   rG   r   r   rI   r   r   s          r3   rJ   *SingleContinuousPSpace.compute_expectation  s    "djj]::S K~}}c:c"))mc:;JJ	F$$00V8VvVV	 ;
  	FD88Oa]EfEE	Fs   B7B .CCc                     XR                   :X  a0  [        SSS9n[        X0R                  R                  " U40 UD65      $ [
        R                  " X40 UD6$ )Nr   Tr   )r  r   r   r(  r   r   r   )r2   rG   rI   r   s       r3   r   "SingleContinuousPSpace.compute_cdf  sO    ::c%A!..221??@@#//EfEEr6   c                     XR                   :X  a0  [        SSS9n[        X0R                  R                  " U40 UD65      $ [
        R                  " X40 UD6$ Nr   Tr   )r  r   r   r(  r   r   r   r2   rG   rI   r   s       r3   r   6SingleContinuousPSpace.compute_characteristic_function   sP    ::c%A!..FFqSFSTT#CCDYRXYYr6   c                     XR                   :X  a0  [        SSS9n[        X0R                  R                  " U40 UD65      $ [
        R                  " X40 UD6$ r7  )r  r   r   r(  r   r   r   r8  s       r3   r   9SingleContinuousPSpace.compute_moment_generating_function  sP    ::c%A!..II!VvVWW#FFt\U[\\r6   c                 0  ^^ XR                   :X  a  U R                  $ [        SSS9m[        UT-
  U R                   [        R
                  5      n[        U[        5      (       aH  [        UR                  5      S:X  a/  UR                  S   [        R
                  L a  UR                  S   nUR                  (       d  [        SU< SU R                   < 35      eU R                  U R                   5      m[        UU4S	 jU 5       5      n[        TU5      $ )
NyTr   r`   r   r_   zCan not solve z for c              3   j   >#    U  H(  nT" U5      [        UR                  T5      5      -  v   M*     g 7frM   )absdiff)r   gfxr=  s     r3   r   9SingleContinuousPSpace.compute_density.<locals>.<genexpr>  s&     4AAQVVAY's   03)r  r   r   r    r   Realsrh   r   rp   rj   is_FiniteSetrD   r   r  r   )r2   rG   rI   gsfyrB  r=  s        @@r3   r   &SingleContinuousPSpace.compute_density  s    ::<<#D!dQh

AGG4b,''277|q RWWQZ177%:WWQZ$

KLL!!$**-444a}r6   c                     XR                   :X  a0  [        SSS9n[        X0R                  R                  " U40 UD65      $ [
        R                  " X40 UD6$ )Nr   Tr   )r  r   r   r(  r   r   r   )r2   rG   rI   r   s       r3   r   'SingleContinuousPSpace.compute_quantile  sO    ::c%A!..77DVDEE#44TJ6JJr6   )r7   scipyNr$  )r8   r9   r:   r;   r<   r   rF   rV   r/  rJ   r   r   r   r   r   r>   r7   r6   r3   r  r    sZ     % % F FXFFZ]"Kr6   r  c                 Z     [        X40 UD6$ ! [         a    [        SU S   -  5      ef = f)Nz!Reduction of condition failed %s
r   )r!   r   rD   )ry   r   rI   s      r3   _reduce_inequalitiesrM  '  s>    O+JFvFF O=
1MNNOs    *c                    U R                   (       a  [        U //USS9$ [        U [        5      (       a.  [	        U R
                   Vs/ s H  n[        U//USS9PM     sn6 $ [        U [        5      (       aI  U R
                   Vs/ s H  n[        U//USS9PM     nnUS   nU H  nUR                  " U5      nM     U$ g s  snf s  snf )NF)
relationalr   )rk   rM  rh   r   r   rj   r   rs   )re   r   arg	intervalsr   r{   s         r3   rr   rr   .  s    #i[M35II)R   ~~'% ,cUGSUK%' ( 	()S!! ~~'% *C5'35I% 	 'aLAAA  "''s   CCN)Ir<   sympy.core.basicr   sympy.core.cacher   sympy.core.functionr   r   sympy.core.numbersr   r   r	   sympy.core.relationalr
   r   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   r   (sympy.functions.combinatorial.factorialsr   &sympy.functions.elementary.exponentialr   $sympy.functions.elementary.piecewiser   'sympy.functions.special.delta_functionsr   sympy.integrals.integralsr   r   sympy.logic.boolalgr   r   sympy.polys.polyerrorsr   sympy.polys.polytoolsr   sympy.series.seriesr   sympy.sets.setsr   r   r   r   sympy.solvers.solvesetr    sympy.solvers.inequalitiesr!   r  r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r-   r@   rR   r\   r   r   r   r  rM  rr   r7   r6   r3   <module>rf     s    # $ 1 + + * " . 0 > 6 : > ; ) 2 & & F F + C[ [ [	I| 	I3-| 3(Fm-= F$?="24E ?=D\ 
Q2#9> Q2h]1v ]1@TK-| TKlOr6   