o
    GZŽhàW  ã                   @   s"  d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZmZ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mZmZ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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z: edƒ\Z;Z<Z=eddd\Z>Z?Z@edƒedƒZAZBdd„ ZCdd„ ZDdd „ ZEd!d"„ ZFd#d$„ ZGd%d&„ ZHe:d'd(„ ƒZIe:d)d*„ ƒZJd+d,„ ZKd-d.„ ZLd/d0„ ZMd1d2„ ZNd3d4„ ZOe9d5d6„ ƒZPd7d8„ ZQd9d:„ ZRd;d<„ ZSd=d>„ ZTd?d@„ ZUdAdB„ ZVdCS )Dé    )ÚSum)ÚAdd)Ú
DerivativeÚFunction)ÚMul)ÚIÚRationalÚooÚpi)ÚS)Úsymbols)Ú	factorial)ÚexpÚlog)ÚacoshÚasech)Úsqrt)ÚacosÚasinÚatanÚcosÚsin)Úairyai)Úerf)Úgamma)Ú	integrate)Úfps)ÚO)	Úrational_algorithmÚFormalPowerSeriesÚFormalPowerSeriesProductÚFormalPowerSeriesComposeÚFormalPowerSeriesInverseÚsimpleDEÚrational_independentÚexp_reÚhyper_re)ÚraisesÚXFAILÚslowzx y zzn m kT)ÚintegerÚfÚrc                  C   s  dt d d t d   } t| t tƒdt d   d ttd ƒttƒ  ddfks+J ‚dt  t d  t d  t d t d   } t| t tƒddt d   d t d dfksWJ ‚ttt tt   tt   t d   } t| t tƒtt d   t tt  tt d  t tt   ddfksJ ‚t dt  t d   } t| t tƒd u s£J ‚t| t tddtd	dƒtd
ƒd  t d  td
ƒ d t	j
  td
ƒ d t	j
 t d  td
ƒd t	j
   ddfksâJ ‚dt d dt   d  } t| t tƒd u søJ ‚t| t tddtd	t t d   d td	t t d   d  ddfks J ‚tdt  ƒ} t| t tƒd	t   t ddfks:J ‚tt ƒ} t| t tƒd u sIJ ‚t| t tddttt   d tt t   d  t ddfkslJ ‚t tt ƒ tdt d  ƒd  } t| t tƒd u s‡J ‚t| t tddttt d   d tt t d   d  ttd   ddfks²J ‚tdt  dt   ƒd tt ƒ } t| t tƒd u sÍJ ‚t| t tddd	t   d ttt   d  tt t   d  t	j
 t ddfksûJ ‚ttt ƒt tƒd u sJ ‚d S )Né   é   r   é   iñÿÿÿé   T©Úfulléÿÿÿÿé   é
   )Úxr   Úkr   ÚzÚyÚmr   r   r   ÚHalfr   r   r   r   ©r+   © r=   úM/var/www/auris/lib/python3.10/site-packages/sympy/series/tests/test_formal.pyÚtest_rational_algorithm   sx   
