U
    ˜9%e§™  ã                   @   s4  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$m%Z% d dl&m'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZK d dlLmMZMmNZNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZV d dlWmXZXmYZY d d lmZZZ d!d"„ Z[d#d$„ Z\d%d&„ Z]d'd(„ Z^d)d*„ Z_d+d,„ Z`d-d.„ Zad/d0„ Zbd1S )2é    )ÚSum)ÚTuple)ÚLambda)ÚFloatÚRationalÚooÚpi)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚS)ÚSymbolÚsymbols)Ú	factorial)Úexp)Úceiling)Úsqrt)Ú	Piecewise)Úerf)ÚgammaÚ
lowergamma)ÚAndÚNot)ÚMatrix)ÚMatrixSymbol)ÚImmutableMatrix)ÚContains)ÚRange)Ú	FiniteSetÚInterval)ÚDiscreteMarkovChainÚPÚTransitionMatrixOfÚEÚStochasticStateSpaceOfÚvarianceÚContinuousMarkovChainÚBernoulliProcessÚPoissonProcessÚWienerProcessÚGammaProcessÚsample_stochastic_process)ÚJointDistribution)ÚJointDistributionHandmade)ÚRandomIndexedSymbol)ÚProbabilityÚExpectation)ÚraisesÚskipÚignore_warningsÚwarns_deprecated_sympy)Úimport_module)ÚBernoulliDistribution)ÚPoissonDistribution)ÚNormalDistributionÚGammaDistribution)ÚStrc            4         sÈ  t dƒ‰tˆjtƒst‚ˆjtjks(t‚tˆjt	ƒs8t‚t
dddd‰tˆˆ tƒsXt‚tˆd ƒtˆd ƒkstt‚ttdd„ ƒ tt‡‡fdd„ƒ tt‡fd	d„ƒ tt‡fd
d„ƒ tt‡fdd„ƒ tddd} t	d| | ƒ}t| ƒ}t d||ƒ}tt|d dƒt|d dƒƒ|d ks$t‚tt‡fdd„ƒ tt‡fdd„ƒ t
ddd\}}}}dtdƒ|t ddƒgttdƒt|ƒtdƒddtdddƒ|||gg}dd„ |D ƒ}	t|	ƒD ]Þ\}
‰tˆjt	ƒsÐt‚ˆj||
 ksøˆjt||
 Ž ksøt‚ˆjd kst‚ttƒL ttˆd dƒtˆd dƒdd!ttˆd dƒtˆd dƒƒksXt‚W 5 Q R X tˆd ƒtˆd ƒks€t‚tt‡fd"d„ƒ q¶ttd#d„ ƒ t dtdˆdƒƒ‰ˆjtˆd d ƒksÒt‚t dtg gƒd$t dtddgddggƒd$t dtt dt  g|d| ggƒd$g}	|	D ]0}|j|jj!d ksBt‚t|jt"ƒs&t‚q&td%d&d'gd&d%d'gd&d'd%ggƒ‰ t	d(d d ƒ}t ddddgˆ ƒ‰t dd)d*d g|ƒ‰ˆ #dˆd d ¡t$ˆd ˆd ˆd  ƒksØt‚tt‡fd+d„ƒ ttˆd  dƒtˆd dƒƒ %d¡t&d,dƒkst‚ttˆd  dƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1     '¡ dkszt‚ttˆd dƒtˆd dƒƒttˆd dƒƒks°t‚ttˆd  d ƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1   kst‚td2d3dgdd2d3gd3dd2ggƒ}ttˆd  dƒtˆd dƒt(ˆ|ƒ@ ƒ %d ¡t&d4d ƒksbt‚ttƒV tˆd  dd!tˆd  ƒksŽt‚tˆd  tˆd dƒƒ %d¡t&d5d ƒks¼t‚W 5 Q R X t	d(d6d6ƒ‰tt‡‡fd7d„ƒ ttd8d„ ƒ ttd9d„ ƒ tt‡fd:d„ƒ tt‡fd;d„ƒ tt)dd6ƒt)d d6ƒdgt)dd ƒt)dd ƒt)dd ƒgdt)dd6ƒt)d d6ƒggƒ}tt*tˆd dƒtˆd dƒtˆd dƒƒtttˆd dƒƒt)dd6ƒƒt(ˆ|ƒ@ ƒt)dd<ƒksÔt‚tt*tˆd dƒtˆd dƒtˆd dƒƒt(ˆ|ƒƒttˆd dƒƒd6 ks&t‚tt+ˆd dƒt,ˆd dƒ@ tˆd dƒt-ˆdddgƒ@ t(ˆ|ƒ@ ƒt)dd6ƒks|t‚tt+ˆd dƒt,ˆd dƒ@ tˆd dƒt-ˆtdƒd=dgƒ@ t(ˆ|ƒ@ ƒt)dd6ƒksÖt‚tt.ˆd dƒt.ˆd dƒ@ tˆd dƒt-ˆdddgƒ@ t(ˆ|ƒ@ ƒtj/ks(t‚tt.ˆd dƒt.ˆd dƒ@ tˆd dƒt-ˆtdƒd=dgƒ@ t(ˆ|ƒ@ ƒtj/ks~t‚tt*tˆd dƒtˆd dƒtˆd dƒƒtˆd dƒƒd>ttˆd dƒƒ ksÔt‚ttj0ddgt)dd ƒt)dd ƒt)dd ƒgdt)dd6ƒt)d d6ƒggƒ}tt)dd6ƒt)d d6ƒdgt)dd ƒt)dd ƒt)dd ƒgdt)dd6ƒt)d d6ƒggƒ}t d|d$}t d|d$}| 1¡ t"d?d@dAgdBdCdDgdEdFdGggƒdH k	s¨t‚| 2¡ dk	sºt‚| 2¡ dk	sÌt‚| 3¡ dddg|fk	sèt‚| 3¡ dddg|fk
st‚| 4¡ dddg|dd…dd…f |dd …dd…f |dd …dd …f fk
sTt‚| 4¡ dddg|tdd g ƒtddg ƒfk
s„t‚tt)ddƒt)ddƒt)ddƒgt)ddIƒtj5t)ddƒgt)d dƒt)d dIƒt)ddIƒggƒ}t d|d$}t"t)dJdKƒt)d<dKƒt)d6dLƒggƒ}|j6|kst‚| 7¡ dks&t‚| 8¡ dks8t‚t	d(d d ƒ}t d|d$}| 6||¡ 9¡ dksjt‚|j:ddM ;||¡ <|¡ 9¡ tj=ks”t‚ttj0ddddgtj5dtj5ddgdtj5dtj5dgddtj5dtj5gdddddggƒ}t d|d$}| 1¡ t"t)d dƒtj0tj5gtj0tdƒtj0gtj5tj0t)d dƒggƒks<t‚| >¡ t"t)d d6ƒt)dd6ƒgtj5tj5gt)dd6ƒt)d d6ƒggƒks€t‚t?ƒ  | @¡  W 5 Q R X tt)ddƒt)dd6ƒt)dd6ƒgt)ddƒdt)ddƒgt)dd6ƒt)dd6ƒt)ddƒggƒ}t d|d$}| 2¡ dkst‚| 1¡ t"t)dNdOƒt)ddPƒt)dQdOƒgt)ddPƒt)dRdPƒt)ddPƒgt)dQdOƒt)ddPƒt)dNdOƒggƒkslt‚t dtg gƒd$‰ˆjdksŽt‚ˆ :¡ tg gƒks¦t‚ˆ A¡ g ks¸t‚ˆ 3¡ g tg gƒfksÔt‚ˆ 4¡ g tg gƒtg gƒtg gƒfks t‚ˆ 7¡ dkst‚ˆ 8¡ dks$t‚tdddddgddddIdgdddddgddIdddgdd dd d6ggƒdI }t d|d$}| A¡ }tBtC|Ž ƒ\}}}|dd gddgd6gfks°t‚|dSks¾t‚|dTksÌt‚tddddIddgddddddgdd6ddddUgdIdddddgddIddddgddddddggƒdI } t d| d$}!|! A¡ }tBtC|Ž ƒ\}}}|dd gdddd6gfkspt‚|dVks~t‚|d1ksŒt‚tdddd ddd dddg
ddIddddddddg
ddddddddd d g
dddd dddUdddg
ddddddddddg
ddddddIddddg
d6dddddddddg
dddd6ddddddg
d dddddddd6dg
ddd6dddddd d g
g
ƒdI }"t d|"d$}#|# A¡ }tBtC|Ž ƒ\}}}|dd dUdWgdgddXdYgdgd6gfksÆt‚|dZksÔt‚|d[ksât‚tdddddgtdƒd dtdƒd ddgdtdƒd dtdƒd dgddtdƒd dtdƒd gddddtdƒggƒ‰ t d\dddd d6gˆ ƒ}$|$ 4¡ \}%}&}'}(|%dd6ddd gks˜t‚|&tddgddggƒks¶t‚|'ttdƒd dgddgdtdƒd ggƒksêt‚|(tdtdƒd dgtdƒd dtdƒd gdtdƒd dggƒks4t‚|$ 3¡ \}%})|%dd6ddd gksXt‚|)tdddddgdddddgtdƒd ddtdƒd dgddtdƒd dtdƒd gdtdƒd dtdƒd dggƒksÖt‚tdd6dddgddd ddgdddddgddd ddgdddd6dggƒd6 ‰ t dˆ d$‰ˆ 7¡ r8t‚ˆ 8¡ sFt‚tddgddggƒ‰ t dˆ d$‰ˆ 7¡ rtt‚ˆ 8¡ s‚t‚tdddgdddgdddggƒd6 ‰ t dˆ d$‰ˆ 7¡ sÀt‚ˆ 8¡ sÎt‚tddgddggƒd ‰ t dˆ d$‰ˆ 7¡ s t‚ˆ 8¡ st‚tdddgdddgdddggƒ‰ t dˆ d$‰ˆ 2¡ rHt‚tddddgddddgddddgddddggƒd ‰ t dˆ d$‰ˆ 2¡ s–t‚tdddddgdddddgdddddgdddddgdddddggƒd ‰ t dˆ d$‰ˆ 2¡ søt‚t dddd g|ƒ}*|* A¡ }tBtC|Ž ƒ\}}}|dgdd gfks<t‚|dVksJt‚|d/ksXt‚|* 3¡ ddd g|fkstt‚|* 4¡ ddd g|dd…dd…f |dd …dd…f |dd …dd …f fksÄt‚ttj5t)dd6ƒt)dd6ƒgt)dd ƒdt)dd ƒgtj5tj5dggƒ‰ t ddddgˆ ƒ‰ttˆd dƒtˆd dƒ@ tˆd  dƒ@ tttˆd dƒƒt)dd6ƒƒtttˆd dƒƒt)dd6ƒƒ@ ƒt)dd]ƒksŒt‚ttˆd dƒtˆd dƒB tˆd dƒƒt)dd ƒksÈt‚ttˆd dƒtˆd dƒ@ tˆd dƒƒtj/ks t‚tt.ˆd dƒtˆd dƒƒt)dd ƒks.t‚tˆd d tˆd dƒƒt)dXd ƒksZt‚tDˆd tˆd dƒƒt)dXdYƒks‚t‚tt‡fd^d„ƒ tt‡ fd_d„ƒ t dd`dadbgˆ ƒ‰ttˆd dƒtˆd dƒ@ tˆd  dƒ@ tttˆd dƒƒt)dd6ƒƒtttˆd dƒƒt)dd6ƒƒ@ ƒt)dd]ƒks0t‚ttˆd dƒtˆd dƒB tˆd dƒƒt)dd ƒkslt‚ttˆd dƒtˆd dƒ@ tˆd dƒƒtj/ks¤t‚tt.ˆd dƒtˆd dƒƒt)dd ƒksÒt‚ˆjjEd }+ˆjjEd },tˆd d tˆd dƒƒ|+d d  d|,d  d     '¡ dks0t‚tDˆd tˆd dƒƒd|+ d  |,d   d  d  d|+ d  d|, d   d d     '¡ dks”t‚tt‡fdcd„ƒ tt)ddIƒt)d dIƒt)ddIƒgt)ddIƒt)dWdIƒt)ddIƒgt)d dIƒt)d dIƒt)d6dIƒggƒ‰ t ddddgˆ ƒ‰ttˆdW ˆd ƒtˆd dƒƒ %d¡t&dddƒksFt‚tt,ˆd  ˆd ƒtˆd dƒƒ %d¡t&d,dƒks~t‚ttFˆd ˆdI ƒtˆd6 dƒƒ %dU¡t&dedUƒks¶t‚t&ttˆdI ˆd ƒtˆd6 dƒƒdfƒt&dtt.ˆdI ˆd ƒtˆd6 dƒƒ dfƒkst‚t&tt,ˆdX ˆdY ƒtˆd  dƒƒdfƒt&dttFˆdX ˆdY ƒtˆd  dƒƒ dfƒksjt‚t&tt+ˆd ˆd6 ƒtˆd dƒƒdfƒt&dttGˆd ˆd6 ƒtˆd dƒƒ dfƒksÄt‚ttˆd ˆdI ƒtˆd dƒƒttˆdI ˆd ƒtˆd dƒƒkst‚tt,ˆd ˆd ƒtˆd dƒƒtt+ˆd ˆd ƒtˆd dƒƒksXt‚ttGˆdW ˆdU ƒtˆd6 dƒƒttFˆdU ˆdW ƒtˆd6 dƒƒks¢t‚t
dgƒ\}+}-},}.tt)ddIƒt)d6dIƒt)ddIƒgt)d dIƒt)d6dIƒt)d dIƒgt)dWdIƒt)ddIƒt)ddIƒggƒ‰ t ddddgˆ ƒ‰ttˆ|+ |-ƒtˆ|, |.ƒƒ}/|/ ;|+dI|-d|,d|.di¡ H¡  %d6¡ttˆdI dƒtˆd dƒƒ %d6¡ks†t‚|/ ;|+dh|-d|,dI|.di¡ H¡  %d6¡ttˆdh dƒtˆdI dƒƒ %d6¡ksÔt‚tt,ˆ|+ |-ƒtˆ|, |.ƒƒ}0ttFˆ|+ |-ƒtˆ|, |.ƒƒ}1|0 ;|+d|-d|,d|.di¡ H¡ |1 ;|+d|-d|,d|.di¡ H¡  diksVt‚ttGˆ|+ |-ƒtˆ|, |.ƒƒ}2tt+ˆ|+ |-ƒtˆ|, |.ƒƒ}3|2 ;|+d6|-d|,d|.di¡ H¡ |3 ;|+d6|-d|,d|.di¡ H¡  diksØt‚dˆd  d ˆd    '¡ dˆd  kst‚dˆd  d ˆd    '¡ ˆd  ks2t‚dd2ˆd    '¡ d%ˆd  ksXt‚dˆd  d2ˆd    '¡ d%ˆd d  ksŠt‚ˆd d ˆd d    '¡ ˆd d ˆd d  ksÄt‚d S )jNÚXÚtT©ÚpositiveÚintegerr   c                   S   s   t dƒS )Né   ©r#   © rE   rE   úh/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/stats/tests/test_stochastic_process.pyÚ<lambda>1   ó    z*test_DiscreteMarkovChain.<locals>.<lambda>c                      s   ˆ ˆƒS ©NrE   rE   ©r>   r?   rE   rF   rG   2   rH   c                      s   ˆ   ¡ S rI   )Úcommunication_classesrE   ©r>   rE   rF   rG   3   rH   c                      s   ˆ   ¡ S rI   )Úcanonical_formrE   rL   rE   rF   rG   4   rH   c                      s   ˆ   ¡ S rI   )Ú	decomposerE   rL   rE   rF   rG   5   rH   Ún)rB   ÚMÚYé   rC   )r   rC   c                      s   t ˆ ƒS rI   )r.   rE   )r?   rE   rF   rG   =   rH   c                      s   t tˆ ƒƒS rI   ©Únextr.   rE   rL   rE   rF   rG   >   rH   za Rainy Cloudy Sunny)Úreal)rC   rR   é   ZHelloZWorldF)Zsympifyéÿÿÿÿé   c                 S   s   g | ]}t d |ƒ‘qS ©rQ   rD   )Ú.0Ústate_spacerE   rE   rF   Ú
<listcomp>F   s     z,test_DiscreteMarkovChain.<locals>.<listcomp>rV   ©Úevaluatec                      s   t tˆ ƒƒS rI   rS   rE   rY   rE   rF   rG   Q   rH   c                   S   s   t dddiƒS )NrQ   rC   rD   rE   rE   rE   rF   rG   S   rH   )Ztrans_probsç      à?çš™™™™™É?ç333333Ó?ÚTÚOneZTwoc                      s   ˆ   ˆ d jˆ d j¡S ©NrC   rR   )Újoint_distributionÚsymbolrE   rY   rE   rF   rG   e   rH   ç
×£p=
×?)r   rR   )rC   r   )rC   rC   )rC   rR   )rR   rR   ç      Ð?g      è?g      Ø?çš™™™™™ñ?é   c                      s,   t ttˆd dƒtˆd dƒtˆˆ ƒ@ ƒƒS )NrV   rR   rC   )Ústrr$   r	   r%   rE   )ÚTSOÚYSrE   rF   rG   q   rH   c                   S   s   t ddddgtdƒƒS )NÚZr   rC   rR   rP   )r#   r   rE   rE   rE   rF   rG   r   rH   c                   S   s   t ddddgtdddƒƒS )Nrn   r   rC   rR   rb   rV   rj   )r#   r   rE   rE   rE   rF   rG   s   rH   c                      s   t ˆ d tˆ d dƒƒS )NrV   rR   é   ©r&   r	   rE   rY   rE   rF   rG   t   rH   c                      s   t ˆ d tˆ d dƒƒS )NrR   rV   rC   rp   rE   rY   rE   rF   rG   u   rH   é   Ú0gš™™™™™¹?é°   éQ   i|ÿÿÿé$   é   iÌÿÿÿiÔÿÿÿiÙÿÿÿéÐ   é}   é
   é   é'   é   )Zcondition_setéV   éK   é   iòÿÿÿé   )TFF)rR   rC   rC   ro   )TFé   é   é	   )TTFTF)rC   rC   rC   rC   rC   ÚDWé   c                      s   t ˆ d tˆ d dƒƒS rd   rp   rE   rL   rE   rF   rG   >  rH   c                      s   t dddgˆ ƒS )Nr>   r   rC   rD   rE   )rb   rE   rF   rG   ?  rH   ÚAÚBÚCc                      s   t ˆ d tˆ d dƒƒS rd   rp   rE   rL   rE   rF   rG   L  rH   g‘aoÜ?g·—4Fë¨â?é   úa b c dé   ç      ð?)Ir#   Ú
