o
    GZŽh›™  ã                   @   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         sH  t dƒ‰tˆjtƒsJ ‚ˆjtjksJ ‚tˆjtƒsJ ‚t	dddd‰tˆˆ t
ƒs,J ‚tˆd ƒtˆd ƒks:J ‚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‘J ‚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 ]u\}
‰tˆjtƒsæJ ‚ˆj||
 ksøˆjt||
 Ž ksøJ ‚ˆjd ksÿJ ‚ttƒ+ ttˆd dƒtˆd dƒdd!ttˆd dƒtˆd dƒƒks'J ‚W d   ƒ n	1 s2w   Y  tˆd ƒtˆd ƒksFJ ‚tt‡fd"d„ƒ qÚttd#d„ ƒ t dtdˆdƒƒ‰ˆjtˆd d ƒksnJ ‚t dt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 ]}|j|jj d ks¥J ‚t|jt!ƒs®J ‚q—tg d%¢g d&¢g d'¢gƒ‰ td(d d ƒ}t dg d)¢ˆ ƒ‰t dg d*¢|ƒ‰ˆ "dˆd d ¡t#ˆd ˆd ˆd  ƒksëJ ‚tt‡fd+d„ƒ ttˆd  dƒtˆd dƒƒ $d¡t%d,dƒksJ ‚ttˆd  dƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1     &¡ dks<J ‚ttˆd dƒtˆd dƒƒttˆd dƒƒksWJ ‚ttˆd  d ƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1   ksJ ‚tg d2¢g d3¢g d4¢gƒ}ttˆd  dƒtˆd dƒt'ˆ|ƒ@ ƒ $d ¡t%d5d ƒks­J ‚ttƒ0 tˆd  dd!tˆd  ƒksÃJ ‚tˆd  tˆd dƒƒ $d¡t%d6d ƒksÚJ ‚W d   ƒ n	1 såw   Y  td(d7d7ƒ‰tt‡‡fd8d„ƒ ttd9d„ ƒ ttd:d„ ƒ tt‡fd;d„ƒ tt‡fd<d„ƒ tt(dd7ƒt(d d7ƒdgt(dd ƒt(dd ƒt(dd ƒgdt(dd7ƒt(d d7ƒggƒ}tt)tˆd dƒtˆd dƒtˆd dƒƒtttˆd dƒƒt(dd7ƒƒt'ˆ|ƒ@ ƒt(dd=ƒksqJ ‚tt)tˆd dƒtˆd dƒtˆd dƒƒt'ˆ|ƒƒttˆd dƒƒd7 ksšJ ‚tt*ˆd dƒt+ˆd dƒ@ tˆd dƒt,ˆg d)¢ƒ@ t'ˆ|ƒ@ ƒt(dd7ƒksÄJ ‚tt*ˆd dƒt+ˆd dƒ@ tˆd dƒt,ˆtdƒd>dgƒ@ t'ˆ|ƒ@ ƒt(dd7ƒksñJ ‚tt-ˆd dƒt-ˆd dƒ@ tˆd dƒt,ˆg d)¢ƒ@ t'ˆ|ƒ@ ƒtj.u sJ ‚tt-ˆd dƒt-ˆd dƒ@ tˆd dƒt,ˆtdƒd>dgƒ@ t'ˆ|ƒ@ ƒtj.u sDJ ‚tt)tˆd dƒtˆd dƒtˆd dƒƒtˆd dƒƒd?ttˆd dƒƒ ksoJ ‚ttj/ddgt(dd ƒt(dd ƒt(dd ƒgdt(dd7ƒt(d d7ƒggƒ}tt(dd7ƒt(d d7ƒdgt(dd ƒt(dd ƒt(dd ƒgdt(dd7ƒt(d d7ƒggƒ}t d|d$}t d|d$}| 0¡ t!g d@¢g dA¢g dB¢gƒdC ksÖJ ‚| 1¡ dksßJ ‚| 1¡ dksèJ ‚| 2¡ g d)¢|fksõJ ‚| 2¡ g d)¢|fksJ ‚| 3¡ g d)¢|dd…dd…f |dd …dd…f |dd …dd …f fks)J ‚| 3¡ g d)¢|tdd g ƒtddg ƒfks@J ‚tt(ddƒt(ddƒt(ddƒgt(ddDƒtj4t(ddƒgt(d dƒt(d dDƒt(ddDƒggƒ}t d|d$}t!t(dEdFƒt(d=dFƒt(d7dGƒggƒ}|j5|ksˆJ ‚| 6¡ dks‘J ‚| 7¡ dksšJ ‚td(d d ƒ}t d|d$}| 5||¡ 8¡ dks³J ‚|j9ddH :||¡ ;|¡ 8¡ tj<ksÈJ ‚ttj/ddddgtj4dtj4ddgdtj4dtj4dgddtj4dtj4gg dI¢gƒ}t d|d$}| 0¡ t!t(d dƒtj/tj4gtj/tdƒtj/gtj4tj/t(d dƒggƒksJ ‚| =¡ t!t(d d7ƒt(dd7ƒgtj4tj4gt(dd7ƒt(d d7ƒggƒks;J ‚t>ƒ  | ?¡  W d   ƒ n	1 sNw   Y  tt(ddƒt(dd7ƒt(dd7ƒgt(ddƒdt(ddƒgt(dd7ƒt(dd7ƒt(ddƒggƒ}t d|d$}| 1¡ dksŠJ ‚| 0¡ t!t(dJdKƒt(ddLƒt(dMdKƒgt(ddLƒt(dNdLƒt(ddLƒgt(dMdKƒt(ddLƒt(dJdKƒggƒks¼J ‚t dtg ƒd$‰ˆjdksÌJ ‚ˆ 9¡ tg gƒksØJ ‚ˆ @¡ g ksáJ ‚ˆ 2¡ g tg ƒfksîJ ‚ˆ 3¡ g tg ƒtg ƒtg ƒfksJ ‚ˆ 6¡ dks