,ÿ(
ÿ$
:ÿÿÿþýÿ8
ÿ

ÿ.
ÿ ,
ÿÿ
ÿ 4ÿÿÿ
ÿr?   c                  C   s   t } | g tƒg ksJ ‚| ttƒttƒgtƒttƒttƒgks J ‚| td ttƒtttƒ td gtƒtd td  tttƒ ttƒ gksGJ ‚| tjtttƒ ttƒttƒt ttƒttƒtgtƒtd tttƒ ttƒ ttƒt ttƒ ttƒgks~J ‚d S )Nr.   r/   r-   )r$   r6   r   r   r   ZOner   )Úrir=   r=   r>   Útest_rational_independentP   s   *$"ÿ42ÿrA   c                  C   s  t ttƒttƒD ]} | ttƒ tttƒtƒ dfksJ ‚ t ttƒttƒD ]} | ttƒtttƒttƒ dfks9J ‚ t tdt ƒttƒD ]} | td tttƒtdƒ tttƒtƒ dfks_J ‚ t ttƒttƒD ]} | ttttƒtƒ td d tttƒttƒ  dfks‡J ‚ t ttƒttƒ ttƒD ]} | dttƒ dtttƒƒ  tttƒttƒ dfks²J ‚ t dt dt  t ttƒD ]} | dt ttƒ td d tttƒtƒ  dfksÞJ ‚ t t	tƒttƒD ]} | t ttƒ tttƒttƒ dfksþJ ‚ d S d S )Nr-   r.   )
r#   r   r6   r+   r   r   r   r   Únr   )ZDEr=   r=   r>   Útest_simpleDEZ   s0   $$2.
ÿ8 6*þrC   c                  C   sr  t tƒ tt tƒtƒ } t| ttƒttƒ ttd ƒ ksJ ‚t tƒtt tƒttƒ } t| ttƒttƒttd ƒ ks=J ‚t tƒtt tƒtƒ tt tƒttƒ } t| ttƒttƒttd ƒ ttd ƒ kshJ ‚tt tƒtƒtt tƒttƒ } t| ttƒttƒttd ƒ ks‰J ‚tt tƒtdƒtt tƒtdƒ tt tƒƒ } t| ttƒttƒttd ƒ ttd ƒ ks·J ‚d S )Nr-   r.   r/   r0   )r+   r6   r   r%   r,   r7   ©Údr=   r=   r>   Útest_exp_ret   s   &$&0$,4rF   c                  C   sÂ  t tƒtt tƒttƒ } t| ttƒttƒtd td  ttd ƒ  ks&J ‚t t tƒ tt tƒttƒ } t| ttƒtd td  ttd ƒ ttƒ ksOJ ‚dt tƒ dtt tƒtƒ  tt tƒttƒ } t| ttƒdt d ttd ƒ td td  ttd ƒ  dttƒ  ksŽJ ‚dt t tƒ td d tt tƒtƒ  } t| ttƒtttƒ dt ttd ƒ  t d ttd ƒ  ksÆJ ‚td d tt tƒtƒ ttd d  tt tƒttƒ  } t| ttƒttd  t ttƒ dt td td   d ttd ƒ  ksJ ‚td d tt tƒtdƒ dt tt tƒttƒ  tt tƒtƒ } t| ttƒttd  td  dt td   t ttƒ t td  td  ttd ƒ  ks_J ‚d S )	Nr-   r.   r/   éþÿÿÿr5   r0   é	   é(   )r+   r6   r   r&   r,   r7   rB   rD   r=   r=   r>   Útest_hyper_re…   s0   44.
>ÿ*
4ÿ:
>
ÿ2ÿ
. ÿÿrJ   c                  C   s   t dƒdksJ ‚t dtƒdksJ ‚t dtdddksJ ‚t dtdddks'J ‚t dt dtd   ƒdt dtd   ks?J ‚t tdt ƒdddtdt ƒksRJ ‚t td t d ƒ} t| tƒscJ ‚| jtd t d kspJ ‚| d dksxJ ‚| d td ks‚J ‚|  d	¡td t d ttd	 ƒ ks—J ‚|  ¡ td t d ks¥J ‚t tdt ƒƒ} t| tƒs´J ‚| jtdt ƒks¿J ‚|  	tt
¡| ksÉJ ‚| d d
… dttd  d td d td	  d	 gksæJ ‚|  t¡tksïJ ‚|  d¡ttd d  td d  td	 d	  td
 d
  ksJ ‚| jjd }| jtd|   t|  | |dtfƒks/J ‚| jd d| d d
… }}t|ƒD ]\}}|d
krK n|| |ksTJ ‚q@ttƒ  t¡} t| tƒseJ ‚|  ¡ ttd d  td
 d  ttd ƒ ks€J ‚ttdd„ ƒ ttdd„ ƒ d S )Nr-   r.   ú+©Údirú-F)ZhyperÚrationalr   r0   r4   r/   é   r3   ©rB   éx   c                   S   s   t tt ƒS ©N)r   r9   r6   r=   r=   r=   r>   Ú<lambda>Ä   ó    ztest_fps.<locals>.<lambda>c                   S   s   t tddS )Nr   rL   )r   r6   r=   r=   r=   r>   rT   Å   rU   )r   r6   r   Ú