isinstancer[   r    ÚAssertionErrorÚ	index_setr   Ú	Naturals0Útransition_probabilitiesr   r   r1   r&   r3   r4   Ú	TypeErrorÚNotImplementedErrorr   r$   r	   Ú
ValueErrorr=   r   r   Ú	enumerater!   Znumber_of_statesr6   ÚUserWarningr2   r   r   r   Úshaper   re   r/   Úroundr   Úsimplifyr%   r   r   r   r   r'   r   ÚZerorc   Zfundamental_matrixZis_absorbing_chainrM   rN   ÚHalfÚlimiting_distributionZ
is_regularZ
is_ergodicÚdoitZstationary_distributionÚsubsÚcontainsÚtrueZabsorbing_probabilitiesr7   Zabsorbing_probabilitesrK   ÚlistÚzipr(   Úargsr   r
   Úevalf)4ZnzZTZZSZZYZÚsymZrainyZcloudyÚsunnyZstate_spacesÚchainsÚirn   ZTSZTOZTO1ZTO2ZTO3ZY2ZY3ZTO4ZY4ÚwÚTS1ZY5ZTO6ZY6ZTO7ZY7ZtuplesÚclassesZ
recurrenceZperiodsZTO8ZY8ZTO9ZY9r„   Zstatesr†   r‡   rˆ   Z
new_matrixZY10ÚaÚcÚbÚdÚqueryÚquery_gtÚquery_leÚquery_geÚquery_ltrE   )rb   rl   r>   rQ   rm   r?   rF   Útest_DiscreteMarkovChain'   s¢   , 
þ(
P"þ 04.ÿÿ
6T >
"8J*&ÿÿ
4ÿ
(ÿÿÿ
(ÿÿÿ
(ÿÿÿ
(ÿÿÿ
V@J2P0R"*RJDP"þ,üüûû÷	÷
,ü4Jüüü
þþ
þ


ýýüüPþ*:ÿÿ
<8.,(*:ÿÿ
<8.FdV888ZZZJJJVNNFF.,&2rµ   c                  C   s|  t dƒstdƒ dd l} |  d¡ t dƒ}|r:|j d¡ tdddgdddgdddggƒ}tddd	d
g|ƒ}tdƒD ]}tt|ƒƒ|j	kstt
‚qttddd	dg|ƒ}tdƒD ]}tt|ƒƒ|j	ksªt
‚qªttjtd	dƒtd	dƒgtd	dƒdtd
dƒgtjtjdggƒ}tddd	d
g|ƒ}tdƒD ]}tt|ƒƒ|j	kst
‚qtdd	ttg|ƒ}tdƒD ]}tt|ƒƒ|j	ksXt
‚qXd S )NZscipyz(SciPy Not installed. Skip sampling testsr   Únumpyr_   r`   ra   rQ   rC   rR   ry   rn   Ú1rj   rV   r>   ÚW)r8   r5   ÚrandomÚseedr   r#   ÚrangerT   r.   r[   rŽ   r   r›   r   r   r   )r¹   r¶   rb   rQ   Zsampsrn   r>   r¸   rE   rE   rF   Útest_sample_stochastic_processp  s0    
 þr¼   c                     sŽ
  t tdƒtdƒtjgtjtjtjgtddƒtddƒtdƒggƒ} tddddg| ƒ}| ¡ ttddƒtd	dƒtd
dƒggƒks€t	‚t tj tjtjgtjtj tjgtjtjtj ggƒ}tddddg|ƒ‰ ˆ j
tddd }}ˆ  |¡|ƒt tjtd| ƒd  tjtd| ƒd  dgtjtd| ƒd  tjtd| ƒd  dgtjt| ƒ td| ƒd  tjtd| ƒd  t| ƒggƒksŽt	‚ttƒL ttˆ dƒdƒtˆ dƒdƒddttˆ dƒdƒtˆ dƒdƒƒksÞt	‚W 5 Q R X ttˆ dƒdƒtˆ dƒdƒƒtdƒd tj kst	‚ttˆ dƒdƒtˆ dƒdƒ@ tˆ dƒdƒ@ tttˆ dƒdƒƒtjƒƒtdd
ƒtdƒd
  tdƒd tj  ks’t	‚tttˆ dƒdƒtˆ dƒdƒ@ tˆ dƒdƒ@ ƒtˆ dƒdƒtˆ dƒdƒ@ tˆ dƒdƒ@ B tttˆ dƒdƒƒtdd
ƒƒtttˆ dƒdƒƒtdd
ƒƒ@ ƒtjks4t	‚tˆ tddƒƒtˆ dƒdƒƒtdƒ d dttddƒƒ  tj ks~t	‚tˆ tddƒƒtˆ dƒdƒƒtjtdƒd  d tdƒd tj  tddƒtdƒd  d tjtdƒd    ksöt	‚tt‡ fdd„ƒ ttˆ dƒdƒtttˆ dƒdƒƒtjƒƒttˆ dƒdƒƒksJt	‚tdddƒ}tddddg|ƒ}|j
}| |¡|ƒt|| ƒksŽt	‚tdtdƒtdƒtdƒg|ƒ}tt|dƒdƒt|dƒdƒƒtdƒd tj ksât	‚tt|dƒtdƒƒt|dƒtdƒƒƒtdƒd tj ks t	‚t tdƒ tddƒtddƒgtddƒtdƒ tddƒgtddƒtddƒtdƒ ggƒ}tddddg|d}	tt|	dƒ|	dƒƒt|	dƒdƒƒ d¡tddƒksÂt	‚tt|	dƒ|	d ƒƒt|	d!ƒdƒƒ d¡td"dƒksút	‚tt|	d#ƒ|	d$ƒƒt|	d
ƒdƒƒ d%¡td&d%ƒks2t	‚ttt|	d'ƒ|	d(ƒƒt|	d)ƒdƒƒd*ƒtdtt|	d'ƒ|	d(ƒƒt|	d)ƒdƒƒ d*ƒksŒt	‚ttt|	d+ƒ|	d,ƒƒt|	d-ƒdƒƒd*ƒtdtt|	d+ƒ|	d,ƒƒt|	d-ƒdƒƒ d*ƒksæt	‚ttt |	d.ƒ|	d/ƒƒt|	d0ƒdƒƒd*ƒtdtt!|	d.ƒ|	d/ƒƒt|	d0ƒdƒƒ d*ƒks@t	‚tt|	d1ƒ|	d2ƒƒt|	d3ƒdƒƒtt|	d2ƒ|	d1ƒƒt|	d3ƒdƒƒksŠt	‚tt|	d4ƒ|	d5ƒƒt|	d6ƒdƒƒtt |	d5ƒ|	d4ƒƒt|	d6ƒdƒƒksÔt	‚tt!|	d7ƒ|	d8ƒƒt|	d9ƒdƒƒtt|	d8ƒ|	d7ƒƒt|	d9ƒdƒƒkst	‚td:ƒ\}
}}}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| "|
d;|d|d<|di¡ #¡  d¡tt|	d;ƒdƒt|	d<ƒdƒƒ d¡ksšt	‚tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| "|
d=|d|d>|di¡ #¡ | "|
d=|d|d>|di¡ #¡  d?k	st	‚tt!|	|
ƒ|ƒt|	|ƒ|ƒƒ}tt |	|
ƒ|ƒt|	|ƒ|ƒƒ}| "|
d@|d|dA|di¡ #¡ | "|
d@|d|dA|di¡ #¡  d?k	sžt	‚d|	dƒ d|	dƒ   $¡ d|	dƒ k	sÌt	‚d|	dƒ d|	dƒ   $¡ |	dƒ k	søt	‚ddB|	dƒ   $¡ dC|	dƒ k
st	‚d|	dƒ dB |	dƒ  $¡ dC|	dƒd  k
sPt	‚|	dƒd |	dƒd   $¡ |	dƒd |	dƒd  k
sŠt	‚d S )DNéþÿÿÿrR   rV   éýÿÿÿrˆ   r   rC   é   r…   rj   r?   T©rA   Fr]   rW   c                      s*   t tˆ dƒdƒtt tˆ dƒdƒƒtjƒƒS )NrC   r   )r$   r	   r   r›   rE   ©ZC2rE   rF   rG   £  rH   z,test_ContinuousMarkovChain.<locals>.<lambda>rX   ÚGrr   r·   Ú2ry   rƒ   )r[   Zgen_matg
×£p=Š@g…ëQ¸…	@g/Ý$•ë?g¥÷¯=³Ö?gö(\Â­X@g;ßO—Î3@gTã¥›Ä &@g…w¹ˆïÄÔ?gš™™™™™@gÓMbX9$@ro   gœ¤ùcZ›å?gHáz®G@gHáz®G@g
×£p=
@r‰   gáz®Gá
@gV-²ñ?gš™™™™™é?gš™™™™™@gR¸…ëQ@gÃõ(\Âù?gF¶óýÔø@gmçû©ñÒ%@g1¬Zd@g—nƒÀ@gÍÌÌÌÌÌ#@goƒÀÊ¡ñ?g{®Gáz@gTã¥›Ä ð?g/Ý$•Ã?rŠ   g333333@g{®Gázü?gffffff*@gR¸…ëQ
@rŒ   g¸…ëQ¸@g333333÷?rh   r_   )%r   r   rš   ZNegativeOnerc   r   r)   rœ   r   rŽ   Zgenerator_matrixr   r‘   r›   r   r6   r–   r$   r	   r2   r   r&   r(   r4   ÚKeyErrorr   r   r˜   r   r   r   r   r   r
   rž   r¤   r™   )ZT1ZC1ZT2r†   r?   rª   ZCS1ZC3rÂ   rˆ   r¬   r®   r­   r¯   r°   r±   r²   r³   r´   rE   rÁ   rF   Útest_ContinuousMarkovChain‹  s„    þ.8:,<þ
P6*ÿ&ÿ
.(ÿ:þþ
JB*ÿB 6>V888ZZZJJJNFF.,&2rÅ   c                     s(  t ddddd‰ ˆ jtddƒks$t‚ˆ jtjks4t‚ˆ jdksBt‚ˆ jdksPt‚t dt	ddƒdd	d} | jtdd	ƒkszt‚t
d
ƒ\}}t| d | d | d   ƒ|d d d| | d  |d  d|d  d  d| d  ksæt‚t
dddd\‰}tˆ ˆ tƒst‚ttdd„ ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ ˆ  ˆ d ˆ d ¡ttˆ d ˆ d ftdtˆ d dƒfdtˆ d dƒfdƒtdtˆ d dƒfdtˆ d dƒfdƒ ƒƒksÀt‚ˆ  dˆ d ¡ttˆ d ˆ d ftdtˆ d dƒfdtˆ d dƒfdƒtdtˆ d dƒfdtˆ d dƒfdƒ ƒƒks<t‚ˆ d ˆ d  ˆ d  }tt|dƒƒ d¡tddƒksxt‚tt|dƒƒ d¡tddƒksœt‚tt|dƒƒ d¡dksºt‚tt|dƒƒ d¡tddƒksÞt‚ttˆ d dƒtˆ d dƒ@ tˆ d dƒ@ tˆ d dƒ@ ƒ d¡tddƒks0t‚tdˆ d  ˆ d  ƒ d¡tddƒks^t‚tdˆ d  ˆ d  d ƒ d¡tddƒkst‚tˆ d ˆ d  ˆ d  ƒ d¡tddƒksÂt‚tˆ d dktˆ d dƒtˆ d dƒ@ ƒ d¡tddƒkst‚tˆ d ƒdkst‚tˆ d dkƒ d¡tddƒks>t‚tˆ d dk ƒ d¡tddƒksdt‚tˆ d dkˆ d dkƒ d¡tddƒks”t‚tˆ d ˆ d  dkƒ d¡td dƒksÂt‚tˆ d ˆ d  dkˆ d dk ƒ d¡td dƒksút‚ttˆ d dƒˆ d dkƒd!ks t‚ttˆ d dƒƒdks<t‚ttˆ d dƒˆ d dk ƒdksbt‚tˆ d dktˆ d dƒƒdksˆt‚tˆ d dk tˆ d dƒƒdks®t‚tˆ d dkˆ d d"kƒdksÒt‚tˆ d dkˆ d ƒtdddƒksút‚ttd#d„ ƒ tt‡ fd$d„ƒ tˆ ˆ ˆddfƒ}tˆ ˆ ˆddfƒ}tˆ ˆ d ˆddfƒ}| ¡ ˆ d ˆ d  ˆ d  ˆ d  ˆ d  kst‚| ¡ |ks¢t‚| ¡ ˆ d d ˆ d d  ˆ d d  ksÔt‚ˆ dˆ  jˆ dˆ  ˆhksøt‚ˆ d jˆ d hkst‚ˆ |ˆ  jˆ |ˆ  |ˆhks8t‚dˆ ˆ  dˆ ˆ    ¡ dˆ ˆ  ksft‚dˆ ˆ  dˆ ˆ    ¡ ˆ ˆ  ks’t‚dd%ˆ ˆ    ¡ d&ˆ ˆ  ks¸t‚dˆ ˆ  d% ˆ ˆ   ¡ d&ˆ ˆ d  ksêt‚ˆ ˆ d ˆ ˆ d   ¡ ˆ ˆ d ˆ ˆ d  ks$t‚d S )'Nr‡   g333333ã?rC   r   ©ÚpÚsuccessÚfailurer>   rV   ÚHrb   zH,TrR   rƒ   rj   zt, xTr@   c                   S   s   t dddddS )Nr>   ri   rC   r   rÆ   )r*   rE   rE   rE   rF   rG   Ý  rH   z'test_BernoulliProcess.<locals>.<lambda>c                      s   ˆ ˆƒS rI   rE   rE   ©r‡   r?   rE   rF   rG   Þ  rH   c                      s   ˆ d S )Nr¾   rE   rE   ©r‡   rE   rF   rG   à  rH   gš™™™™™Ù?)r   Tg¸…ëQ¸®?g…ëQ¸…Û?gÍÌÌÌÌÌä?gÍÌÌÌÌÌü?rX   g333333@ry   g¸…ëQ¸î?r…   rg   rŒ   r   c                   S   s   t dƒS )NrV   ©r$   rE   rE   rE   rF   rG     rH   c                      s   t ˆ d dkdƒS )NrV   r   rÍ   rE   rÌ   rE   rF   rG     rH   rh   r_   ) r*   r[   r!   rŽ   r   r   r   rÈ   rÉ   r   r   r&   r   r1   r4   r”   r“   Ú
IndexErrorre   r0   r   r   r	   r$   r˜   r   r   r9   r   r   Zfree_symbolsr™   )r>   rÊ   rb   ÚxrQ   ÚexprZexpr2Zexpr3rE   rË   rF   Útest_BernoulliProcessÍ  s~    `$&&ÿÿ &&ÿÿ$$$R.22@&&0.8&&&&$(62$&.,&2rÑ   c            	   
      sR  t ddƒ‰ ˆ jtjkst‚ˆ jtdtƒks.t‚ˆ jdks<t‚t	ddd\‰‰} }t
