
    \h                         S 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  SSKJr  SS	KJr  SS
KJrJrJr  SSKJr  S rSS jrg)z'Tools for arithmetic error propagation.    )repeatcombinations)Add)Mul)Pow)S)Symbol)exp)simplify)RandomSymbolVariance
Covariance)	is_randomc                 V    [        U R                  5      S:  a  U R                  S   $ U $ )Nr   )lenargs)vars    N/var/www/auris/envauris/lib/python3.13/site-packages/sympy/stats/error_prop.py<lambda>r      s#    #chh-!*;388A;DD    c                 `   U R                   n[        U5      S:X  a  X;   a  [        R                  $ [	        U 5      (       a  [        U 5      R                  5       $ [        U [        5      (       a"  [        [        U 5      5      R                  5       $ [        R                  $ [        U5      n[        [        [        U[        X5      [        X$5      5      5      n[        U [        5      (       ai  [        U6 nU(       aX  [        US5       VVs/ s H4  u  pxS[!        [#        U5      [#        U5      5      R%                  5       -  PM6     n	nnU[        U	6 -  nU$ [        U [&        5      (       a  [)        X55       V
Vs/ s H  u  pXS-  -  PM     n	n
n[+        U S-  [        U	6 -  5      nU(       az  [)        [        US5      [        US5      5       V
VVVs/ s H>  u  u  pu  pxS[!        [#        U5      [#        U5      5      R%                  5       -  X-  -  PM@     n	nnn
nU[        U	6 -  nU$ [        U [,        5      (       a%  US   nUS   X-  US   -  S-  -  n[+        U5      nU$ [        U [.        5      (       a  [+        US   U S-  -  5      nU$ [        U 5      nU$ s  snnf s  snn
f s  snnnn
f )a8  Symbolically propagates variance (`\sigma^2`) for expressions.
This is computed as as seen in [1]_.

Parameters
==========

expr : Expr
    A SymPy expression to compute the variance for.
consts : sequence of Symbols, optional
    Represents symbols that are known constants in the expr,
    and thus have zero variance. All symbols not in consts are
    assumed to be variant.
include_covar : bool, optional
    Flag for whether or not to include covariances, default=False.

Returns
=======

var_expr : Expr
    An expression for the total variance of the expr.
    The variance for the original symbols (e.g. x) are represented
    via instance of the Variance symbol (e.g. Variance(x)).

Examples
========

>>> from sympy import symbols, exp
>>> from sympy.stats.error_prop import variance_prop
>>> x, y = symbols('x y')

>>> variance_prop(x + y)
Variance(x) + Variance(y)

>>> variance_prop(x * y)
x**2*Variance(y) + y**2*Variance(x)

>>> variance_prop(exp(2*x))
4*exp(4*x)*Variance(x)

References
==========

.. [1] https://en.wikipedia.org/wiki/Propagation_of_uncertainty

r         )r   r   r   Zeror   r   doit
isinstancer	   r   listmapvariance_propr   r   r   r   _arg0_or_varexpandr   zipr   r   r
   )exprconstsinclude_covarr   nargsvar_argsvar_exprxytermsavbs                r   r   r      sv   \ 99D
4yA~>66Mt__D>&&((f%%L./446666MIECtVF-B}46 7H$>!-h!:<!: LO\!_ELLNN!:  <U#H$ O# 
D#		$'$78$7DAa4$78D!Gc5k12+.|D!/D/;Ha/H,JK,J!! z,q/<?CJJLLacR,J  K U#H O 
D#		GQK48d1g-11A; O 
D#		HQK$'12 O D>O)< 9Ks   ;J:J"AJ(
N) F)__doc__	itertoolsr   r   sympy.core.addr   sympy.core.mulr   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr	   &sympy.functions.elementary.exponentialr
   sympy.simplify.simplifyr    sympy.stats.symbolic_probabilityr   r   r   sympy.stats.rvr   r    r   r/   r   r   <module>r;      s4    - *     " $ 6 , O O $DRr   