isinstancer   ÚfunctionÚtruncater   Ú
polynomialÚsubsr9   Zas_leading_termÚakÚ	variablesÚinfiniter   r	   Ú	enumerater   r'   ÚNotImplementedErrorÚ
ValueError)r+   r7   ÚftÚsÚiÚtr=   r=   r>   Útest_fpsŸ   s@   0&*:D0
6re   c                  C   sn  t dt ƒdt ksJ ‚t td t d td  ddtd t d td  ks*J ‚dtd d td   } t | tƒ ¡ tddƒttddƒ  dtd  d	  d
td  d  dtd  d  dtd  d  ttd ƒ ksqJ ‚dt td  td  td td   } t | tƒ ¡ tjttddƒ  dtd  d	  d
td  d  dtd  d  dtd  d  ttd ƒ ks¾J ‚tdt td   } t | tdd ¡ ttd  dtd   dtd   dtd   ttd ƒ ksñJ ‚dtd dt  d  } t | tdd ¡ tjtd  td d  td d	  td d	  ttd ƒ ks(J ‚tdt ƒ} t | tƒ ¡ ttd d  td d  td d  td d  ttd ƒ ksXJ ‚t | tdd ¡ t | tdd ¡ ksmJ ‚t | tdƒ ¡ tdƒtddƒ td d d  td d d  td d d  td d d  td  ttd d tdfƒ ks°J ‚t | tddd ¡ tdƒtddƒ t d d d  t d d d  t d d d  t d d d  td  ttd d tdfƒ ksùJ ‚ttƒ} t | tdd ¡ ttd d  td d  ttd ƒ ksJ ‚t | tddd ¡ t | tddd ¡ ks4J ‚t | tddd ¡ tdƒtddƒ dtd d  d  dtd d  d  dtd d  d  dtd d  d  td  ttd d tdfƒ ksJ ‚t | tdddd ¡ tdƒtddƒ dt d d  d  dt d d  d  dt d d  d  dt d d  d  td  ttd d tdfƒ ksÓJ ‚tttƒ tdtd  ƒd  } t | tdd ¡ td d td d   ttd ƒ ksJ ‚tdt dt  ƒd ttƒ } t | tddjd!d"dtd  d dtd#  d#  ttd! ƒ ks5J ‚d S )$Nr-   r.   r/   r3   rL   r4   r0   é   é   é1   é   é   é    iA  é@   rP   éq   éñ   Tr1   é   éQ   éD  é¿  )r2   rM   é   é   iw  iq  é)   i	=  é   r5   rQ   é   )	r   r6   rX   r   r   r   r;   r   r   r<   r=   r=   r>   Útest_fps__rationalÈ   s¨   <Fÿ
ÿÿ(Bÿ
ÿÿ:ÿ<
ÿ>
ÿ*0ÿÿÿÿ
ÿ4ÿÿÿÿ
ÿ@
ÿ8ÿÿÿÿ
ÿ<ÿÿÿÿ
ÿ < Lrx   c                  C   s¶  t tƒ} t| tƒ ¡ ttd d  td d  ttd ƒ ks!J ‚ttƒ} t| tƒ ¡ dtd d  td d  ttd ƒ ksBJ ‚ttƒ} t| tƒ ¡ dt td d  td d  td d  td d  ttd ƒ ksqJ ‚ttƒ} t| tƒ ¡ ttd d  td d  ttd ƒ ks’J ‚tttƒƒ} t| tƒ ¡ tt	d ƒttt	d ƒ  td tt	d ƒ d  td tt	d ƒ d  dtd  tt	d ƒ d  td tt	d ƒ d  ttd ƒ ksçJ ‚tt
tƒƒ} t| tƒ ¡ tt ttd  d  ttd  d	  ttd ƒ ksJ ‚tdt ƒ} t| tƒ ¡ t	d t td d  td d  ttd ƒ ks9J ‚tttƒ tdtd  ƒd  } t| td
d ¡ td d td d  ttd ƒ ksgJ ‚tdt ƒ} t| td
d ¡ ttd d  td d  td d  td d  ttd ƒ ks™J ‚ttd ƒ} t| tƒ ¡ dtddƒ ttddƒƒ dt	  dtddƒ td  dttddƒƒ   ttd ƒ ksÕJ ‚ttƒt tƒ } t| tƒ ¡ ttd  td d  td d  ttd ƒ ksÿJ ‚ttƒt tƒ t } t| tƒ ¡ dt td d  td d  td d  ttd ƒ ks/J ‚t tƒttƒ } t| tƒ ¡ tdtd  d  dtd  d  ttd ƒ ksYJ ‚d S )Nr/   rP   r4   rR   r-   r.   r0   é   rg   F©rO   rv   é   éZ   é   )r   r6   r   rX   r   r   r   r   r   r
   r   r   r   r   r   r   r<   r=   r=   r>   Útest_fps__hyperü   sX   ::Bÿ:Jÿÿ