ˆ ˆƒtƒsbt‚ˆ  ˆ¡tdˆ ƒks|t‚tƒ  ˆ  ˆ ˆƒ¡ W 5 Q R X ttdd„ ƒ tt‡ ‡fd	d„ƒ tt‡ fd
d„ƒ ˆ  ˆ dƒˆ dƒ¡ttˆ dƒˆ dƒfdˆ dƒ dˆ dƒ  tdƒ tˆ dƒƒtˆ dƒƒ  ƒƒks8t‚ˆ  dd¡ttˆ dƒˆ dƒfdˆ dƒ dˆ dƒ  tdƒ tˆ dƒƒtˆ dƒƒ  ƒƒks˜t‚tˆ ˆƒdk ƒtdˆ ƒksºt‚ttˆ ˆƒdƒtˆt dd¡ƒƒtdƒksêt‚ttˆ ˆƒdƒtˆt dd¡ƒƒ}|dtdƒ ks"t‚ttˆ ˆƒdƒtˆ ˆƒdƒ@ tˆ | ƒdƒ@ tˆ |ƒdƒ@ tˆt dd¡ƒtˆt dd¡ƒ@ t| t dd¡ƒ@ t|t dd¡ƒ@ ƒ|d ks²t‚ttˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dd¡ƒ@ ƒttˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dd¡ƒ@ ƒks<t‚tt‡ ‡‡fdd„ƒ ttˆ dƒdƒƒdtdƒ d kszt‚ttˆ ˆƒdƒtˆt dd¡ƒƒdtdƒ d ks²t‚tˆ ˆƒdktˆt dd¡ƒƒ}tˆ ˆƒdktˆt dd¡ƒƒ}|dtdƒ kst‚||  ¡ dkst‚tttˆ ˆƒdƒˆ ˆƒdk@ ƒtˆt dd¡ƒtˆt dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ  d ksˆt‚ttˆ ˆƒdƒt ˆ ˆƒdƒB tˆt dd¡ƒƒdd tdƒ  ksÎt‚tt‡ ‡‡fd!d„ƒ t!ˆ ˆƒƒdˆ ksþt‚t!ˆ ˆƒd ˆ ˆƒd  ˆ |ƒd  tˆt dd¡ƒtˆt dd¡ƒ@ t|t dd¡ƒ@ ƒd"ksdt‚t!ˆ ˆƒd tˆt dd¡ƒƒdksŽt‚t!| ˆ ˆƒˆ ˆƒ  ˆ ˆƒd ˆ ˆƒd   tˆt dd¡ƒtˆt dd¡ƒ@ ƒt"| ˆ ˆƒˆ ˆƒ  ˆ ˆƒd ˆ ˆƒd   tˆt dd¡ƒtˆt dd¡ƒ@ ƒks8t‚tt‡ ‡fd#d„ƒ t!ˆ ˆƒˆ ˆƒ ˆ ˆƒˆ ˆƒ  tˆt dd¡ƒtˆt dd¡ƒ@ ƒdksœt‚t!ˆ dƒ| t!ˆ dƒƒ  ƒd$|  d ksÊt‚t!| ˆ dƒ | ƒd|  | ksðt‚ttˆ dƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒƒdtdƒ d ks6t‚t d%dƒ}ˆ | ‰ˆjˆ j|j   krjdkspn t‚tt‡ fd&d„ƒ ˆ #dd¡\}}|jdks¢t‚|jdks²t‚tt‡fd'd„ƒ tt‡ ‡fd(d„ƒ tt|dƒ|dƒƒƒ}|tt|ˆƒdƒtˆtddƒƒƒkst‚t|dƒ|dƒkƒ}|t|ˆƒdktˆtddƒƒƒksTt‚t|dƒ|dƒk ƒdksrt‚t|dƒ|dƒkƒ}|tt|ˆƒdƒtˆtddƒƒƒks°t‚t dd)ƒ‰ ttˆ tdƒd ƒdƒtˆ dƒd)ƒ@ ƒtd*ƒt$d+d,ƒ ksút‚ttˆ dƒdƒtˆ tdƒd ƒdƒƒdk	s*t‚ttˆ dƒd)ƒtˆ tdƒd ƒdƒƒttˆ tdƒd ƒdƒƒk	spt‚t ddƒ‰ tˆ tdƒd ƒdk ƒtd-ƒk	s t‚tˆ dƒdk tˆ dƒdƒƒtd.ƒk	sÊt‚ttˆ dƒdƒtˆ dƒdƒƒtd.ƒk	söt‚t ddƒ‰ ttˆ dƒdƒtˆ dƒdƒ@ ƒt$ddƒtdƒ k
s8t‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  ttˆ dƒdƒƒ k
s–t‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  k
sât‚ttˆ dƒdƒtˆ dƒdƒ@ ƒttˆ dƒdƒƒttˆ dƒdƒƒ ks,t‚ttˆ dƒdƒtˆ dƒdƒƒttˆ dƒdƒƒksbt‚dˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ kst‚dˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ks¼t‚dd/ˆ ˆƒ   ¡ d0ˆ ˆƒ ksât‚dˆ ˆƒ d/ ˆ ˆƒ  ¡ d0ˆ ˆƒd  kst‚ˆ ˆƒd ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd  ksNt‚d S )1Nr>   rV   r   út d x yTrÀ   c                   S   s
   t ddƒS ©Nr>   rW   ©r+   rE   rE   rE   rF   rG   #  rH   z%test_PoissonProcess.<locals>.<lambda>c                      s   ˆ ˆ S rI   rE   rE   rJ   rE   rF   rG   $  rH   c                      s   ˆ dƒS )NéûÿÿÿrE   rE   rL   rE   rF   rG   %  rH   rR   ro   rƒ   iñÿÿÿrj   r…   é   iâÿÿÿrC   r¾   rX   iúÿÿÿc                	      sB   t tˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dt¡ƒ@ ƒS )NrR   rV   r   rj   )r$   r	   r   r"   ÚLopenr   rE   ©r>   r¯   r?   rE   rF   rG   =  s   "ÿrt   i÷ÿÿÿéá   i³  r   r‚   iîÿÿÿéê   ru   c                      s   t ˆ ˆƒdkˆ ˆƒˆ ˆƒ ƒS )NrR   rÍ   rE   rØ   rE   rF   rG   L  rH   r~   c                      s    t ˆ ˆƒd tˆt dt¡ƒƒS )NrV   rC   )r&   r   r"   r×   r   rE   rJ   rE   rF   rG   W  rH   r‹   rQ   c                      s   ˆ d S )NrX   rE   rE   rL   rE   rF   rG   b  rH   c                      s   ˆ   dd¡S )NrV   rR   )ÚsplitrE   )rn   rE   rF   rG   f  rH   c                      s0   t tˆ ˆƒdƒtˆt dd¡ƒtˆ dƒdƒ@ ƒS )Nr   rC   rV   )r$   r	   r   r"   r×   rE   rJ   rE   rF   rG   h  rH   ry   éöÿÿÿl    P¬9 iÅJª rW   éüÿÿÿrh   r_   )%r+   r[   r   r   rŽ   r   r"   r   Úlamdar   r   r1   Údistributionr:   r7   r4   r”   r“   rÎ   re   r0   r   r   r   r$   r	   r   r×   ÚRopenr2   r™   r   r   r&   r3   rÛ   r   )	rÏ   ÚyÚresZres1Zres2rQ   ÚNrP   Zres3rE   )r>   rn   r¯   r?   rF   Útest_PoissonProcess  sà    