J ‚ˆ 7¡ dksJ ‚tg dO¢g dP¢g dQ¢g dR¢g dS¢gƒdD }t d|d$}| @¡ }tAtB|Ž ƒ\}}}|dd gddgd7gfksJJ ‚|dTksQJ ‚|dUksXJ ‚tg dV¢g dW¢g dX¢g dY¢g dZ¢g d[¢gƒdD } t d| d$}!|! @¡ }tAtB|Ž ƒ\}}}|dd gg d\¢fksJ ‚|d]ks—J ‚|d1ksžJ ‚tg d^¢g d_¢g d`¢g da¢g db¢g dc¢g dd¢g de¢g df¢g dg¢g
ƒdD }"t d|"d$}#|# @¡ }tAtB|Ž ƒ\}}}|g dh¢dgg di¢dgd7gfksèJ ‚|djksïJ ‚|dkksöJ ‚tg dl¢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 dmg dn¢ˆ ƒ}$|$ 3¡ \}%}&}'}(|%g do¢ksHJ ‚|&tddgddggƒksWJ ‚|'ttdƒd dgddgdtdƒd ggƒksqJ ‚|(tdtdƒd dgtdƒd dtdƒd gdtdƒd dggƒks–J ‚|$ 2¡ \}%})|%g do¢ks¥J ‚|)tg dl¢g dp¢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ÞJ ‚tg dq¢g dr¢g ds¢g dt¢g du¢gƒd7 ‰ t dˆ d$‰ˆ 6¡ 	r J ‚ˆ 7¡ 	sJ ‚tddgddggƒ‰ t dˆ d$‰ˆ 6¡ 	rJ ‚ˆ 7¡ 	s%J ‚tg dU¢g dv¢g dw¢gƒd7 ‰ t dˆ d$‰ˆ 6¡ 	sAJ ‚ˆ 7¡ 	sHJ ‚tddgddggƒd ‰ t dˆ d$‰ˆ 6¡ 	saJ ‚ˆ 7¡ 	shJ ‚tg dx¢g dy¢g dz¢gƒ‰ t dˆ d$‰ˆ 1¡ 	r‚J ‚tg d{¢g d|¢g d}¢g d~¢gƒd ‰ t dˆ d$‰ˆ 1¡ 	s¡J ‚tg d¢g d€¢g d¢g d‚¢g dƒ¢gƒd ‰ t dˆ d$‰ˆ 1¡ 	sÃJ ‚t dg d¢|ƒ}*|* @¡ }tAtB|Ž ƒ\}}}|dgdd gfk	säJ ‚|d]k	sëJ ‚|d/k	sòJ ‚|* 2¡ g d¢|fk	sÿJ ‚|* 3¡ g d¢|dd…dd…f |dd …dd…f |dd …dd …f fk
s&J ‚ttj4t(dd7ƒt(dd7ƒgt(dd ƒdt(dd ƒgtj4tj4dggƒ‰ t dg d)¢ˆ ƒ‰ttˆd dƒtˆd dƒ@ tˆd  dƒ@ tttˆd dƒƒt(dd7ƒƒtttˆd dƒƒt(dd7ƒƒ@ ƒt(dd„ƒk
s‰J ‚ttˆd dƒtˆd dƒB tˆd dƒƒt(dd ƒk
s§J ‚ttˆd dƒtˆd dƒ@ tˆd dƒƒtj.u 
sÃJ ‚tt-ˆd dƒtˆd dƒƒt(dd ƒk
sÚJ ‚tˆd d tˆd dƒƒt(d…d ƒk
sðJ ‚tCˆd tˆd dƒƒt(d…d†ƒksJ ‚tt‡fd‡d„ƒ tt‡ fdˆd„ƒ t dg d‰¢ˆ ƒ‰ttˆd dƒtˆd dƒ@ tˆd  dƒ@ tttˆd dƒƒt(dd7ƒƒtttˆd dƒƒt(dd7ƒƒ@ ƒt(dd„ƒksZJ ‚ttˆd dƒtˆd dƒB tˆd dƒƒt(dd ƒksxJ ‚ttˆd dƒtˆd dƒ@ tˆd dƒƒtj.u s”J ‚tt-ˆd dƒtˆd dƒƒt(dd ƒks«J ‚ˆjjDd }+ˆjjDd },tˆd d tˆd dƒƒ|+d d  d|,d  d     &¡ dksÚJ ‚tCˆd tˆd dƒƒd|+ d  |,d   d  d  d|+ d  d|, d   d d     &¡ dksJ ‚tt‡fdŠd„ƒ tt(ddDƒt(d dDƒt(ddDƒgt(ddDƒt(d‹dDƒt(ddDƒgt(d dDƒt(d dDƒt(d7dDƒggƒ‰ t dg d)¢ˆ ƒ‰ttˆd‹ ˆd ƒtˆd dƒƒ $d¡t%dŒdƒksdJ ‚tt+ˆd  ˆd ƒtˆd dƒƒ $d¡t%d,dƒks€J ‚ttEˆd ˆdD ƒtˆd7 dƒƒ $d¡t%dŽdƒksœJ ‚t%ttˆdD ˆd ƒtˆd7 dƒƒdƒt%dtt-ˆdD ˆd ƒtˆd7 dƒƒ dƒksÉJ ‚t%tt+ˆd… ˆd† ƒtˆd  dƒƒdƒt%dttEˆd… ˆd† ƒtˆd  dƒƒ dƒksöJ ‚t%tt*ˆd ˆd7 ƒtˆd dƒƒdƒt%dttFˆd ˆd7 ƒtˆd dƒƒ dƒks#J ‚ttˆd ˆdD ƒtˆd dƒƒttˆdD ˆd ƒtˆd dƒƒksHJ ‚tt+ˆd ˆd ƒtˆd dƒƒtt*ˆd ˆd ƒtˆd dƒƒksmJ ‚ttFˆd‹ ˆd ƒtˆd7 dƒƒttEˆd ˆd‹ ƒtˆd7 dƒƒks’J ‚t	dƒ\}+}-},}.tt(ddDƒt(d7dDƒt(ddDƒgt(d dDƒt(d7dDƒt(d dDƒgt(d‹dDƒt(ddDƒt(ddDƒggƒ‰ t dg d)¢ˆ ƒ‰ttˆ|+ |-ƒtˆ|, |.ƒƒ}/|/ :|+dD|-d|,d|.di¡ G¡  $d7¡ttˆdD dƒtˆd dƒƒ $d7¡ksJ ‚|/ :|+d‘|-d|,dD|.di¡ G¡  $d7¡ttˆd‘ dƒtˆdD dƒƒ $d7¡ks*J ‚tt+ˆ|+ |-ƒtˆ|, |.ƒƒ}0ttEˆ|+ |-ƒtˆ|, |.ƒƒ}1|0 :|+d|-d|,d|.di¡ G¡ |1 :|+d|-d|,d|.di¡ G¡  d’kskJ ‚ttFˆ|+ |-ƒtˆ|, |.ƒƒ}2tt*ˆ|+ |-ƒtˆ|, |.ƒƒ}3|2 :|+d7|-d|,d|.di¡ G¡ |3 :|+d7|-d|,d|.di¡ G¡  d’ks¬J ‚dˆd  d ˆd    &¡ dˆd  ksÃJ ‚dˆd  d ˆd    &¡ ˆd  ksÙJ ‚dd“ˆd    &¡ d”ˆd  ksìJ ‚dˆd  d“ˆd    &¡ d”ˆd d  ksJ ‚ˆd d ˆd d    &¡ ˆd d ˆd d  ks"J ‚d S )•NÚXÚtT©ÚpositiveÚintegerr   c                   S   ó   t dƒS )Né   ©r#   © rF   rF   úX/var/www/auris/lib/python3.10/site-packages/sympy/stats/tests/test_stochastic_process.pyÚ<lambda>1   ó    z*test_DiscreteMarkovChain.<locals>.<lambda>c                      ó   ˆ ˆƒS ©NrF   rF   ©r>   r?   rF   rG   rH   2   rI   c                      ó   ˆ   ¡ S rK   )Úcommunication_classesrF   ©r>   rF   rG   rH   3   rI   c                      rM   rK   )Úcanonical_formrF   rO   rF   rG   rH   4   rI   c                      rM   rK   )Ú	decomposerF   rO   rF   rG   rH   5   rI   Ún)rB   ÚMÚYé   rD   )r   rD   c                      s   t ˆ ƒS rK   )r.   rF   )r?   rF   rG   rH   =   rI   c                      ó   t tˆ ƒƒS rK   ©Únextr.   rF   rO   rF   rG   rH   >   ó    za Rainy Cloudy Sunny)Úreal)rD   rU   é   ZHelloZWorldF)Zsympifyéÿÿÿÿé   c                 S   s   g | ]}t d |ƒ‘qS ©rT   rE   )Ú.0Ústate_spacerF   rF   rG   Ú
<listcomp>F   s    z,test_DiscreteMarkovChain.<locals>.<listcomp>r[   ©Úevaluatec                      rV   rK   rW   rF   r^   rF   rG   rH   Q   rY   c                   S   s   t dddiƒS )NrT   rD   rE   rF   rF   rF   rG   rH   S   s    )Ztrans_probs©ç      à?çš™™™™™É?ç333333Ó?©rf   re   rg   ©rf   rg   re   ÚT©r   rD   rU   )ÚOneZTwor[   c                      s   ˆ   ˆ d jˆ d j¡S ©NrD   rU   )Újoint_distributionÚsymbolrF   r^   rF   rG   rH   e   ó    ç
×£p=
×?)r   rU   )rD   r   )rD   rD   )rD   rU   )rU   rU   )ç      Ð?ç      è?r   )r   rr   rs   )rs   r   rr   g      Ø?çš™™™™™ñ?é   c                      s,   t ttˆd dƒtˆd dƒtˆˆ ƒ@ ƒƒS )Nr[   rU   rD   )Ústrr$   r	   r%   rF   )ÚTSOÚYSrF   rG   rH   q   s   , c                   S   s   t dg d¢tdƒƒS )NÚZrk   rS   )r#   r   rF   rF   rF   rG   rH   r   s    c                   S   s   t dg d¢tdddƒƒS )Nry   rk   rj   r[   ru   )r#   r   rF   rF   rF   rG   rH   s   rp   c                      ó   t ˆ d tˆ d dƒƒS )Nr[   rU   é   ©r&   r	   rF   r^   rF   rG   rH   t   rp   c                      rz   )NrU   r[   rD   r|   rF   r^   rF   rG   rH   u   rp   é   Ú0gš™™™™™¹?)é°   éQ   i|ÿÿÿ)é$   é   iÌÿÿÿ)iÔÿÿÿiÙÿÿÿéÐ   é}   é
   é   é'   é   )Zcondition_set)r   r   r   r   rD   éV   éK   é   iòÿÿÿé   )r   r]   r]   r   r   )r   r   r   r…   r   )r]   r   r]   r   r   )r   r…   r   r   r   )r   r[   r   r[   ru   )TFF)rU   rD   rD   )r   r   r   r…   r   r   )r]   r   r]   r   r   r   )r   ru   r   r   r   r{   )r…   r   r   r   r   r   )r   r…   r   r   r   r   )r   r   r   r]   r]   r   )rD   rU   r]   ru   )TF)
rU   r   r   r[   r   r   r[   rU   r   r   )
r   r…   r   r   r   r   r   r   r   r   )
r   rU   rU   r   r   r   r   r   r[   r[   )
r   r   r   r[   r   r   r{   rD   r   r   )
r   r   r   r   r]   r]   r   r   r   r   )
r   r   r   r   r   r…   r   r   r   r   )
ru   r   r   r]   r   r   rD   r   r   r   )
rU   r   r   ru   r   r   rU   rU   r   r   )
r[   r   rD   r   r   r   r   r   ru   rU   )
r   r   ru   r   r   r   r   r   r[   r[   )r   r[   r{   é   )rU   é   é	   )TTFTF)rD   rD   rD   rD   rD   )rD   r   r   r   r   ÚDW)r   rD   rU   r[   ru   )r   ru   rD   rU   r[   )r   rD   r   r   r   )r   ru   r   r   r   )rD   r   r[   r   r   )r   rU   r   rU   r   )r   r   r[   r   rD   )r   r   r   ru   r   )rU   r   rU   )rD   rD   rU   )r   rD   r   )rD   r   r   )r   r   rD   )rD   rD   r   r   )r   rD   rD   r   )rD   r   r   rD   )r   r   r   rU   )rU   r   r   r   r   )rD   r   rD   r   r   )r   rD   r   rD   r   )r   r   rD   r   rD   )r   r   r   r   rU   é   rŽ   r   c                      ó   t ˆ d tˆ d dƒƒS rm   r|   rF   rO   rF   rG   rH   >  rp   c                      s   t dddgˆ ƒS )Nr>   r   rD   rE   rF   )rj   rF   rG   rH   ?  ó    )ÚAÚBÚCc                      r’   rm   r|   rF   rO   rF   rG   rH   L  rp   r   g‘aoÜ?r{   g·—4Fë¨â?é   úa b c dé   ç      ð?rr   re   )Hr#   Ú
isinstancer`   r    Ú	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   rn   r/   Úroundr   Úsimplifyr%   r   r   r   r   r'   r   ÚZerorl   Zfundamental_matrixZis_absorbing_chainrP   rQ   ÚHalfÚlimiting_distributionZ
is_regularZ
is_ergodicÚdoitZstationary_distributionÚsubsÚcontainsÚtrueZabsorbing_probabilitiesr7   Zabsorbing_probabilitesrN   ÚlistÚzipr(   Úargsr   r
   Úevalf)4ZnzZTZZSZZYZÚsymZrainyZcloudyÚsunnyZstate_spacesÚchainsÚiry   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_ltrF   )rj   rw   r>   rT   rx   r?   rG   Útest_DiscreteMarkovChain'   s¦  *$þ$