ÿÿHD <>
ÿ"&ÿ
ÿ
ÿDLHr~   c                  C   sv  t d tt ƒ } t| t ƒ ¡ dt d  ddt d    tddƒ t d d  t d d  tt d ƒ ks6J ‚t d tt ƒ } t| t d	d
 ¡ t d t d d  tt d ƒ ksYJ ‚ttt ƒƒt  } t| t ƒ ¡ t t d d  t d d  t d d  t d d  tt d ƒ ksŠJ ‚t d ttt ƒƒ } t| t ƒ ¡ t d t d d  t d d  t d d  tt d ƒ ks¹J ‚d S )Néûÿÿÿr-   r0   rP   r.   rR   é°  é€‰ Frz   r/   r4   ry   éÐ  é€  )	r6   r   r   rX   r   r   r   r   r   r<   r=   r=   r>   Útest_fps_shift,  s    Hÿÿ>ÿ6ÿr„   c                  C   s”  t tt ƒ tdt d  ƒd  } t| t ƒ ¡ t d d t d d  tt d ƒ ks+J ‚tt ƒtt ƒ tt ƒ tdt  ƒ } t| t ƒ ¡ t dt d  d  t d d  t d d  tt d ƒ ksbJ ‚dt  tt ƒ } t| t ƒ ¡ dt  t  t d d  t d d  tt d ƒ ks‹J ‚tt ƒtt ƒ dt d   } t| t ƒ ¡ d	t d d  d
t d  d  dt d  d  dt d  d  tt d ƒ ksÈJ ‚d S )Nr-   r.   r0   rv   rP   r/   r4   rR   rG   rw   rs   ry   éw   )	r6   r   r   r   rX   r   r   r   r   r<   r=   r=   r>   Útest_fps__Add_expr>  s    6$JBJÿr†   c                  C   s„  t tƒ} t| ttƒ| ksJ ‚t| tt ƒ ¡ tdtd  ttfƒks$J ‚ttƒ} t| ttƒ ¡ dtdtd  ttfƒ ks?J ‚t| tt ƒ ¡ dtdtd  ttfƒ ksWJ ‚ttƒ} t| ttdd ¡ ddtd   ddtd    dt  td  tdtd  ttfƒ ksŠJ ‚t| tt dd ¡ ddtd   ddtd    dt  td  tdtd  ttfƒ ksºJ ‚t	dt ƒ} t| ttƒddtd   dd	td	    ddtd    ddtd    dt  t	dt ƒ tdtd  ttfƒ ksýJ ‚t| tt ƒddtd   dd	td	    ddtd    ddtd    dt  t
t  t	dt ƒ tdtd  ttfƒ ks@J ‚d S )
Nr-   rP   r3   Tr1   r4   r/   r.   r0   )r   r6   r   r	   rX   r   r   r   r
   r   r   r<   r=   r=   r>   Útest_fps__asymptoticM  s4   ,.0DÿDÿ