$6ÿ6ÿ"0"Hÿÿþþ
,ÿ,ÿþ
(8  .ÿÿ
F4ÿÿÿ
*<ÿ<ÿþ
0ÿÿ
.&F
(*(*
@0F
&*,
8^LJ6.,&2rä   c               
      s¦  t dƒ‰ ˆ jtjkst‚ˆ jtdtƒks,t‚tddd\‰} }}t	ˆ ˆƒt
ƒsRt‚ˆ  ˆ¡tdtˆƒƒksnt‚tƒ  ˆ  ˆ ˆƒ¡ W 5 Q R X ttdd„ ƒ tt‡ ‡fdd„ƒ tt‡ fd	d„ƒ ˆ  ˆ d
ƒˆ dƒ¡ttˆ d
ƒˆ dƒftdƒtˆ d
ƒd
  d ƒ tˆ dƒd
  d ƒ dt  ƒƒks.t‚ˆ  dd¡ttˆ dƒˆ dƒftdƒtˆ dƒd
  d ƒ tˆ dƒd
  d ƒ dt  ƒƒks’t‚tˆ ˆƒdk ƒ ¡ tdtd
ƒ d
tˆƒ  ƒd
 tdƒd
  ksØt‚tˆ ˆƒd
ktˆt dd¡ƒƒ ¡ tdƒd
 ttd