Hÿ"þ04.ÿ
ÿ6T>
"0þJ*&ÿ
ÿ4
ÿ(ÿÿ
ÿ(ÿÿ
ÿ(ÿÿ
ÿ(ÿÿ
ÿV@J,N.R"*LJD
ÿP"þ&üüûû÷	÷
&ü4J
üüüþþþýýüüNþ*:ÿ
ÿ<8.,(*:ÿ
ÿ<8.FdV888ZZZJJJVNNFF.,&2>rÂ   c                  C   sh  t dƒstdƒ dd l} |  d¡ t dƒ}|r|j d¡ tg d¢g d¢g d¢gƒ}tdg d	¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v sCJ ‚q6tdg d¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v s]J ‚qPt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g d	¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v s–J ‚q‰tddttg|ƒ}td
ƒD ]}tt|ƒƒ|j	v s±J ‚q¤d S )NZscipyz(SciPy Not installed. Skip sampling testsr   Únumpyrd   rh   ri   rT   rk   r…   ry   )Ú1rD   r   rD   ru   r[   rU   r>   ÚW)r8   r5   ÚrandomÚseedr   r#   ÚrangerX   r.   r`   r   r¨   r   r   r   )rÆ   rÃ   rj   rT   Zsampsry   r>   rÅ   rF   rF   rG   Útest_sample_stochastic_processp  s2   
þÿ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g d¢| ƒ}| ¡ ttddƒtddƒtd	dƒggƒks?J ‚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g d¢|ƒ‰ ˆ 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ÄJ ‚ttƒ* ttˆ dƒdƒtˆ dƒdƒddttˆ dƒdƒtˆ dƒdƒƒksëJ ‚W d   ƒ n1 sõw   Y  ttˆ dƒdƒtˆ dƒdƒƒtdƒd tj ksJ ‚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sOJ ‚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u s J ‚tˆ tddƒƒtˆ dƒdƒƒtdƒ d dttddƒƒ  tj ksÅJ ‚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J ‚tt‡ fdd„ƒ ttˆ dƒdƒtttˆ dƒdƒƒtjƒƒttˆ dƒdƒƒks+J ‚tdddƒ}tdg d¢|ƒ}|j	}| |¡|ƒt|| ƒksLJ ‚tdtdƒtdƒtdƒg|ƒ}tt|dƒdƒt|dƒdƒƒtdƒd tj ksvJ ‚tt|dƒtdƒƒt|dƒtdƒƒƒtdƒd tj ks•J ‚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g d¢|d}	tt|	dƒ|	dƒƒt|	dƒdƒƒ d¡tddƒksåJ ‚tt|	d ƒ|	d!ƒƒt|	d"ƒdƒƒ d¡td#dƒksJ ‚tt|	d$ƒ|	d%ƒƒt|	d	ƒdƒƒ d&¡td'd&ƒksJ ‚ttt|	d(ƒ|	d)ƒƒt|	d*ƒdƒƒd+ƒtdtt|	d(ƒ|	d)ƒƒt|	d*ƒdƒƒ d+ƒksJJ ‚ttt|	d,ƒ|	d-ƒƒt|	d.ƒdƒƒd+ƒtdtt|	d,ƒ|	d-ƒƒt|	d.ƒdƒƒ d+ƒkswJ ‚ttt|	d/ƒ|	d0ƒƒt|	d1ƒdƒƒd+ƒtdtt |	d/ƒ|	d0ƒƒt|	d1ƒdƒƒ d+ƒks¤J ‚tt|	d2ƒ|	d3ƒƒt|	d4ƒdƒƒtt|	d3ƒ|	d2ƒƒt|	d4ƒdƒƒksÉJ ‚tt|	d5ƒ|	d6ƒƒt|	d7ƒdƒƒtt|	d6ƒ|	d5ƒƒt|	d7ƒdƒƒksîJ ‚tt |	d8ƒ|	d9ƒƒt|	d:ƒdƒƒtt|	d9ƒ|	d8ƒƒt|	d:ƒdƒƒksJ ‚t
d;ƒ\}
}}}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| !|
d<|d|d=|di¡ "¡  d¡tt|	d<ƒdƒt|	d=ƒdƒƒ d¡ksQJ ‚tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| !|
d>|d|d?|di¡ "¡ | !|
d>|d|d?|di¡ "¡  d@ks’J ‚tt |	|
ƒ|ƒt|	|ƒ|ƒƒ}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| !|
dA|d|dB|di¡ "¡ | !|
dA|d|dB|di¡ "¡  d@ksÓJ ‚d|	dƒ d|	dƒ   #¡ d|	dƒ ksêJ ‚d|	dƒ d|	dƒ   #¡ |	dƒ ks J ‚ddC|	dƒ   #¡ dD|	dƒ ksJ ‚d|	dƒ dC |	dƒ  #¡ dD|	dƒd  ks,J ‚|	dƒd |	dƒd   #¡ |	dƒd |	dƒd  ksIJ ‚d S )ENéþÿÿÿrU   r[   éýÿÿÿr–   rk   é   r‘   ru   r?   T©rA   r   rD   Frb   r\   c                      s*   t tˆ dƒdƒtt tˆ dƒdƒƒtjƒƒS )NrD   r   )r$   r	   r   r¨   rF   ©ZC2rF   rG   rH   £  s   * z,test_ContinuousMarkovChain.<locals>.<lambda>r]   ÚGr~   rÄ   Ú2r…   r   )r`   Zgen_matg
×£p=Š@g…ëQ¸…	@g/Ý$•ë?g¥÷¯=³Ö?gö(\Â­X@g;ßO—Î3@gTã¥›Ä &@g…w¹ˆïÄÔ?gš™™™™™@gÓMbX9$@r{   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÷?rr   re   )$r   r   r§   ZNegativeOnerl   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Á   rF   rÎ   rG   Útest_ContinuousMarkovChain‹  s†   þ.8:,<þ
Fÿ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J ‚ˆ jtjksJ ‚ˆ jdks!J ‚ˆ jdks(J ‚t dtddƒdd	d} | jtdd	ƒks=J ‚t	d
ƒ\}}t
| d | d | d   ƒ|d d d| | d  |d  d|d  d  d| d  kssJ ‚t	dddd\‰}tˆ ˆ tƒs…J ‚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ÞJ ‚ˆ  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J ‚ˆ d ˆ d  ˆ d  }tt|dƒƒ d¡tddƒks:J ‚tt|dƒƒ d¡tddƒksLJ ‚tt|dƒƒ d¡dks[J ‚tt|dƒƒ d¡tddƒksmJ ‚ttˆ d dƒtˆ d dƒ@ tˆ d dƒ@ tˆ d dƒ@ ƒ d¡tddƒks–J ‚t
dˆ d  ˆ d  ƒ d¡tddƒks­J ‚t
dˆ d  ˆ d  d ƒ d¡tddƒksÆJ ‚t
ˆ d ˆ d  ˆ d  ƒ d¡tddƒksßJ ‚t
ˆ d dktˆ d dƒtˆ d dƒ@ ƒ d¡tddƒksÿJ ‚t
ˆ d ƒdks
J ‚tˆ d dkƒ d¡tddƒksJ ‚tˆ d dk ƒ d¡tddƒks0J ‚tˆ d dkˆ d dkƒ d¡tddƒksHJ ‚tˆ d ˆ d  dkƒ d¡td dƒks_J ‚tˆ d ˆ d  dkˆ d dk ƒ d¡td dƒks{J ‚ttˆ d dƒˆ d dkƒd!ksŽJ ‚ttˆ d dƒƒdksœJ ‚ttˆ d dƒˆ d dk ƒdks¯J ‚tˆ d dktˆ d dƒƒdksÂJ ‚tˆ d dk tˆ d dƒƒdksÕJ ‚tˆ d dkˆ d d"kƒdksçJ ‚tˆ d dkˆ d ƒtdddƒksûJ ‚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sFJ ‚| ¡ |ksOJ ‚| ¡ ˆ d d ˆ d d  ˆ d d  kshJ ‚ˆ dˆ  jˆ dˆ  ˆhkszJ ‚ˆ d jˆ d hks‡J ‚ˆ |ˆ  jˆ |ˆ  |ˆhksšJ ‚dˆ ˆ  dˆ ˆ    ¡ dˆ ˆ  ks±J ‚dˆ ˆ  dˆ ˆ    ¡ ˆ ˆ  ksÇJ ‚dd%ˆ ˆ    ¡ d&ˆ ˆ  ksÚJ ‚dˆ ˆ  d% ˆ ˆ   ¡ d&ˆ ˆ d  ksóJ ‚ˆ ˆ d ˆ ˆ d   ¡ ˆ ˆ d ˆ ˆ d  ksJ ‚d S )'Nr•   g333333ã?rD   r   ©ÚpÚsuccessÚfailurer>   r[   ÚHrj   zH,TrU   r   ru   zt, xTr@   c                   S   s   t dddddS )Nr>   rt   rD   r   rÓ   )r*   rF   rF   rF   rG   rH   Ý  r“   z'test_BernoulliProcess.<locals>.<lambda>c                      rJ   rK   rF   rF   ©r•   r?   rF   rG   rH   Þ  rI   c                      s   ˆ d S )NrË   rF   rF   ©r•   rF   rG   rH   à  rI   gš™™™™™Ù?)r   Tg¸…ëQ¸®?g…ëQ¸…Û?gÍÌÌÌÌÌä?gÍÌÌÌÌÌü?r]   g333333@r…   g¸…ëQ¸î?r‘   rq   rš   r   c                   S   rC   )Nr[   ©r$   rF   rF   rF   rG   rH     rI   c                      s   t ˆ d dkdƒS )Nr[   r   rÚ   rF   rÙ   rF   rG   rH     s    rr   re   )r*   r`   r!   rœ   r   r   rÕ   rÖ   r   r   r&   r›   r1   r4   r¡   r    Ú
IndexErrorrn   r0   r   r   r	   r$   r¥   r   r   r9   r   rª   Zfree_symbolsr¦   )r>   r×   rj   ÚxrT   ÚexprZexpr2Zexpr3rF   rØ   rG   Útest_BernoulliProcessÍ  s~   `$&&ÿÿ &&ÿÿ$$$R.22@&&0.8&&&&$(62$&.,&2>rÞ   c            	   
      s`  t ddƒ‰ ˆ jtjksJ ‚ˆ jtdtƒksJ ‚ˆ jdksJ ‚tddd\‰‰} }t	ˆ ˆƒt