RÿÿN
ÿÿÿr‡   c                  C   sn  t ttƒƒt } t| tƒ ¡ dttƒ ttƒd  ttddƒ d  ttddƒ d  ttddƒ d	  ttd
dƒ d  ttddƒ d  ttd ƒ ksPJ ‚t ttƒƒt } t| tƒ ¡ ttddƒ ttddƒ d  ttddƒ d  ttd
dƒ d  ttddƒ d	  ttd ƒ ks’J ‚tttƒƒtd  } t| tƒ ¡ ttddƒ ttddƒ d  ttj	 d  ttddƒ d  ttddƒ d
  ttddƒ d  ttd
dƒ d  ttddƒ d  ttd ƒ ksïJ ‚t
ttƒƒ} t| tƒ ¡  ¡ dtd  td d  td d  td d  td d  ttƒ ttddƒ d  ttddƒ d  ttddƒ d  ttd
dƒ d	  ttddƒ d  ttd ƒ ksVJ ‚t
ttƒƒt } t| tƒ ¡  ¡ ttd d  td d  td d  td d  ttddƒ  ttddƒ d  ttddƒ d  ttd
dƒ d  ttddƒ d	  ttd ƒ ksµJ ‚d S )Nr-   rP   r/   r.   rR   r4   r€   rw   r   rH   i art   l    LQf éýÿÿÿr3   é   r}   ry   r‚   r0   rƒ   i _7 )r   r   r6   r   rX   r   r   r   r   r;   r   Úexpandr<   r=   r=   r>   Útest_fps__fractionale  sŒ   (ÿÿþþ
þÿ0ÿÿ
ÿÿ,ÿÿÿþþ
þÿBÿÿÿþþ
þ
ÿ@ÿÿÿþ
þÿr‹   c                  C   sÈ   t ddt  ƒ} t| tƒt tƒ t td d  td d  td d  td d  ttd ƒ ks4J ‚t| tddt tƒ t td d  td d  td d  td d  ttd ƒ ksbJ ‚d S )	Nr-   r.   r/   r0   r4   rP   Frz   )r   r6   r   r   r<   r=   r=   r>   Ú!test_fps__logarithmic_singularity„  s   HÿHÿrŒ   c                  C   sR   t tƒ} t| tƒtdƒttƒ td d  dtd  d  ttd ƒ ks'J ‚d S )Nr.   r0   r/   rl   rP   )r   r6   r   r   r   r<   r=   r=   r>   Ú&test_fps__logarithmic_singularity_failŒ  s   Jr   c                  C   sÖ  t t tt d ƒ } t| t ƒ d¡t td  t td  d  tt td  t ƒ ks+J ‚t t tdt  ƒ } t| t ƒ}|jjd }|j	t
d|   t |t   | |dtfƒksYJ ‚t d t tdt  ƒ } t| t dƒ ¡ t d t tdƒ t d td  d  t d td  d  t d td  d	  t d td
  d  t d td  d  tt d td  t dfƒ ks¸J ‚t td  tt ƒ } t| t ƒ ¡ t td  t t d  t td  d  tt td
  t ƒ ksèJ ‚t td  tt ƒ t t tt ƒ  } t| t ƒ ¡ t td  t td   t td  d  t t  t td
  d  t td  d  tt td  t ƒ ks5J ‚t t tt ƒ } t| t tƒ ¡ t td   d t td  d  t t td dt     tdt  t  t d  t tfƒ ksuJ ‚t td  tt ƒ } t| t ƒ ¡ t td  t td d  d  t td d
  d  tt td d  t ƒ ks®J ‚t tt  tt ƒ } t| t ƒ ¡ t tt d  t tt d  d  t tt d  d  tt tt d  t ƒ kséJ ‚d S )Nr.   rg   rP   r-   r   r3   r/   ro   rp   r0   rq   r4   rr   ry   é<   rR   )r6   rB   r   r   rX   r   r   r[   r\   r]   r   r	   r   r   r   r
   r:   )r+   Úfpr7   r=   r=   r>   Útest_fps_symbolic’  s\   B
