+
    iw                     b   R t ^ RIHtHt ^ RIHtHtHtHtH	t	 ^ RI
HtHtHtHtHtHtHtHtHtHtHt ^ RIHtHtHtHtHt ^ RIHt ^RIHtH t H!t!H"t" ]PF                  ! ]	4      R 4       t$]PF                  ! ]4      R 4       t$]PF                  ! ]4      R	 4       t$]PF                  ! ]4      R
 4       t$]PF                  ! ]4      R 4       t$]PF                  ! ]4      R 4       t$]PJ                  ! ]]]]]]]]]4	      R 4       t$]PJ                  ! ]]]4      R 4       t$]PF                  ! ]4      R 4       t$] PF                  ! ]4      R 4       t$]!PF                  ! ]4      R 4       t$]!PJ                  ! ]]4      R 4       t$]"PF                  ! ]4      R 4       t$]"PJ                  ! ]]4      R 4       t$R# )zc
This module contains query handlers responsible for calculus queries:
infinitesimal, finite, etc.
)Qask)ExprAddMulPowSymbol)NegativeInfinityGoldenRatioInfinityExp1ComplexInfinityImaginaryUnitNaNNumberPiETribonacciConstant)cosexplogsignsin)	conjuncts)FinitePredicateInfinitePredicatePositiveInfinitePredicateNegativeInfinitePredicatec                    V P                   e   V P                   # \        P                  ! V 4      \        V4      9   d   R# R# )z
Handles Symbol.
NT)	is_finiter   finiter   exprassumptionss   &&a/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/assumptions/handlers/calculus.py_r%      s3    
 ~~!~~xx~;//    c                   RpRpV P                    Fu  p\        \        P                  ! V4      V4      pV'       d   K-  \        \        P                  ! V4      V4      pVR8w  d   Wb8w  g   Vf   RWR39   d    R# TpVRJg   Ks  TpKw  	  V# )a  
Return True if expr is bounded, False if not and None if unknown.

Truth Table:

+-------+-----+-----------+-----------+
|       |     |           |           |
|       |  B  |     U     |     ?     |
|       |     |           |           |
+-------+-----+---+---+---+---+---+---+
|       |     |   |   |   |   |   |   |
|       |     |'+'|'-'|'x'|'+'|'-'|'x'|
|       |     |   |   |   |   |   |   |
+-------+-----+---+---+---+---+---+---+
|       |     |           |           |
|   B   |  B  |     U     |     ?     |
|       |     |           |           |
+---+---+-----+---+---+---+---+---+---+
|   |   |     |   |   |   |   |   |   |
|   |'+'|     | U | ? | ? | U | ? | ? |
|   |   |     |   |   |   |   |   |   |
|   +---+-----+---+---+---+---+---+---+
|   |   |     |   |   |   |   |   |   |
| U |'-'|     | ? | U | ? | ? | U | ? |
|   |   |     |   |   |   |   |   |   |
|   +---+-----+---+---+---+---+---+---+
|   |   |     |           |           |
|   |'x'|     |     ?     |     ?     |
|   |   |     |           |           |
+---+---+-----+---+---+---+---+---+---+
|       |     |           |           |
|   ?   |     |           |     ?     |
|       |     |           |           |
+-------+-----+-----------+---+---+---+

    * 'B' = Bounded

    * 'U' = Unbounded

    * '?' = unknown boundedness

    * '+' = positive sign

    * '-' = negative sign

    * 'x' = sign unknown

    * All Bounded -> True

    * 1 Unbounded and the rest Bounded -> False

    * >1 Unbounded, all with same known sign -> False

    * Any Unknown and unknown sign -> None

    * Else -> None

When the signs are not the same you can have an undefined
result as in oo - oo, hence 'bounded' is also undefined.
TNF)argsr   r   r    extended_positive)r"   r#   r   resultarg_boundedss   &&     r$   r%   r%       s    | DFyyqxx}k2##C(+6 2:!)	dx&66DF   Mr&   c                |   RpRpV P                    F  p\        \        P                  ! V4      V4      pV'       d4   \        \        P                  ! V4      V4      RJd   VRJ d    R# RpK\  K^  Vf9   Vf    R# \        \        P
                  ! V4      V4      f    R# VRJd   RpK  K  V'       d    R# RpK  	  V# )a  
Return True if expr is bounded, False if not and None if unknown.