ƒd
 ƒd
  ks"t‚tˆ ˆƒdkˆ | ƒdk@ ˆ |ƒd
k@ ˆ |ƒdk@ tˆt dd¡ƒt| t dd
¡ƒ@ t|t d
d¡ƒ@ t|t dd¡ƒ@ ƒ ¡ dttd
ƒd
 ƒ dttd
ƒƒ  dtdtd
ƒ d
 ƒ  dtd
td
ƒ ƒ  d ksút‚tˆ ˆƒd
k ˆ | ƒdk@ tˆt dd
¡ƒt| t d
d¡ƒ@ ƒtˆ | ƒdkˆ ˆƒd
k @ t| t d
d¡ƒtˆt dd
¡ƒ@ ƒks|t‚ttt ˆ ˆƒdk ˆ | ƒdk@ ƒtˆt d
d¡ƒt| t dd¡ƒ@ ƒ ¡ ƒdksÐt‚t!ˆ ˆƒƒdksæt‚t!|ˆ ˆƒˆ | ƒ  ˆ ˆƒd
 ˆ | ƒd
   tˆt dd¡ƒt| t dd
¡ƒ@ ƒt"|ˆ | ƒˆ ˆƒ  ˆ | ƒd
 ˆ ˆƒd
   t| t dd