&ÿNÿÿÿÿ8ÿ$.ÿÿÿ
ÿ8ÿ
ÿH
ÿLÿr   c                  C   sf   t tt ƒ tdt  ƒ } t| t ƒ ¡ dt d  dt d   t d d  t d  tt d ƒ ks1J ‚d S )Nr.   r/   r0   r4   rP   )r6   r   r   r   rX   r   r<   r=   r=   r>   Útest_fps__slow¸  s   Nr‘   c                     sœ  t ttƒƒt ttƒƒ‰ } ˆ |  }|jttƒttƒ ksJ ‚| ¡ dt td d  td d  td d  td d  ttd ƒ ksFJ ‚ˆ d }|jttƒd ksUJ ‚| ¡ dt td d  td d  ttd ƒ ksqJ ‚d|  }|jttƒd ks€J ‚| ¡ dtd d  td d  ttd ƒ ksšJ ‚ˆ t tˆ tƒks¥J ‚|  ¡  d	td d  td d  ttd ƒ ksÀJ ‚ˆ ˆ  tj	u sÉJ ‚ˆ |  }|jttƒttƒ ksÚJ ‚| ¡ d	t td d  td d  td d  td d  ttd ƒ ksJ ‚ˆ d }|jttƒd ksJ ‚| ¡ d	t td d  td d  ttd ƒ ks0J ‚d|  }|jttƒ d ksAJ ‚| ¡ td d td d  ttd ƒ ksZJ ‚t
t‡ fd
d„ƒ t
t‡ fdd„ƒ ˆ d }|jdttƒ ks|J ‚| ¡ dt td d  td d  ttd ƒ ks™J ‚d|  }|jdttƒ ks©J ‚| ¡ ddtd  d  td d  ttd ƒ ksÆJ ‚ˆ |  tˆ | ƒksÒJ ‚ˆ t tˆ tƒksÞJ ‚ˆ  ¡ }|jttƒksìJ ‚| ¡ dtd d  td d  ttd ƒ ksJ ‚|  ¡ }|jttƒ ksJ ‚| ¡ t td d  td d  ttd ƒ ks2J ‚|  ¡  ¡ }|jttƒ ksCJ ‚| ¡ d	td d  td d  ttd ƒ ks^J ‚t tttƒƒƒ}| ¡ }| ¡  ¡ ddttƒ  tj td  td d  td d  td d  td d  ttƒd  ttddƒ d  ttddƒ d  ttddƒ d  ttddƒ d  ttddƒ d  ttd ƒ ksÓJ ‚ˆ  tddf¡tdƒ d ksåJ ‚tˆ tddfƒtdƒ d ks÷J ‚tˆ tƒ}|jttƒ ksJ ‚| ¡ d	td d  td d  ttd ƒ ks"J ‚|  t¡}|jttƒks1J ‚| ¡ ttd d  td d  ttd ƒ ksLJ ‚d S )Nr-   r.   r/   rP   r0   ry   r4   rR   r3   c                      ó   ˆ t ttƒdd S )Nr3   rL   ©r   r   r6   r=   ©Úf1r=   r>   rT   ß  ó    z&test_fps__operations.<locals>.<lambda>c                      r’   )Nr-   ©Zx0r“   r=   r”   r=   r>   rT   à  r–   rI   rg   rv   éð   i`'  i  i *Âé0   i   rw   i ; rH   i ¾n rt   i ø9r   )r   r   r6   r   rW   rX   r   r   r   ZZeror'   r`   r   Údiffr   r   rŠ   r;   r   r   )Úf2ÚfsumZfsubÚfmÚfdÚf3Úfir=   r”   r>   Útest_fps__operations½  s”   Bÿ846B
ÿ:2::686
@
ÿ
ÿÿÿþþþ
ý
ÿ$$
6
:r¡   c                     s  t ttƒƒt ttƒƒt ttƒƒ‰ } }tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ˆ  | t¡‰tˆt	ƒsEJ ‚tˆj
tƒsMJ ‚tˆjtƒsUJ ‚ˆjttƒks^J ‚ˆjttƒksgJ ‚ˆjttƒttƒ kstJ ‚ˆ d¡ttd  td d  ks‡J ‚ˆ d¡ttd  td d  ttd ƒ ks J ‚ˆ d¡ttd  td d  ks³J ‚tt‡fd	d„ƒ tt‡fd
d„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ˆ  |t¡ d¡tdtd  d  ksìJ ‚ˆ  |t¡ d¡tdtd  d  ttd ƒ ksJ ‚d S )Nc                      ó   ˆ   ttƒt¡S rS   )Úproductr   r6   r=   r”   r=   r>   rT     ó    z#test_fps__product.<locals>.<lambda>c                      ó   ˆ   tttƒddtd¡S ©Nr3   rL   r0   ©r£   r   r   r6   r=   r”   r=   r>   rT     ó    c                      r¥   ©Nr-   r—   r0   r§   r=   r”   r=   r>   rT     r¨   c                      ó   ˆ   tttƒƒtd¡S ©Nr0   )r£   r   r   r9   r6   r=   r”   r=   r>   rT     ó    r0   r.   r/   c                      ó
   ˆ   d¡S ©Nr4   ©Z