Truth Table:

+---+---+---+--------+
|   |   |   |        |
|   | B | U |   ?    |
|   |   |   |        |
+---+---+---+---+----+
|   |   |   |   |    |
|   |   |   | s | /s |
|   |   |   |   |    |
+---+---+---+---+----+
|   |   |   |        |
| B | B | U |   ?    |
|   |   |   |        |
+---+---+---+---+----+
|   |   |   |   |    |
| U |   | U | U | ?  |
|   |   |   |   |    |
+---+---+---+---+----+
|   |   |   |        |
| ? |   |   |   ?    |
|   |   |   |        |
+---+---+---+---+----+

    * B = Bounded

    * U = Unbounded

    * ? = unknown boundedness

    * s = signed (hence nonzero)

    * /s = not signed
TFN)r)   r   r   r    zeroextended_nonzero)r"   r#   r+   possible_zeror,   r-   s   &&    r$   r%   r%   r   s    N FMyyqxx}k2166#;,E9U? $ : ~1%%c*K8@U" # F# $ Mr&   c                :   V P                   \        8X  d+   \        \        P                  ! V P
                  4      V4      # \        \        P                  ! V P                   4      V4      p\        \        P                  ! V P
                  4      V4      pVf   Vf   R# VRJ d3   \        \        P                  ! V P
                  4      V4      '       d   R# V'       d{   V'       ds   \        \        P                  ! V P                   4      V4      p\        \        P                  ! V P
                  4      V4      pVRJ d	   VRJ d   R# VRJd	   VRJd   R# R# \        V P                   4      ^8*  R8X  d3   \        \        P                  ! V P
                  4      V4      '       d   R# \        V P                   4      ^8  R8X  d3   \        \        P                  ! V P
                  4      V4      '       d   R# \        V P                   4      ^8  R8X  d	   VRJ d   R# R# )z
* Unbounded ** NonZero -> Unbounded

* Bounded ** Bounded -> Bounded

* Abs()<=1 ** Positive -> Bounded

* Abs()>=1 ** Negative -> Bounded

* Otherwise unknown
NFT)baser   r   r   r    r   r1   r0   negativeabsr*   extended_negative)r"   r#   base_boundedexp_boundedis_base_zerois_exp_negatives   &&    r$   r%   r%      su    yyA~188DHH%{33qxx		*K8Lahhtxx(+6K 3uQ%7%7%A;!O!O166$)),[9ajj2;?4Ot$;u$)EDII!$Q-@-@-JK)X)XDII!$Q-@-@-JK)X)XDII!$)=r&   c                 V    \        \        P                  ! V P                  4      V4      # N)r   r   r    r   r!   s   &&r$   r%   r%      s    qxx!;//r&   c                     \        \        P                  ! V P                  ^ ,          4      V4      '       d   R# \        \        P                  ! V P                  ^ ,          4      ( V4      # )    F)r   r   infiniter)   r0   r!   s   &&r$   r%   r%      sF     1::diil#[11tyy|$$k22r&   c                     R # T r!   s   &&r$   r%   r%      s     r&   c                     R # FrC   r!   s   &&r$   r%   r%          r&   c                     R # r=   rC   r!   s   &&r$   r%   r%          r&   c                 f    \         P                  ! V 4      P                  V4      pVf   R # V'       * # r=   )r   r    	_eval_ask)r"   r#   r   s   && r$   r%   r%      s+    ((5I=r&   c                     R # rB   rC   r!   s   &&r$   r%   r%      rH   r&   c                     R # rE   rC   r!   s   &&r$   r%   r%     rF   r&   c                     R # rB   rC   r!   s   &&r$   r%   r%   
  rH   r&   c                     R # rE   rC   r!   s   &&r$   r%   r%     rF   r&   N)&__doc__sympy.assumptionsr   r   
sympy.corer   r   r   r   r   sympy.core.numbersr	   r
   r   r   r   r   r   r   r   r   r   sympy.functionsr   r   r   r   r   sympy.logic.boolalgr   predicates.calculusr   r   r   r   registerr%   register_manyrC   r&   r$   <module>rX      s  
 % 2 2    5 4 ): : &! " #O Ob #: :x ## #J #0 0 #3 3 sCT;t-- :JK L #  D! " ##H- . (()9?K L ##$45 6 ((?C Dr&   