ƒs1J ‚ˆ  ˆ¡tdˆ ƒks>J ‚tƒ  ˆ  ˆ ˆƒ¡ W d   ƒ n1 sSw   Y  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s¥J ‚ˆ  dd¡ttˆ dƒˆ dƒfdˆ dƒ dˆ dƒ  tdƒ tˆ dƒƒtˆ dƒƒ  ƒƒksÔJ ‚tˆ ˆƒdk ƒtdˆ ƒksäJ ‚ttˆ ˆƒdƒtˆt dd¡ƒƒtdƒksûJ ‚ttˆ ˆƒdƒtˆt dd¡ƒƒ}|dtdƒ ksJ ‚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_J ‚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¤J ‚tt‡ ‡‡fdd„ƒ ttˆ dƒdƒƒdtdƒ d ksÃJ ‚ttˆ ˆƒdƒtˆt dd¡ƒƒdtdƒ d ksßJ ‚tˆ ˆƒdktˆt dd¡ƒƒ}tˆ ˆƒdktˆt dd¡ƒƒ}|dtdƒ ks
J ‚||  ¡ dksJ ‚tttˆ ˆƒdƒˆ ˆƒdk@ ƒtˆt dd¡ƒtˆt dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ  d ksJJ ‚ttˆ ˆƒdƒtˆ ˆƒdƒB tˆt dd¡ƒƒdd tdƒ  ksmJ ‚tt‡ ‡‡fd!d„ƒ t ˆ ˆƒƒdˆ ks…J ‚t ˆ ˆƒd ˆ ˆƒd  ˆ |ƒd  tˆt dd¡ƒtˆt dd¡ƒ@ t|t dd¡ƒ@ ƒd"ks¸J ‚t ˆ ˆƒd tˆt dd¡ƒƒdksÍJ ‚t | ˆ ˆƒˆ ˆƒ  ˆ ˆƒd ˆ ˆƒd   tˆt dd¡ƒtˆt dd¡ƒ@ ƒt!| ˆ ˆƒˆ ˆƒ  ˆ ˆƒd ˆ ˆƒd   tˆt dd¡ƒtˆt dd¡ƒ@ ƒks"J ‚tt‡ ‡fd#d„ƒ t ˆ ˆƒˆ ˆƒ ˆ ˆƒˆ ˆƒ  tˆt dd¡ƒtˆt dd¡ƒ@ ƒdksTJ ‚t ˆ dƒ| t ˆ dƒƒ  ƒd$|  d kskJ ‚t | ˆ dƒ | ƒd|  | ks~J ‚ttˆ dƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒƒdtdƒ d ks¡J ‚t d%dƒ}ˆ | ‰ˆjˆ j|j   kr¼dks¿J ‚ J ‚tt‡ fd&d„ƒ ˆ "dd¡\}}|jdksØJ ‚|jdksàJ ‚tt‡fd'd„ƒ tt‡ ‡fd(d„ƒ tt|dƒ|dƒƒƒ}|tt|ˆƒdƒtˆtddƒƒƒksJ ‚t|dƒ|dƒkƒ}|t|ˆƒdktˆtddƒƒƒks1J ‚t|dƒ|dƒk ƒdks@J ‚t|dƒ|dƒkƒ}|tt|ˆƒdƒtˆtddƒƒƒks_J ‚t dd)ƒ‰ ttˆ tdƒd ƒdƒtˆ dƒd)ƒ@ ƒtd*ƒt#d+d,ƒ ks„J ‚ttˆ dƒdƒtˆ tdƒd ƒdƒƒdksœJ ‚ttˆ dƒd)ƒtˆ tdƒd ƒdƒƒttˆ tdƒd ƒdƒƒks¿J ‚t ddƒ‰ tˆ tdƒd ƒdk ƒtd-ƒks×J ‚tˆ dƒdk tˆ dƒdƒƒtd.ƒksìJ ‚ttˆ dƒdƒtˆ dƒdƒƒtd.ƒksJ ‚t ddƒ‰ ttˆ dƒdƒtˆ dƒdƒ@ ƒt#ddƒtdƒ ks#J ‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  ttˆ dƒdƒƒ ksRJ ‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  ksxJ ‚ttˆ dƒdƒtˆ dƒdƒ@ ƒttˆ dƒdƒƒttˆ dƒdƒƒ ksJ ‚ttˆ dƒdƒtˆ dƒdƒƒttˆ dƒdƒƒks¸J ‚dˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ ksÏJ ‚dˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksåJ ‚dd/ˆ ˆƒ   ¡ d0ˆ ˆƒ ksøJ ‚dˆ ˆƒ d/ ˆ ˆƒ  ¡ d0ˆ ˆƒd  ksJ ‚ˆ ˆƒd ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd  ks.J ‚d S )1Nr>   r[   r   út d x yTrÍ   c                   S   ó
   t ddƒS ©Nr>   r\   ©r+   rF   rF   rF   rG   rH   #  ó   
 z%test_PoissonProcess.<locals>.<lambda>c                      ó   ˆ ˆ S rK   rF   rF   rL   rF   rG   rH   $  rI   c                      ó   ˆ dƒS )NéûÿÿÿrF   rF   rO   rF   rG   rH   %  rI   rU   r{   r   iñÿÿÿru   r‘   é   iâÿÿÿrD   rË   r]   iúÿÿÿc                	      sB   t tˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dt¡ƒ@ ƒS )NrU   r[   r   ru   )r$   r	   r   r"   ÚLopenr   rF   ©r>   r¼   r?   rF   rG   rH   =  s    "ÿr€   i÷ÿÿÿéá   i³  r   rŽ   iîÿÿÿéê   r   c                      s   t ˆ ˆƒdkˆ ˆƒˆ ˆƒ ƒS )NrU   rÚ   rF   ré   rF   rG   rH   L  s    rŠ   c                      s    t ˆ ˆƒd tˆt dt¡ƒƒS )Nr[   rD   )r&   r   r"   rè   r   rF   rL   rF   rG   rH   W  s     r™   rT   c                      s   ˆ d S )Nr]   rF   rF   rO   rF   rG   rH   b  rI   c                      s   ˆ   dd¡S )Nr[   rU   )ÚsplitrF   )ry   rF   rG   rH   f  rY   c                      s0   t tˆ ˆƒdƒtˆt dd¡ƒtˆ dƒdƒ@ ƒS )Nr   rD   r[   )r$   r	   r   r"   rè   rF   rL   rF   rG   rH   h  s   0 r…   éöÿÿÿl    P¬9 iÅJª r\   éüÿÿÿrr   re   )$r+   r`   r   r   rœ   r"   r   Úlamdar   r›   r1   Údistributionr:   r7   r4   r¡   r    rÛ   rn   r0   r   r   r   r$   r	   r   rè   ÚRopenr2   r¦   r   r   r&   r3   rì   r   )	rÜ   ÚyÚresZres1Zres2rT   ÚNrS   Zres3rF   )r>   ry   r¼   r?   rG   Útest_PoissonProcess  sâ   
ÿ$6ÿ6ÿ ."Hÿÿþ
þ,ÿ,ÿ
þ(8  .ÿ
ÿF4ÿÿ
ÿ*<ÿ<ÿ
þ0ÿ
ÿ.&F
**(*
@0F
&*,
8^LJ6.,&2>rõ   c               
      s´  t dƒ‰ ˆ jtjksJ ‚ˆ jtdtƒksJ ‚tddd\‰} }}tˆ ˆƒt	ƒs)J ‚ˆ  
ˆ¡tdtˆƒƒks7J ‚tƒ  ˆ  
ˆ ˆƒ¡ W d   ƒ n1 sLw   Y  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 J ‚ˆ  dd¡ttˆ dƒˆ dƒftdƒtˆ dƒd
  d ƒ tˆ dƒd
  d ƒ dt  ƒƒksÑJ ‚tˆ ˆƒdk ƒ ¡ tdtd
ƒ d
tˆƒ  ƒd
 tdƒd
  ksóJ ‚tˆ ˆƒd
ktˆt dd¡ƒƒ ¡ tdƒd
 ttd
ƒd
 ƒd
  ksJ ‚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„J ‚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ÅJ ‚tttˆ ˆƒdk ˆ | ƒdk@ ƒtˆt d
d¡ƒt| t dd¡ƒ@ ƒ ¡ ƒdksïJ ‚t ˆ ˆƒƒdksúJ ‚t |ˆ ˆƒˆ | ƒ  ˆ ˆƒd
 ˆ | ƒd
   tˆt dd¡ƒt| t dd
¡ƒ@ ƒt!|ˆ | ƒˆ ˆƒ  ˆ | ƒd
 ˆ ˆƒd
   t| t dd
¡ƒtˆt dd¡ƒ@ ƒksOJ ‚t ˆ ˆƒ|t ˆ dƒƒ  ƒdksbJ ‚d
ˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ ksyJ ‚d
ˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksJ ‚d
dˆ ˆƒ   ¡ dˆ ˆƒ ks¢J ‚d
ˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd
  ks»J ‚ˆ ˆƒd
 ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd
  ksØJ ‚d S )Nr>   r   rß   TrÍ   c                   S   rà   rá   râ   rF   rF   rF   rG   rH   —  rã   z$test_WienerProcess.<locals>.<lambda>c                      rä   rK   rF   rF   rL   rF   rG   rH   ˜  rI   c                      rå   )NrÊ   rF   rF   rO   rF   rG   rH   ™  rI   rU   r[   r{   ru   r‘   rŽ   é   rD   r   r}   r]   z--(1 - erf(3*sqrt(2)/2))*(2 - erfc(5/2))/4 + 1rr   re   )"r,   r`   r   ZRealsrœ   r"   r   r   r›   r1   rð   r;   r   r7   r4   r¡   r    rÛ   rn   r0   r   r   r   r$   r¦   r   r   rè   rñ   r2   rv   r   r&   r3   )r¼   rÜ   rò   rF   rL   rG   Útest_WienerProcess  sx   ÿL