_eval_termr=   ©Úfprodr=   r>   rT   !  ó   
 c                      ó   ˆ j S rS   ©r]   r=   r°   r=   r>   rT   "  ó    c                      ó
   ˆ   t¡S rS   ©Z_eval_derivativer6   r=   r°   r=   r>   rT   #  r²   c                      r¶   rS   ©r   r6   r=   r°   r=   r>   rT   $  r²   )r   r   r6   r   r   r'   r`   r£   rV   r    Úffpsr   Úgfpsr+   ÚgrW   Ú_eval_termsrX   r   rY   r_   ©r›   rŸ   r=   )r•   r±   r>   Útest_fps__product  s*   (&2&*<r¾   c                      sÄ  t ttƒƒt ttƒƒt ttƒƒ‰ ‰‰tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡‡fdd„ƒ ˆ  ˆt¡‰tˆt	ƒsYJ ‚tˆj
tƒsaJ ‚tˆjtƒsiJ ‚ˆjttƒksrJ ‚ˆjttƒks{J ‚ˆjtttƒƒks†J ‚ˆ d¡d	t td
 d
  td d  td d  ks£J ‚ˆ ¡ d	t td
 d
  td d  td d  ttd ƒ ksÅJ ‚ˆ d¡d	t td
 d
  td d  ttd ƒ ksâJ ‚tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ˆ  ˆt¡ d¡d	t td
 d
  ttd ƒ ks"J ‚ˆ  ˆt¡ d¡d	t td
 d
  td d  td d  td d  td d  ttd ƒ ksVJ ‚ˆ  ˆt¡ d¡d	t td
 d
  td d  td d  ttd ƒ ks~J ‚ˆ ˆt¡ d¡ttd d  ttd ƒ ks˜J ‚ˆ ˆt¡ d¡ttd d  td d  dtd  d  ttd ƒ ksÀJ ‚ˆ ˆt¡ d¡ttd d  td d  ttd ƒ ksàJ ‚d S )Nc                      r¢   rS   )Úcomposer   r6   r=   r”   r=   r>   rT   -  r¤   z#test_fps__compose.<locals>.<lambda>c                      r¥   r¦   ©r¿   r   r   r6   r=   r”   r=   r>   rT   .  r¨   c                      r¥   r©   rÀ   r=   r”   r=   r>   rT   /  r¨   c                      rª   r«   )r¿   r   r   r9   r6   r=   r”   r=   r>   rT   0  r¬   c                      ó   ˆ   ˆt¡S rS   ©r¿   r6   r=   )r•   rŸ   r=   r>   rT   2  rU   c                      rÁ   rS   rÂ   r=   r½   r=   r>   rT   3  rU   rP   r-   r.   r0   rg   r4   r}   c                      r­   r®   r¯   r=   ©Úfcompr=   r>   rT   @  r²   c                      r³   rS   r´   r=   rÃ   r=   r>   rT   A  rµ   c                      r¶   rS   r·   r=   rÃ   r=   r>   rT   B  r²   c                      r¶   rS   r¸   r=   rÃ   r=   r>   rT   C  r²   r˜   rw   r|   r/   r5   i;  )r   r   r6   r   r   r'   r`   r¿   rV   r!   r¹   r   rº   r+   r»   rW   r¼   rX   r   r_   r=   r=   )r•   r›   rŸ   rÄ   r>   Útest_fps__compose*  s>   (:D:8N