¡ƒtˆt dd¡ƒ@ ƒkst‚t!ˆ ˆƒ|t!ˆ dƒƒ  ƒdks¶t‚d
ˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ ksät‚d
ˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ kst‚d
dˆ ˆƒ   ¡ dˆ ˆƒ ks6t‚d
ˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd
  ksht‚ˆ ˆƒd
 ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd
  ks¢t‚d S )Nr>   r   rÒ   TrÀ   c                   S   s
   t ddƒS rÓ   rÔ   rE   rE   rE   rF   rG   —  rH   z$test_WienerProcess.<locals>.<lambda>c                      s   ˆ ˆ S rI   rE   rE   rJ   rE   rF   rG   ˜  rH   c                      s   ˆ dƒS )Nr½   rE   rE   rL   rE   rF   rG   ™  rH   rR   rV   ro   rj   r…   r‚   é   rC   r   rq   rX   z--(1 - erf(3*sqrt(2)/2))*(2 - erfc(5/2))/4 + 1rh   r_   )#r,   r[   r   ZRealsrŽ   r   r"   r   r   r   r1   rß   r;   r   r7   r4   r”   r“   rÎ   re   r0   r   r   r   r$   r™   r   r   r×   rà   r2   rk   r   r&   r3   )r¯   rÏ   rá   rE   rJ   rF   Útest_WienerProcess  sp    LÿLÿF,ÿ0"ÿÿÿRý