ÿL
ÿD,ÿ0"ÿÿÿR
ý(ÿ"ÿ
ÿ.ÿÿ
þ<ÿ,"ÿ
ÿ&.,&2>r÷   c               	      sx  t ddd\‰} }}}}td||ƒ‰ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ tˆ ˆƒtƒs.J ‚ˆ jtdt	ƒks8J ‚ˆ  
ˆ¡t|ˆ d	| ƒksHJ ‚tƒ  ˆ  
ˆ ˆƒ¡ W d   ƒ n1 s]w   Y  ˆ  d
ˆ dƒ¡ttˆ d
ƒˆ dƒf|d|  t| ˆ dƒ ƒ t| ˆ d
ƒ ƒ ˆ dƒd| d	   ˆ d
ƒd
| d	   td| ƒtd
| ƒ  ƒƒks¯J ‚tˆ ˆƒƒ|ˆ | ks½J ‚tˆ ˆƒƒ ¡ |ˆ |d  ksÏJ ‚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s"J ‚tˆ ˆƒdktˆt dd¡ƒƒ ¡ d	t|d| ƒt|ƒ  ksDJ ‚dˆ ˆƒ dˆ ˆƒ   ¡ d
ˆ ˆƒ ks[J ‚dˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksqJ ‚ddˆ ˆƒ   ¡ dˆ ˆƒ ks„J ‚dˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd  ksJ ‚ˆ ˆƒd ˆ ˆƒd   ¡ ˆ ˆƒd	 ˆ ˆƒd  ksºJ ‚d S )Nzt d x y g lTrÍ   r>   c                      rä   rK   rF   rF   rL   rF   rG   rH   Å  rI   z,test_GammaProcess_symbolic.<locals>.<lambda>c                      rå   )Nr\   rF   rF   rO   rF   rG   rH   Æ  rI   r   rD   r]   r[   rŽ   rU   ru   rr   re   )r   r-   r4   r    rÛ   r›   r1   r`   r"   r   rð   r<   r7   rn   r0   r   r   r   r&   r(   r¦   r   rè   rñ   r$   r   )r¼   rÜ   rò   ÚgÚlrF   rL   rG   Útest_GammaProcess_symbolicÁ  sD    ÿ\ÿÿÿ$4ÿÿB
þ"
ÿ.,&2>rú   c               	   C   s(  t ddd\} }}}tdddƒ}|jtdtƒksJ ‚|jtdtƒks$J ‚|jdks+J ‚|jdks2J ‚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ŽJ ‚t
t|| ƒdk ||ƒdk@ ƒt| t dd¡ƒt|t dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ d  d ksÃJ ‚t
|| ƒdk|| ƒdk B t| t dd¡ƒƒ ¡ dtdƒ d dtdƒ d  d ksïJ ‚t|| ƒƒd|  ksûJ ‚t|dƒ|t|dƒƒ  ƒd| d ksJ ‚d S )Nrß   TrÍ   r>   rD   rU   r   c                   S   ó   t dddƒS )Nr>   r\   rU   ©r-   rF   rF   rF   rG   rH   ê  rY   z+test_GammaProcess_numeric.<locals>.<lambda>c                   S   rû   )Nr>   r   rÊ   rü   rF   rF   rF   rG   rH   ë  rY   c                   S   rû   )Nr>   r\   rÊ   rü   rF   rF   rF   rG   rH   ì  rY   ru   r[   éx   rí   r]   r   rŽ   rî   rË   iØ  iøÿÿÿi}ýÿÿr™   ém   rÊ   r…   )r   r-   r`   r"   r   rœ   rï   r   r4   r¡   r$   r   rè   r¦   r   r   rñ   r&   )r?   r¼   rÜ   rò   r>   rF   rF   rG   Útest_GammaProcess_numericâ  sB   4
ÿÿ
ÿÿþ
ý,ÿ"ÿ."ÿ2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ÿ   rF   rF   rF   rG   Ú<module>   sT     8  KBKu4!