ÿ6
ÿ4PDrÅ   c                     sÌ  t ttƒƒt ttƒƒt ttƒƒ‰ } }tt‡ fdd„ƒ |  t¡‰tˆt	ƒs)J ‚tˆj
tƒs1J ‚tt‡fdd„ƒ ˆjttƒksCJ ‚ˆjtt ƒksMJ ‚ˆ d¡dt td d  td d  td	 d
  ksjJ ‚ˆ ¡ dt td d  td d  td	 d
  td d  ttd ƒ ks’J ‚ˆ d¡dt td d  td d  td	 d
  ttd ƒ ksµJ ‚tt‡f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t td d  td d  td	 d
  td d  td d  td d  ttd ƒ ksJ ‚| t¡ ¡ dtd d  dtd	  d
  ttd ƒ ks;J ‚| t¡ d¡dtd d  dtd	  d
  dtd  d  ttd ƒ ksdJ ‚d S )Nc                      r¶   rS   )Úinverser6   r=   r”   r=   r>   rT   S  r²   z#test_fps__inverse.<locals>.<lambda>c                      r³   rS   )rº   r=   ©Úfinvr=   r>   rT   X  rµ   r4   r-   r.   r/   rP   r0   ry   rR   c                      r­   r®   r¯   r=   rÇ   r=   r>   rT   `  r²   c                      r³   rS   )r»   r=   rÇ   r=   r>   rT   a  rµ   c                      r³   rS   r´   r=   rÇ   r=   r>   rT   b  rµ   c                      r¶   rS   r·   r=   rÇ   r=   r>   rT   c  r²   c                      r¶   rS   r¸   r=   rÇ   r=   r>   rT   d  r²   rg   r‚   rw   r€   é=   )r   r   r6   r   r   r'   r`   rÆ   rV   r"   r¹   r   r+   rW   r¼   rX   r   r_   r½   r=   )r•   rÈ   r>   Útest_fps__inverseP  s*   (
:PFZ
ÿ@VrÊ   N)WZsympy.concrete.summationsr   Zsympy.core.addr   Zsympy.core.functionr   r   Zsympy.core.mulr   Zsympy.core.numbersr   r   r	   r
   Zsympy.core.singletonr   Zsympy.core.symbolr   Z(sympy.functions.combinatorial.factorialsr   Z&sympy.functions.elementary.exponentialr   r   Z%sympy.functions.elementary.hyperbolicr   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   r   r   r   Zsympy.functions.special.besselr   Z'sympy.functions.special.error_functionsr   Z'sympy.functions.special.gamma_functionsr   Zsympy.integrals.integralsr   Zsympy.series.formalr   Zsympy.series.orderr   r   r   r    r!   r"   r#   r$   r%   r&   Zsympy.testing.pytestr'   r(   r)   r6   r9   r8   rB   r:   r7   r+   r,   r?   rA   rC   rF   rJ   re   rx   r~   r„   r†   r‡   r‹   rŒ   r   r   r‘   r¡   r¾   rÅ   rÊ   r=   r=   r=   r>   Ú<module>   s\    ,2
)
3
/
&Q&