(ÿ"ÿÿ
.ÿ
þ
<ÿ,"ÿÿ
&.,&2ræ   c               	      sj  t ddd\‰} }}}}td||ƒ‰ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ tˆ ˆƒtƒs\t‚ˆ jt	dt
ƒkspt‚ˆ  ˆ¡t|ˆ d	| ƒkst‚tƒ  ˆ  ˆ ˆƒ¡ W 5 Q R X ˆ  d
ˆ dƒ¡ttˆ d
ƒˆ dƒf|d|  t| ˆ dƒ ƒ t| ˆ d
ƒ ƒ ˆ dƒd| d	   ˆ d
ƒd
| d	   td| ƒtd
| ƒ  ƒƒksLt‚tˆ ˆƒƒ|ˆ | ksjt‚tˆ ˆƒƒ ¡ |ˆ |d  kst‚tˆ ˆƒd ˆ | ƒd  ˆ |ƒd  tˆt	 dd	¡ƒt| t	 d	d¡ƒ@ t|t	 dd¡ƒ@ ƒd| | |d | |d   |d d|d   d|  |d   ks6t‚tˆ ˆƒdktˆt	 dd¡ƒƒ ¡ d	t|d| ƒt|ƒ  kszt‚dˆ ˆƒ dˆ ˆƒ   ¡ d
ˆ ˆƒ ks¨t‚dˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksÔt‚ddˆ ˆƒ   ¡ dˆ ˆƒ ksút‚dˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd  ks,t‚ˆ ˆƒd ˆ ˆƒd   ¡ ˆ ˆƒd	 ˆ ˆƒd  ksft‚d S )Nzt d x y g lTrÀ   r>   c                      s   ˆ ˆ S rI   rE   rE   rJ   rE   rF   rG   Å  rH   z,test_GammaProcess_symbolic.<locals>.<lambda>c                      s   ˆ dƒS )NrW   rE   rE   rL   rE   rF   rG   Æ  rH   r   rC   rX   rV   r‚   rR   rj   rh   r_   )r   r-   r4   r“   rÎ   r   r1   rŽ   r[   r"   r   rß   r<   r7   re   r0   r   r   r   r&   r(   r™   r   r×   rà   r$   r   )r¯   rÏ   rá   ÚgÚlrE   rJ   rF   Útest_GammaProcess_symbolicÁ  sD      Nÿÿÿ&4ÿÿBþ
"ÿ
.,&2ré   c               	   C   s0  t ddd\} }}}tdddƒ}|jtdtƒks4t‚|jtdtƒksHt‚|jdksVt‚|jdksdt‚t	t
dd	„ ƒ t	t
d
d	„ ƒ t	t
dd	„ ƒ t|| ƒdk||ƒdk@ ||ƒdk@ ||ƒdk@ t| t dd¡ƒt|t dd¡ƒ@ t|t dd¡ƒ@ t|t dd¡ƒ@ ƒ ¡ dtdƒ kst‚tt|| ƒdk ||ƒdk@ ƒt| t dd¡ƒt|t dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ d  d ksŠt‚t|| ƒdk|| ƒdk B t| t dd¡ƒƒ ¡ dtdƒ d dtdƒ d  d ksät‚t|| ƒƒd|  ksþt‚t|dƒ|t|dƒƒ  ƒd| d ks,t‚d S )NrÒ   TrÀ   r>   rC   rR   r   c                   S   s   t dddƒS )Nr>   rW   rR   ©r-   rE   rE   rE   rF   rG   ê  rH   z+test_GammaProcess_numeric.<locals>.<lambda>c                   S   s   t dddƒS )Nr>   r   r½   rê   rE   rE   rE   rF   rG   ë  rH   c                   S   s   t dddƒS )Nr>   rW   r½   rê   rE   rE   rE   rF   rG   ì  rH   rj   rV   éx   rÜ   rX   r   r‚   rÝ   r¾   iØ  iøÿÿÿi}ýÿÿr‹   ém   r½   ry   )r   r-   r[   r"   r   rŽ   r   rÞ   r   r4   r”   r$   r   r×   r™   r   r   rà   r&   )r?   r¯   rÏ   rá   r>   rE   rE   rF   Útest_GammaProcess_numericâ  s@    4
ÿÿ
ÿÿþ
ý
,ÿÿ
."ÿ
rí   N)cZsympy.concrete.summationsr   Zsympy.core.containersr   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr	   r
   r   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z(sympy.functions.combinatorial.factorialsr   Z&sympy.functions.elementary.exponentialr   Z#sympy.functions.elementary.integersr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z'sympy.functions.special.error_functionsr   Z'sympy.functions.special.gamma_functionsr   r   Zsympy.logic.boolalgr   r   Zsympy.matrices.denser   Z"sympy.matrices.expressions.matexprr   Zsympy.matrices.immutabler   Zsympy.sets.containsr   Zsympy.sets.fancysetsr    Zsympy.sets.setsr!   r"   Zsympy.statsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Zsympy.stats.joint_rvr/   Zsympy.stats.joint_rv_typesr0   Zsympy.stats.rvr1   Z sympy.stats.symbolic_probabilityr2   r3   Zsympy.testing.pytestr4   r5   r6   r7   Zsympy.externalr8   Zsympy.stats.frv_typesr9   Zsympy.stats.drv_typesr:   Zsympy.stats.crv_typesr;   r<   r=   rµ   r¼   rÅ   rÑ   rä   ræ   ré   rí   rE   rE   rE   rF   Ú<module>   sR    8  KBKu4!