o
    Ö­jEâ  ã                   @   s‚  d dl Z d dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZmZmZmZ G dd„ dƒZG dd„ dƒZG d	d
„ d
ƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZdd„ Zdddœdd„Zdddœdd„Zdddœdd„Zdddœdd„Zdddœdd„Zdddœd d!„Zdddœd"d#„Z dddœd$d%„Z!dddœd&d'„Z"dddœd(d)„Z#dddœd*d+„Z$dddœd,d-„Z%dddœd.d/„Z&dddœd0d1„Z'dddœd2d3„Z(dddœd4d5„Z)dddœd6d7„Z*dddœd8d9„Z+dddœd:d;„Z,dddœd<d=„Z-dddœd>d?„Z.dddœd@dA„Z/dddœdBdC„Z0dddœdDdE„Z1dddœdFdG„Z2dâdHdI„Z3dddœdJdK„Z4dddœdLdM„Z5dddœdNdO„Z6dddœdPdQ„Z7dddœdRdS„Z8dddœdTdU„Z9dddœdVdW„Z:dddœdXdY„Z;dddœdZd[„Z<dddœd\d]„Z=dddœd^d_„Z>dddœd`da„Z?dddœdbdc„Z@dddœddde„ZAdddœdfdg„ZBdddœdhdi„ZCdddœdjdk„ZDdddœdldm„ZEdddœdndo„ZFdddœdpdq„ZGdddœdrds„ZHdddœdtdu„ZIdddœdvdw„ZJdddœdxdy„ZKdddœdzd{„ZLd|d}„ ZMd~d„ ZNd€d�„ ZOd‚dƒ„ ZPd„d…„ ZQd†d‡„ ZRdˆd‰„ ZSdŠd‹„ ZTdŒd�„ ZUdŽd�„ ZVd�d‘„ ZWd’d“„ ZXd”d•„ ZYd–d—„ ZZd˜d™„ Z[dšd›„ Z\dœd�„ Z]dždŸ„ Z^d d¡„ Z_d¢d£„ Z`d¤d¥„ Zad¦d§„ Zbd¨d©„ Zcdªd«„ Zdd¬d­„ Zed®d¯„ Zfd°d±„ Zgd²d³„ Zhd´dµ„ Zid¶d·„ Zjd¸d¹„ Zkdºd»„ Zld¼d½„ Zmd¾d¿„ ZndÀdÁ„ ZodÂdÃ„ ZpdÄdÅ„ ZqdÆdÇ„ ZrdÈdÉ„ ZsdÊdË„ ZtdÌdÍ„ ZudÎdÏ„ ZvdÐdÑ„ ZwdÒdÓ„ ZxdÔdÕ„ ZydÖd×„ ZzdØdÙ„ Z{dÚdÛ„ Z|dÜdÝ„ Z}dÞdß„ Z~dàdá„ ZdS )ãé    N)Úassert_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_allcloseÚsuppress_warnings)Úspecial)Ú
legendre_pÚlegendre_p_allÚassoc_legendre_pÚassoc_legendre_p_allÚsph_legendre_pÚsph_legendre_p_allc                   @   sR   e Zd Zdd„ Zej dg d¢¡ej dg d¢¡ej dg d¢¡d	d
„ ƒƒƒZdS )ÚTestLegendrec                 C   sÊ   t  d¡}t  d¡}t  d¡}t  d¡}t  d¡}t  d¡}t|jdgƒ t|jddgƒ t|jt g d¢¡d d	d
� t|jt g d¢¡d ƒ t|jt g d¢¡d ƒ t|jt g d¢¡d ƒ d S )Nr   é   é   é   é   é   )r   r   éÿÿÿÿg       @é   )Údecimal)r   r   éýÿÿÿr   )é#   r   iâÿÿÿr   r   g       @)é?   r   iºÿÿÿr   é   r   )r   Úlegendrer   Úcr   ÚnpÚarray)ÚselfÚleg0Úleg1Úleg2Úleg3Úleg4Úleg5© r&   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/special/tests/test_legendre.pyÚtest_legendre   s   





zTestLegendre.test_legendreÚn)r   r   r   r   r   Úzr)gŸ£ŸºÆà?g{Úá¯Éš)@g¾…uãe#Àg bæLdà?g7–f©«ñÅ?Úzi)gà÷o^œˆ#@g"•²1Ó?gÊ7ÛÜ˜~ @gþñ^µ2Ù6Àg6ânµó"ì¿c                 C   sŒ   t ƒ �#}|jtd� t |||d  ¡}t d|||d  ¡}W d   ƒ n1 s)w   Y  t|d |d d ƒ t|d |d d ƒ d S )N©Úcategoryù              ð?r   r   )r   ÚfilterÚDeprecationWarningr   ÚlpnÚclpmnr   )r   r)   r*   r+   ÚsupÚreslpnÚresclpmnr&   r&   r'   Útest_lpn_against_clpmn%   s   ýz#TestLegendre.test_lpn_against_clpmnN)Ú__name__Ú
__module__Ú__qualname__r(   ÚpytestÚmarkÚparametrizer6   r&   r&   r&   r'   r      s    r   c                   @   sZ   e Zd Zej dg d¢¡dd„ ƒZej dg d¢¡ej dg d¢¡dd	„ ƒƒZd
d„ ZdS )ÚTestLegendrePÚshape©©é
   ©r   é	   ©r   r   é   c           	      C   s¬   t j d¡}| dd|¡}| dd|¡}t||dd�\}}}|j|ks%J ‚|j|jks-J ‚|j|jks5J ‚d||  | d| |  ||d  |  }t jj|ddd	� d S )
NéÒ  r   éd   r   r   r   ©Údiff_nç»½×Ùß|Û=©Úatol)	r   ÚrandomÚdefault_rngÚintegersÚuniformr   r>   Útestingr   )	r   r>   Úrngr)   ÚxÚpÚp_jacÚp_hessÚerrr&   r&   r'   Útest_ode4   s   ,zTestLegendreP.test_odeÚn_max©r   r   r   é   é   é    Úx_shapec           
      C   sÖ   t j d¡}| dd|¡}t||dd�\}}}t  |d ¡}t j|ttd|j	d ƒƒd�}|j
t|ƒf|j
 ks:J ‚|j
|j
ksBJ ‚|j
|j
ksJJ ‚d||  | d| |  ||d  |  }	t jj|	ddd	� d S )
NrF   r   r   r   rH   ©Úaxisr   rJ   rK   )r   rM   rN   rP   r	   ÚarangeÚexpand_dimsÚtupleÚrangeÚndimr>   ÚlenrQ   r   )
r   rY   r^   rR   rS   rT   rU   rV   r)   rW   r&   r&   r'   Útest_all_odeD   s   ,zTestLegendreP.test_all_odec                 C   sf   t ƒ �}|jtd� t dd¡\}}W d   ƒ n1 sw   Y  t|g d¢dƒ t|g d¢dƒ d S )Nr,   r   ç      à?)ç      ð?rh   ç      À¿r   )ç        ri   g      ø?)r   r/   r0   r   r1   r   )r   r3   rT   Úpdr&   r&   r'   Útest_legacyV   s   þzTestLegendreP.test_legacyN)	r7   r8   r9   r:   r;   r<   rX   rg   rm   r&   r&   r&   r'   r=   3   s    
r=   c                   @   s   e Zd Zej dg d¢¡ej dddg¡ej dddg¡d	d
„ ƒƒƒZej dg d¢¡ej dddg¡dd„ ƒƒZej dg d¢¡dd„ ƒZej dg d¢¡ej dddg¡dd„ ƒƒZ	ej ddg¡ej ddg¡ej dddg¡dd„ ƒƒƒZ
ej dg d¢¡ej ddg¡dd„ ƒƒZdS )ÚTestAssocLegendrePr>   ©r@   rB   )r   r   rE   rA   Úm_maxr   r   rY   rE   rA   c                 C   sò   t j d¡}| dd|¡}t|||dd�\}}}t  |d ¡}	t j|	ttd|j	d ƒƒd�}	t  
t  |d ¡t  | d¡g¡}
t j|
d	ttd|j	d ƒƒ d�}
t j|d
d�}t|	|
|dd�\}}}t j ||¡ t j ||¡ t j ||¡ d S )NrF   ç®Gáz®ï¿ç®Gáz®ï?r   rH   r   r_   r   ©r   ©r   r   )r   rM   rN   rP   r   ra   rb   rc   rd   re   Úconcatenater
   rQ   r   )r   r>   rY   rp   rR   rS   Úp_allÚ	p_all_jacÚ
p_all_hessr)   ÚmrT   rU   rV   r&   r&   r'   Ú	test_lpmn_   s   ÿ""zTestAssocLegendreP.test_lpmnÚnormTFc           
      C   sÌ   t j d¡}| dd|¡}| dd|¡}| dd|¡}t||||dd�\}}}	|j|ks.J ‚|j|jks6J ‚|	j|jks>J ‚t jjd||  |	 d| | ||d  || d||    |  d	d
d� d S )NrF   r   rA   éöÿÿÿr   r   r   ©r{   rI   çñhãˆµøä>ç:Œ0âŽyE>©ÚrtolrL   )	r   rM   rN   rO   rP   r
   r>   rQ   r   )
r   r>   r{   rR   r)   ry   rS   rT   rU   rV   r&   r&   r'   rX   v   s   .
þzTestAssocLegendreP.test_oder?   c                 C   sø   t j d¡}d}d}| dd|¡}t|||dd�\}}}t  t  |d ¡t  | d¡g¡}	t  |d ¡}
t j|
tt	d|j
d ƒƒd	�}
t j|	d
tt	d|j
d ƒƒ d	�}	t jjd||  | d| | |
|
d  |	|	 d||    |  ddd� d S )NrF   é   rq   rr   r   rH   r   r   r_   rs   r~   r   r€   )r   rM   rN   rP   r   ru   ra   rb   rc   rd   re   rQ   r   )r   r>   rR   rY   rp   rS   rT   rU   rV   ry   r)   r&   r&   r'   Útest_all‰   s   "".
þzTestAssocLegendreP.test_allc                 C   s  t j d¡}| dd|¡}tdd||dd�\}}t j |d t||d�¡ t j |d	 d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d t||d�¡ t j |d t	||d�¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d t
||d�¡ t j |d t||d�¡ t j |d t||d�¡ t j |d t||d�¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d  d
¡ t j |d! t||d�¡ t j |d" t||d�¡ t j |d# t||d�¡ t j |d$ t||d�¡ t j |d% t||d�¡ t j |d& t||d�¡ t j |d' d
¡ t j |d( d
¡ t j |d) t||d�¡ t j |d* t||d�¡ t j |d+ t||d�¡ t j |d, t||d�¡ t j |d- t||d�¡ t j |d. t||d�¡ t j |d/ t||d�¡ t j |d0 t||d�¡ t j |d1 t||d�¡ t j |d2 t||d�¡ t j |d3 t||d�¡ t j |d4 t||d�¡ t j |d t ||d�¡ t j |d	 d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d5 d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d t!||d�¡ t j |d t"||d�¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d t#||d�¡ t j |d t$||d�¡ t j |d t%||d�¡ t j |d t&||d�¡ t j |d d
¡ t j |d d
¡ t j |d d
¡ t j |d  d
¡ t j |d! t'||d�¡ t j |d" t(||d�¡ t j |d# t)||d�¡ t j |d$ t*||d�¡ t j |d% t+||d�¡ t j |d& t,||d�¡ t j |d' d
¡ t j |d( d
¡ t j |d) t-||d�¡ t j |d* t.||d�¡ t j |d+ t/||d�¡ t j |d, t0||d�¡ t j |d- t1||d�¡ t j |d. t2||d�¡ t j |d/ t3||d�¡ t j |d0 t4||d�¡ t j |d1 t5||d�¡ t j |d2 t6||d�¡ t j |d3 t7||d�¡ t j |d4 t8||d�¡ d S )6NrF   rq   rr   r   r   r}   ©r   r   ©r{   rt   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   éþÿÿÿ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   éüÿÿÿ©r   r   ©r   r‹   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r“   ©r   r   ©r   r‹   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r“   ©r   r   ©r   r‹   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r“   ©r   r   ©r   r‹   ©r   r   ©r   r“   )9r   rM   rN   rP   r   rQ   r   Úassoc_legendre_p_0_0Úassoc_legendre_p_1_0Úassoc_legendre_p_1_1Úassoc_legendre_p_1_m1Úassoc_legendre_p_2_0Úassoc_legendre_p_2_1Úassoc_legendre_p_2_2Úassoc_legendre_p_2_m2Úassoc_legendre_p_2_m1Úassoc_legendre_p_3_0Úassoc_legendre_p_3_1Úassoc_legendre_p_3_2Úassoc_legendre_p_3_3Úassoc_legendre_p_3_m3Úassoc_legendre_p_3_m2Úassoc_legendre_p_3_m1Úassoc_legendre_p_4_0Úassoc_legendre_p_4_1Úassoc_legendre_p_4_2Úassoc_legendre_p_4_3Úassoc_legendre_p_4_4Úassoc_legendre_p_4_m4Úassoc_legendre_p_4_m3Úassoc_legendre_p_4_m2Úassoc_legendre_p_4_m1Úassoc_legendre_p_0_0_jacÚassoc_legendre_p_1_0_jacÚassoc_legendre_p_1_1_jacÚassoc_legendre_p_1_m1_jacÚassoc_legendre_p_2_0_jacÚassoc_legendre_p_2_1_jacÚassoc_legendre_p_2_2_jacÚassoc_legendre_p_2_m2_jacÚassoc_legendre_p_2_m1_jacÚassoc_legendre_p_3_0_jacÚassoc_legendre_p_3_1_jacÚassoc_legendre_p_3_2_jacÚassoc_legendre_p_3_3_jacÚassoc_legendre_p_3_m3_jacÚassoc_legendre_p_3_m2_jacÚassoc_legendre_p_3_m1_jacÚassoc_legendre_p_4_0_jacÚassoc_legendre_p_4_1_jacÚassoc_legendre_p_4_2_jacÚassoc_legendre_p_4_3_jacÚassoc_legendre_p_4_4_jacÚassoc_legendre_p_4_m4_jacÚassoc_legendre_p_4_m3_jacÚassoc_legendre_p_4_m2_jacÚassoc_legendre_p_4_m1_jac)r   r>   r{   rR   rS   rT   rU   r&   r&   r'   Útest_specific�   s€  
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿz TestAssocLegendreP.test_specificrS   r   r   c              
   C   sš  t |||dd�\}}t |d ¡}tj |d d …df t||d ƒ| |d  d ¡ tj |d d …df t |dkt||ƒtj d¡¡ tj |d d …df t |dkt||d ƒ |d  |d  | |d  d d¡¡ tj |d d …df t |dkt||d ƒ d d¡¡ tj |d d …df t |dkt||ƒ tj d¡¡ td|d ƒD ]}tj |d d …|f d¡ tj |d d …| f d¡ q­d S )	Nr   rH   r   r   r   r‹   r   r   )	r   r   ra   rQ   r   ÚpowÚwhereÚinfrd   )r   rp   rY   rS   rT   rU   r)   ry   r&   r&   r'   Útest_all_limits;  s*   ÿÿ<ÿ ÿÿþz"TestAssocLegendreP.test_all_limits)r   r   rA   c           
      C   sØ   d}t |||dd�\}}tƒ �S}|jtd� t |||¡\}}t|d ƒD ]}	tj 	||	 |d d …|	f ¡ q%t | ||¡\}}t|d ƒD ]}	tj 	||	 |d d …|	 f ¡ qGW d   ƒ d S 1 sew   Y  d S )Nrh   r   rH   r,   )
r   r   r/   r0   r   Úlpmnrd   r   rQ   r   )
r   rp   rY   rS   rT   rU   r3   Úp_legacyÚp_jac_legacyry   r&   r&   r'   rm   R  s    "ÿ"øzTestAssocLegendreP.test_legacyN)r7   r8   r9   r:   r;   r<   rz   rX   rƒ   rå   ré   rm   r&   r&   r&   r'   rn   ^   s*    
 rn   c                   @   s\   e Zd Zej dg d¢¡ej dddg¡ej dg d¢¡ej dd	d
g¡dd„ ƒƒƒƒZdS )ÚTestMultiAssocLegendrePr>   ))iè  rB   rD   Ú
branch_cutr   r   zz_min, z_max))y      $À      $Ày      $@      $@)r   r   )y       €      $Ày              $@r{   TFc           
      C   s˜  t j d¡}| |j|j|¡d| |j|j|¡  }tdd|||dd�\}}	t j |d t	|||d�¡ t j |d d	¡ t j |d
 d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d t
|||d�¡ t j |d t|||d�¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d t|||d�¡ t j |d t|||d�¡ t j |d t|||d�¡ t j |d t|||d�¡ t j |d d	¡ t j |d d	¡ t j |d d	¡ t j |d  d	¡ t j |d! t|||d�¡ t j |d" t|||d�¡ t j |d# t|||d�¡ t j |d$ t|||d�¡ t j |d% t|||d�¡ t j |d& t|||d�¡ t j |d' d	¡ t j |d( d	¡ t j |d) t|||d�¡ t j |d* t|||d�¡ t j |d+ t|||d�¡ t j |d, t|||d�¡ t j |d- t|||d�¡ t j |d. t|||d�¡ t j |d/ t|||d�¡ t j |d0 t|||d�¡ t j |d1 t|||d�¡ t j |d2 t|||d�¡ t j |d3 t |||d�¡ t j |d4 t!|||d�¡ t j |	d t"|||d�¡ t j |	d d	¡ t j |	d
 d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d t#|||d�¡ t j |	d t$|||d�¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d t%|||d�¡ t j |	d t&|||d�¡ t j |	d t'|||d�¡ t j |	d t(|||d�¡ t j |	d d	¡ t j |	d d	¡ t j |	d d	¡ t j |	d  d	¡ t j |	d! t)|||d�¡ t j |	d" t*|||d�¡ t j |	d# t+|||d�¡ t j |	d$ t,|||d�¡ t j |	d% t-|||d�¡ t j |	d& t.|||d�¡ t j |	d' d	¡ t j |	d( d	¡ t j |	d) t/|||d�¡ t j |	d* t0|||d�¡ t j |	d+ t1|||d�¡ t j |	d, t2|||d�¡ t j |	d- t3|||d�¡ t j |	d. t4|||d�¡ t j |	d/ t5|||d�¡ t j |	d0 t6|||d�¡ t j |	d1 t7|||d�¡ t j |	d2 t8|||d�¡ t j |	d3 t9|||d�¡ t j |	d4 t:|||d�¡ d S )5NrF   r.   r   r   )rî   r{   rI   r„   ©rî   r{   rt   r   r†   r‡   rˆ   r²   r‰   rŠ   rŒ   r�   rŽ   r�   r�   r‘   r’   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   );r   rM   rN   rP   ÚrealÚimagr   rQ   r   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   )
r   r>   rî   Úz_minÚz_maxr{   rR   ÚzrT   rU   r&   r&   r'   rå   d  sŠ  ÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿz%TestMultiAssocLegendreP.test_specificN)r7   r8   r9   r:   r;   r<   rå   r&   r&   r&   r'   rí   c  s    rí   c                   @   s@   e Zd Zej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZdS )	ÚTestSphLegendrePr>   r?   c                 C   s0  t j d¡}| t j t j|¡}tdd|dd�\}}t j |d t|ƒ¡ t j |d d¡ t j |d d¡ t j |d	 d¡ t j |d
 d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d t	|ƒ¡ t j |d t
|ƒ¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d t|ƒ¡ t j |d t|ƒ¡ t j |d t|ƒ¡ t j |d t|ƒ¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d t|ƒ¡ t j |d t|ƒ¡ t j |d  t|ƒ¡ t j |d! t|ƒ¡ t j |d" t|ƒ¡ t j |d# t|ƒ¡ t j |d$ d¡ t j |d% d¡ t j |d& t|ƒ¡ t j |d' t|ƒ¡ t j |d( t|ƒ¡ t j |d) t|ƒ¡ t j |d* t|ƒ¡ t j |d+ t|ƒ¡ t j |d, t|ƒ¡ t j |d- t|ƒ¡ t j |d. t|ƒ¡ t j |d/ t|ƒ¡ t j |d0 t|ƒ¡ t j |d1 t |ƒ¡ t j |d t!|ƒ¡ t j |d d¡ t j |d d¡ t j |d	 d¡ t j |d
 d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d t"|ƒ¡ t j |d t#|ƒ¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d t$|ƒ¡ t j |d t%|ƒ¡ t j |d t&|ƒ¡ t j |d t'|ƒ¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d d¡ t j |d t(|ƒ¡ t j |d t)|ƒ¡ t j |d  t*|ƒ¡ t j |d! t+|ƒ¡ t j |d" t,|ƒ¡ t j |d# t-|ƒ¡ t j |d$ d¡ t j |d% d¡ t j |d& t.|ƒ¡ t j |d' t/|ƒ¡ t j |d( t0|ƒ¡ t j |d) t1|ƒ¡ t j |d* t2|ƒ¡ t j |d+ t3|ƒ¡ t j |d, t4|ƒ¡ t j |d- t5|ƒ¡ t j |d. t6|ƒ¡ t j |d/ t7|ƒ¡ t j |d0 t8|ƒ¡ t j |d1 t9|ƒ¡ d S )2NrF   r   r   rH   r„   rt   r   r†   r‡   rˆ   r‰   rŠ   rŒ   r�   rŽ   r�   r�   r‘   r’   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   ):r   rM   rN   rP   Úpir   rQ   r   Úsph_legendre_p_0_0Úsph_legendre_p_1_0Úsph_legendre_p_1_1Úsph_legendre_p_1_m1Úsph_legendre_p_2_0Úsph_legendre_p_2_1Úsph_legendre_p_2_2Úsph_legendre_p_2_m2Úsph_legendre_p_2_m1Úsph_legendre_p_3_0Úsph_legendre_p_3_1Úsph_legendre_p_3_2Úsph_legendre_p_3_3Úsph_legendre_p_3_m3Úsph_legendre_p_3_m2Úsph_legendre_p_3_m1Úsph_legendre_p_4_0Úsph_legendre_p_4_1Úsph_legendre_p_4_2Úsph_legendre_p_4_3Úsph_legendre_p_4_4Úsph_legendre_p_4_m4Úsph_legendre_p_4_m3Úsph_legendre_p_4_m2Úsph_legendre_p_4_m1Úsph_legendre_p_0_0_jacÚsph_legendre_p_1_0_jacÚsph_legendre_p_1_1_jacÚsph_legendre_p_1_m1_jacÚsph_legendre_p_2_0_jacÚsph_legendre_p_2_1_jacÚsph_legendre_p_2_2_jacÚsph_legendre_p_2_m2_jacÚsph_legendre_p_2_m1_jacÚsph_legendre_p_3_0_jacÚsph_legendre_p_3_1_jacÚsph_legendre_p_3_2_jacÚsph_legendre_p_3_3_jacÚsph_legendre_p_3_m3_jacÚsph_legendre_p_3_m2_jacÚsph_legendre_p_3_m1_jacÚsph_legendre_p_4_0_jacÚsph_legendre_p_4_1_jacÚsph_legendre_p_4_2_jacÚsph_legendre_p_4_3_jacÚsph_legendre_p_4_4_jacÚsph_legendre_p_4_m4_jacÚsph_legendre_p_4_m3_jacÚsph_legendre_p_4_m2_jacÚsph_legendre_p_4_m1_jac)r   r>   rR   ÚthetarT   rU   r&   r&   r'   rå   	  s~  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzTestSphLegendreP.test_specificro   c           	      C   sÚ   t j d¡}| dd|¡}| dd|¡}| t j t j|¡}t|||dd�\}}}|j|ks0J ‚|j|jks8J ‚|j|jks@J ‚t jj	t  
|¡| t  |¡ | ||d  t  
|¡ || t  
|¡  |  dd	d
� d S )NrF   r   rA   r|   r   rH   r   r~   r   r€   )r   rM   rN   rO   rP   rö   r   r>   rQ   r   ÚsinÚcos)	r   r>   rR   r)   ry   r)  rT   rU   rV   r&   r&   r'   rX   ¥  s    *ÿ
þzTestSphLegendreP.test_odeN)r7   r8   r9   r:   r;   r<   rå   rX   r&   r&   r&   r'   rõ     s    
 rõ   c                	   @   s^  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	 dd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zej dejejg¡ej dg d¢¡ej dddg¡ej dddg¡ej dg d¢¡d d!„ ƒƒƒƒƒZej dejg¡ej d"g d#¢¡ej dddg¡ej dg d$¢¡d%d&„ ƒƒƒƒZej dejejg¡ej d"g d#¢¡ej dg d$¢¡d'd(„ ƒƒƒZd)S )*ÚTestLegendreFunctionsc                 C   s  d}t ƒ �}|jtd� t dd|d¡}W d   ƒ n1 sw   Y  t|t d|dd| | d  gdt || d ¡d| t || d ¡ gddd|| d  gg¡t ddd| gd|t || d ¡ dd| | d  t || d ¡ gddd	| gg¡fd
ƒ d S )Ny      à?333333Ó?r,   r   r   ri   rh   r   rk   é   rE   )	r   r/   r0   r   r2   r   r   r   Úsqrt)r   rô   r3   Úclpr&   r&   r'   Ú
test_clpmn¸  s"   þ,þ<þýùz TestLegendreFunctions.test_clpmnc              
   C   sÂ   d}d}d}d}t ƒ �2}|jtd� t |||d|  d¡d ||f }t |||d|  d¡d ||f }W d   ƒ n1 s@w   Y  tt ||g¡t t |||¡t |||¡g¡d	ƒ d S )
NrJ   r   r   rh   r,   r.   r   r   rE   )	r   r/   r0   r   r2   r   r   r   Úlpmv©r   Úepsry   r)   rS   r3   Úclp_plusÚ	clp_minusr&   r&   r'   Útest_clpmn_close_to_real_2È  s   $&ýÿýz0TestLegendreFunctions.test_clpmn_close_to_real_2c              
   C   sê   d}d}d}d}t ƒ �2}|jtd� t |||d|  d¡d ||f }t |||d|  d¡d ||f }W d   ƒ n1 s@w   Y  tt ||g¡t t |||¡t 	d| tj
 ¡ t |||¡t 	d	| tj
 ¡ g¡d
ƒ d S )NrJ   r   r   rh   r,   r.   r   y       €      à¿ù              à?rE   )r   r/   r0   r   r2   r   r   r   r1  Úexprö   r2  r&   r&   r'   Útest_clpmn_close_to_real_3Ø  s   $&ý$ ÿýz0TestLegendreFunctions.test_clpmn_close_to_real_3c                 C   sž   d}d}d}d}t ƒ �:}|jtd� dD ](}tt |||d|  |¡d ||f t |||d|  |¡d ||f dƒ qW d   ƒ d S 1 sHw   Y  d S )NgH¯¼šò×z>r   r.   r,   rš   r   r-  )r   r/   r0   r   r   r2   )r   r3  ry   r)   rS   r3   Útyper&   r&   r'   Útest_clpmn_across_unit_circleè  s   $$ÿÿ"þz3TestLegendreFunctions.test_clpmn_across_unit_circlec              
   C   sÀ   t ƒ �S}|jtd� dD ]A}tdƒD ]:}td|ƒD ]2}t |||¡}t |d ddd …f ¡ ¡ s3J ‚t 	|||¡}t |d ddd …f ¡ ¡ sKJ ‚qqqW d   ƒ d S 1 sYw   Y  d S )Nr,   r–   r   r   )
r   r/   r0   rd   r   r2   r   ÚisinfÚallrê   )r   r3   rô   r)   ry   Úlpr&   r&   r'   Útest_infô  s   "$üÿÿ"þzTestLegendreFunctions.test_infc           	      C   sÀ   g d¢}d}d}t ƒ �K}|jtd� dD ]9}|D ]4}dD ]/}t |||d|  |¡d t |||d|  |¡d  | }tt ||||¡d	 |d
d� qqqW d   ƒ d S 1 sYw   Y  d S )N)y      à?      à?y      à¿      à?y      à¿      à¿y      à?      à¿y      ð?      ð?y      ð¿      ð?y      ð¿      ð¿y      ð?      ð¿r   r   r,   rš   )çü©ñÒMbP?y        ü©ñÒMbP?rh   r   r   g-Cëâ6?)r�   )r   r/   r0   r   r2   r   )	r   Úzvalsry   r)   r3   r:  rô   ÚhÚapprox_derivativer&   r&   r'   Útest_deriv_clpmnÿ  s*   ÿÿþýÿÿ"þz&TestLegendreFunctions.test_deriv_clpmnc                 C   sŒ   t  ddd¡}t|ddƒ t  ddd¡}t|ddƒ tjd	d
�� t  ddd¡}W d   ƒ n1 s2w   Y  |dksBt |¡sDJ ‚d S d S )Nr   r   rh   rj   rE   é(   r@  g�‚ÔIÇÀ?Úignore)r=  r   )r   r1  r   r   ÚerrstateÚisnan)r   r>  r&   r&   r'   Ú	test_lpmv*  s   ÿzTestLegendreFunctions.test_lpmvc                 C   sN   t  ddd¡}t  dd¡}t|d d |d dƒ t|d d |d dƒ d S )Nr   r   rh   r   r   )r   ÚlqmnÚlqnr   )r   ÚlqmnfÚlqfr&   r&   r'   Ú	test_lqmn6  s   zTestLegendreFunctions.test_lqmnc                 C   sR   d}d}|| || fD ]}t  dd|¡d d }d|| d  }t||ƒ qdS )znalgorithm for real arguments changes at 1.0001
           test against analytical result for m=2, n=1
        gq¬‹Ûh ð?gñhãˆµøô>r   r   r   )r   r   N)r   rJ  r   )r   Úx0ÚdeltarS   ÚlqÚexpectedr&   r&   r'   Útest_lqmn_gt1<  s   ýz#TestLegendreFunctions.test_lqmn_gt1c                 C   sX   t  ddd¡\}}t|jdƒ t|jdƒ t  ddd¡\}}t|jdƒ t|jdƒ d S )Nr   gš™™™™™ñ?)r   r   r   )r   r   )r   rJ  r   r>   )r   ÚaÚbr&   r&   r'   Útest_lqmn_shapeG  s   z%TestLegendreFunctions.test_lqmn_shapec                 C   s4   t  dd¡}t|t g d¢¡t g d¢¡fdƒ d S )Nr   rh   )gk+ö—Ý“á?gÙ=yX¨5ç¿gÂ†§WÊ2ê¿)gÚ|a2Uõ?gÛù~j¼tó?gºÚŠýe÷ê¿r   )r   rK  r   r   r   )r   rM  r&   r&   r'   Útest_lqnP  s   ÿÿzTestLegendreFunctions.test_lqnÚfunctionr)   rZ   Ú	z_complexFTÚ	z_inexactÚinput_shape)r&   ©r   ©r   r˜   r�   r™   ©r   r   r   )r   r   r   c                 C   sº   t j d¡}|r|jdd|d�}n|jdd|d�}|r#d| d|  }tƒ �}|jtd	� |||ƒ\}	}
W d
  ƒ n1 s>w   Y  |	j|d f| ksOJ ‚|
j|d f| ks[J ‚d
S )z Tests for correct output shapes.rF   r   r   ©Úsizer   r   r.   r7  r,   N)	r   rM   rN   rO   rP   r   r/   r0   r>   )r   rX  r)   rY  rZ  r[  rR   rô   r3   ÚP_zÚP_d_zr&   r&   r'   Útest_array_inputs_lxnU  s   þz+TestLegendreFunctions.test_array_inputs_lxnzm,n)rt   r�   r‘   )r   r[   )é   r\   )é   r]   )r&   r\  r]  r˜   r�   r™   r^  c           
      C   s‚   t j d¡}|r|jdd|d�}n|jdd|d�}||||ƒ\}}	|j|d |d f| ks0J ‚|	j|d |d f| ks?J ‚dS )ú+Tests for correct output shapes and dtypes.rF   r   r   r_  r   r   N)r   rM   rN   rO   rP   r>   )
r   rX  ry   r)   rZ  r[  rR   rô   ra  rb  r&   r&   r'   Útest_array_inputs_lxmnp  s   "z,TestLegendreFunctions.test_array_inputs_lxmnc           
      C   s®   t j d¡}|jdd|d�}d| d|  }tƒ �}|jtd� ||||ƒ\}}	W d  ƒ n1 s2w   Y  |j|d |d f| ksFJ ‚|	j|d |d f| ksUJ ‚dS )	rf  rF   r   r   r_  r.   r7  r,   N)r   rM   rN   rP   r   r/   r0   r>   )
r   rX  ry   r)   r[  rR   rô   r3   ra  rb  r&   r&   r'   Útest_array_inputs_clxmn‡  s   þ"z-TestLegendreFunctions.test_array_inputs_clxmnN)r7   r8   r9   r0  r6  r9  r;  r?  rD  rI  rN  rS  rV  rW  r:   r;   r<   r   r1   rK  rc  rJ  rg  r2   rh  r&   r&   r&   r'   r,  ·  sR    	þþÿþÿr,  c                 C   s:   |rt  d|  d t  | | ¡ dt  | | ¡  ¡S dS )Nr   r   )Úmathr.  Ú	factorial)r)   ry   r{   r&   r&   r'   Úassoc_legendre_factorž  s   ÿÿrk  r   Frï   c                C   s   t dd|ƒ}t | |¡S ©Nr   ©rk  r   Ú	full_like©rô   rî   r{   Úfacr&   r&   r'   r³   ¥  ó   r³   c                C   s   t dd|ƒ}||  S ©Nr   r   ©rk  ro  r&   r&   r'   r´   ª  s   r´   c             
   C   s~   t  |dkt  t  t  | ¡¡dd¡d¡}t  |dkdd¡}tdd|ƒ}t  t  |dk| |  d d| |   ¡¡}|| | | S ©Nr   r   r   )r   rç   Úsignbitrð   rk  r.  )rô   rî   r{   Úbranch_signÚbranch_cut_signrp  Úwr&   r&   r'   rµ   ¯  s
   ((rµ   c                C   s8   t  |dkdd¡}tdd|ƒ}| | t| |d� d S ©Nr   r   r   ©rî   r   ©r   rç   rk  rµ   ©rô   rî   r{   rw  rp  r&   r&   r'   r¶   ¸  s   
ÿÿr¶   c                C   s$   t dd|ƒ}|d|  |  d  d S ©Nr   r   r   r   rs  ro  r&   r&   r'   r·   ¿  ó   r·   c                C   s$   t dd|ƒ}d| |  t| |d� S ©Nr   r   r   rz  ©rk  rµ   ro  r&   r&   r'   r¸   Ä  s   

ÿr¸   c                C   s6   t  |dkdd¡}tdd|ƒ}d| | d| |    S )Nr   r   r   r   ©r   rç   rk  r|  r&   r&   r'   r¹   Ê  ó   r¹   c                C   s6   t  |dkdd¡}tdd|ƒ}|| d| |    d S )Nr   r   r   r   r‹   r[   r�  r|  r&   r&   r'   rº   Ð  r‚  rº   c                C   s<   t  |dkdd¡}tdd|ƒ}| | |  t| |d� d S ©Nr   r   r   r   rz  r{  r|  r&   r&   r'   r»   Ö  ó   
ÿÿr»   c                C   s(   t dd|ƒ}|d|  |  d  |  d S ©Nr   r   r   r   rs  ro  r&   r&   r'   r¼   Ý  ó   r¼   c                C   s4   t dd|ƒ}d| d|  |  d  t| |d� d S )Nr   r   r   rz  r   r€  ro  r&   r&   r'   r½   â  s   
ÿÿr½   c                C   s:   t  |dkdd¡}tdd|ƒ}d| | d| |    |  S ©Nr   r   r   r   r   r�  r|  r&   r&   r'   r¾   è  ó   r¾   c                C   sB   t  |dkdd¡}tdd|ƒ}d| | d| |    t| |d� S )Nr   r   r   r   rz  r{  r|  r&   r&   r'   r¿   î  s
   
ÿr¿   c                C   s,   t dd|ƒ}|| |  d  t| |d� d S )Nr   r   r   rz  é0   r€  ro  r&   r&   r'   rÀ   õ  s   
ÿÿrÀ   c                C   s:   t  |dkdd¡}tdd|ƒ}|| d| |    |  d S ©Nr   r   r   r‹   r[   r�  r|  r&   r&   r'   rÁ   û  rˆ  rÁ   c                C   sF   t  |dkdd¡}tdd|ƒ}|| dd|  |    t| |d� d S )Nr   r   r   r   rz  r[   r{  r|  r&   r&   r'   rÂ     ó   
ÿÿrÂ   c                C   s0   t dd|ƒ}|d|  |  d |  |  d  d S ©Nr   r   r   é   r   r[   rs  ro  r&   r&   r'   rÃ     s   $rÃ   c                C   s8   t dd|ƒ}d| d|  |  d  |  t| |d� d S )Nr   r   r   rE   r   rz  r   r€  ro  r&   r&   r'   rÄ     ó   
ÿÿrÄ   c                C   sJ   t  |dkdd¡}tdd|ƒ}d| | dd|  |   |  |  d  d S )	Nr   r   r   r   r   r   r[   rE   r�  r|  r&   r&   r'   rÅ     s   ,rÅ   c                C   sF   t  |dkdd¡}tdd|ƒ}d| | d| |    |  t| |d� S )Nr   r   r   r   éi   rz  r{  r|  r&   r&   r'   rÆ     ó
   
ÿrÆ   c                C   s&   t dd|ƒ}d| t | |  d ¡ S ©Nr   r�  r   ©rk  r   Úsquarero  r&   r&   r'   rÇ      ó   rÇ   c                C   s&   t dd|ƒ}|t | |  d ¡ d S ©Nr   r“   r   i€  r’  ro  r&   r&   r'   rÈ   %  r”  rÈ   c                C   ó0   t dd|ƒ}|| |  d  |  t| |d� d S )Nr   r   r   rz  r‰  r€  ro  r&   r&   r'   rÉ   *  ó   
ÿÿrÉ   c                C   sF   t  |dkdd¡}tdd|ƒ}|| dd|  |   |  |  d  d S )	Nr   r   r   r   r‹   r[   rE   r‰  r�  r|  r&   r&   r'   rÊ   0  s   (rÊ   c                C   sJ   t  |dkdd¡}tdd|ƒ}|| dd|  |    |  t| |d� d S )Nr   r   r   r   rE   rz  r[   r{  r|  r&   r&   r'   rË   6  ó   
ÿÿrË   c              
   C   sZ   t  |dkt  t  t  | ¡¡dd¡d¡}| t  t  |dk| |  d d| |   ¡¡ }|S rt  )r   rç   ru  rð   r.  )rô   rî   rv  Úout11_div_zr&   r&   r'   Úassoc_legendre_p_1_1_jac_div_z=  s
   (&ÿrš  c                C   ó
   t  | ¡S ©N©r   Ú
zeros_like)rô   rî   r{   r&   r&   r'   rÌ   E  ó   
rÌ   c                C   s   t dd|ƒ}t | |¡S rr  rm  ro  r&   r&   r'   rÍ   H  rq  rÍ   c                C   s    t dd|ƒ}||  t| |d� S )Nr   rz  ©rk  rš  ro  r&   r&   r'   rÎ   M  s   
ÿrÎ   c                C   s<   t  |dkdd¡}tdd|ƒ}| | |  t| |d� d S ry  ©r   rç   rk  rš  r|  r&   r&   r'   rÏ   S  r„  rÏ   c                C   s   t dd|ƒ}d| |  S )Nr   r   r   rs  ro  r&   r&   r'   rÐ   Z  rq  rÐ   c                C   s0   t dd|ƒ}d| d|  |  d  t| |d� S r  r   ro  r&   r&   r'   rÑ   _  s   
ÿrÑ   c                C   s.   t  |dkdd¡}tdd|ƒ}d| | |  S )Nr   r   r   r   iúÿÿÿr�  r|  r&   r&   r'   rÒ   e  s   rÒ   c                C   sF   t  |dkdd¡}tdd|ƒ}|| dd|  |    t| |d� d S rƒ  r¡  r|  r&   r&   r'   rÔ   k  r‹  rÔ   c                C   s0   t  |dkdd¡}tdd|ƒ}| | |  d S )Nr   r   r   r   r‹   r   r�  r|  r&   r&   r'   rÓ   r  s   rÓ   c                C   s(   t dd|ƒ}d| d|  |  d  d S )Nr   r   r   r   r   rs  ro  r&   r&   r'   rÕ   x  r†  rÕ   c                C   s8   t dd|ƒ}d| d|  |  d  |  t| |d� d S )Nr   r   r   rd  rz  r   r   ro  r&   r&   r'   rÖ   }  rŽ  rÖ   c                C   s:   t  |dkdd¡}tdd|ƒ}d| | dd|  |    S r‡  r�  r|  r&   r&   r'   r×   ƒ  rˆ  r×   c                C   sF   t  |dkdd¡}tdd|ƒ}d| | d| |    |  t| |d� S )Nr   r   r   é-   rz  r¡  r|  r&   r&   r'   rØ   ‰  r�  rØ   c                C   r–  )Nr   r   r   rz  r\   r   ro  r&   r&   r'   rÙ   �  r—  rÙ   c                C   s:   t  |dkdd¡}tdd|ƒ}|| dd|  |    d S rŠ  r�  r|  r&   r&   r'   rÚ   –  rˆ  rÚ   c                C   sJ   t  |dkdd¡}tdd|ƒ}|| dd|  |    |  t| |d� d S )Nr   r   r   rd  r   rz  r[   r¡  r|  r&   r&   r'   rÛ   œ  r˜  rÛ   c                C   s,   t dd|ƒ}d| d|  |  d  |  d S )Nr   r   r   rE   r   r   rs  ro  r&   r&   r'   rÜ   £  s    rÜ   c                C   s@   t dd|ƒ}d| d|  |  d |  |  d  t| |d� d S )	Nr   r   r   é   é   r   rz  r   r   ro  r&   r&   r'   rÝ   ¨  s   "
ÿÿrÝ   c                C   s>   t  |dkdd¡}tdd|ƒ}d| | dd|  |    |  S )Nr   r   r   r   r   r�  rE   r�  r|  r&   r&   r'   rÞ   ®  ó    rÞ   c                C   sR   t  |dkdd¡}tdd|ƒ}d| | dd|  |   |  |  d  t| |d� S )Nr   r   r   r   r�  r   rz  r¡  r|  r&   r&   r'   rß   ´  s
   &
ÿrß   c                C   s$   t dd|ƒ}d| | |  d  |  S )Nr   i¤  r   rs  ro  r&   r&   r'   rà   »  r~  rà   c                C   s$   t dd|ƒ}|| |  d  |  d S ©Nr   r“   r   é`   rs  ro  r&   r&   r'   rá   À  r~  rá   c                C   s<   t dd|ƒ}|d|  |  d |  |  d  t| |d� d S )Nr   r   r   r   rz  r‰  r   ro  r&   r&   r'   râ   Å  s   
ÿÿrâ   c                C   s>   t  |dkdd¡}tdd|ƒ}|| dd|  |    |  d S )Nr   r   r   r   r‹   rE   é   r�  r|  r&   r&   r'   rã   Ë  r¥  rã   c                C   sR   t  |dkdd¡}tdd|ƒ}|| dd|  |   |  |  d  t| |d� d S )	Nr   r   r   r   r¤  r£  rz  r[   r¡  r|  r&   r&   r'   rä   Ñ  s   "
ÿÿrä   c                 C   s   t | |dd�t dtj ¡ S )NTr…   r   )rk  r   r.  rö   )r)   ry   r&   r&   r'   Úsph_legendre_factorØ  s   r©  c                 C   s   t ddƒ}t | |¡S rl  )r©  r   rn  ©r)  rp  r&   r&   r'   r÷   Û  s   
r÷   c                 C   s   t ddƒ}|t | ¡ S rr  )r©  r   r+  rª  r&   r&   r'   rø   à  s   
rø   c                 C   s    t ddƒ}| t t | ¡¡ S )Nr   ©r©  r   Úabsr*  rª  r&   r&   r'   rù   å  s   
rù   c                 C   s"   t ddƒ}|t t | ¡¡ d S ©Nr   r   r   r«  rª  r&   r&   r'   rú   ê  s   
rú   c                 C   s*   t ddƒ}|dt t | ¡¡ d  d S r}  ©r©  r   r“  r+  rª  r&   r&   r'   rû   ï  ó   
 rû   c                 C   s,   t ddƒ}d| t t | ¡¡ t | ¡ S )Nr   r   r   ©r©  r   r¬  r*  r+  rª  r&   r&   r'   rü   ô  ó   
"rü   c                 C   s&   t ddƒ}d| dt t | ¡¡  S )Nr   r   r   r®  rª  r&   r&   r'   rý   ù  ó   
rý   c                 C   s&   t ddƒ}|dt t | ¡¡  d S )Nr   r‹   r   r[   r®  rª  r&   r&   r'   rþ   þ  r²  rþ   c                 C   s,   t ddƒ}|t | ¡ t t | ¡¡ d S )Nr   r   )r©  r   r+  r¬  r*  rª  r&   r&   r'   rÿ     r±  rÿ   c                 C   s4   t ddƒ}|dt t | ¡¡ d  t | ¡ d S r…  r®  rª  r&   r&   r'   r     ó   
ÿÿr   c                 C   s>   t ddƒ}d| dt t | ¡¡ d  t t | ¡¡ d S )Nr   r   r   r   r   ©r©  r   r“  r+  r¬  r*  rª  r&   r&   r'   r    s   
ÿÿr  c                 C   s0   t ddƒ}d| t t | ¡¡d  t | ¡ S )Nr   r   éñÿÿÿr   r®  rª  r&   r&   r'   r    s   
ÿr  c                 C   s*   t ddƒ}d| t t t | ¡¡d¡ S )Nr   rµ  ©r©  r   Úpowerr¬  r*  rª  r&   r&   r'   r    r¯  r  c                 C   s*   t ddƒ}|t t t | ¡¡d¡ d S )Nr   r   r‰  r¶  rª  r&   r&   r'   r    r¯  r  c                 C   s2   t ddƒ}| t t | ¡¡d  t | ¡ d S ©Nr   r‹   r   r[   r®  rª  r&   r&   r'   r  $  s   
ÿÿr  c                 C   s:   t ddƒ}|dt t | ¡¡ d  t t | ¡¡ d S )Nr   r   r   r   r[   r´  rª  r&   r&   r'   r  *  s   
ÿÿr  c              	   C   sD   t ddƒ}|dt t t | ¡¡¡ dt t | ¡¡  d  d S rŒ  r®  rª  r&   r&   r'   r  0  s   
ÿÿÿr  c                 C   sH   t ddƒ}d| dt t | ¡¡ d  t | ¡ t t | ¡¡ d S )Nr   r   éûÿÿÿrE   r   r   r´  rª  r&   r&   r'   r  6  s   
ÿÿÿr  c                 C   sB   t ddƒ}d| dt t | ¡¡ d  t t | ¡¡d  d S )Nr   r   rµ  rE   r   r®  rª  r&   r&   r'   r	  <  s   
ÿÿr	  c                 C   s4   t ddƒ}d| t t t | ¡¡d¡ t | ¡ S )Nr   r   é—ÿÿÿ©r©  r   r·  r¬  r*  r+  rª  r&   r&   r'   r
  B  ó   
*r
  c                 C   s,   t ddƒ}d| t t t | ¡¡d ¡ S r‘  r®  rª  r&   r&   r'   r  G  r±  r  c                 C   s,   t ddƒ}|t t t | ¡¡d ¡ d S r•  r®  rª  r&   r&   r'   r  L  r±  r  c                 C   s4   t ddƒ}|t t t | ¡¡d¡ t | ¡ d S )Nr   r   r   r‰  r»  rª  r&   r&   r'   r  Q  r³  r  c                 C   s@   t ddƒ}| dt t | ¡¡ d  t t | ¡¡d  d S )Nr   r‹   rE   r   r‰  r®  rª  r&   r&   r'   r  W  s   
ÿÿr  c                 C   sD   t ddƒ}|dt t | ¡¡ d  t | ¡ t t | ¡¡ d S )Nr   r   rE   r   r[   r´  rª  r&   r&   r'   r  ]  s   
ÿÿÿr  c                 C   r›  rœ  r�  )r)  r&   r&   r'   r  c  rŸ  r  c                 C   s   t ddƒ}| t | ¡ S rr  )r©  r   r*  rª  r&   r&   r'   r  f  s   
r  c                 C   s4   t ddƒ}| t | ¡ dt t | ¡d¡ d  S )Nr   r   ©r©  r   r+  Ú	heavisider*  rª  r&   r&   r'   r  k  r¼  r  c                 C   s6   t ddƒ}|t | ¡ dt t | ¡d¡ d  d S r­  r½  rª  r&   r&   r'   r  p  ó   
,r  c                 C   s&   t ddƒ}d| t | ¡ t | ¡ S )Nr   r   r   )r©  r   r+  r*  rª  r&   r&   r'   r  u  r²  r  c                 C   sX   t ddƒ}d| t t | ¡¡ dt t | ¡d¡ d  t t | ¡¡t | ¡   S )Nr   r   r   ©r©  r   r“  r+  r¾  r*  r¬  rª  r&   r&   r'   r  z  s   
ÿþr  c                 C   s&   t ddƒ}d| t | ¡ t | ¡ S )Nr   r-  ©r©  r   r*  r+  rª  r&   r&   r'   r  �  r²  r  c                 C   s&   t ddƒ}|t | ¡ t | ¡ d S )Nr   r‹   r   rÁ  rª  r&   r&   r'   r  †  r²  r  c                 C   sZ   t ddƒ}| t t | ¡¡ dt t | ¡d¡ d  t t | ¡¡t | ¡   d S )Nr   r   r   rÀ  rª  r&   r&   r'   r  ‹  s   
ÿþþr  c                 C   s8   t ddƒ}d| ddt t | ¡¡   t | ¡ d S )Nr   r   r   r   r   ©r©  r   r“  r+  r*  rª  r&   r&   r'   r  ’  s   
.r  c                 C   sR   t ddƒ}d| ddt t | ¡¡   t | ¡ dt t | ¡d¡ d  d S )Nr   r   rd  r   r   ©r©  r   r“  r+  r¾  r*  rª  r&   r&   r'   r  —  s   
(ÿÿr  c                 C   s4   t ddƒ}d| dt t | ¡¡ d  t | ¡ S )Nr   r   r   r   rÂ  rª  r&   r&   r'   r  �  r¼  r  c                 C   s6   t ddƒ}d| t t | ¡¡ t | ¡ t | ¡ S )Nr   iÓÿÿÿr°  rª  r&   r&   r'   r  ¢  r¿  r  c                 C   s6   t ddƒ}|t t | ¡¡ t | ¡ t | ¡ d S )Nr   r   r\   r°  rª  r&   r&   r'   r  §  r¿  r  c                 C   s4   t ddƒ}|dt t | ¡¡ d  t | ¡ d S r¸  rÂ  rª  r&   r&   r'   r  ¬  r¼  r  c                 C   sP   t ddƒ}| ddt t | ¡¡   t | ¡ dt t | ¡d¡ d  d S )Nr   r   rd  r   r   r   r[   rÃ  rª  r&   r&   r'   r  ±  s   
ÿþþr  c                 C   sB   t ddƒ}d| dt t | ¡¡ d  t | ¡ t | ¡ d S )Nr   r   r¹  rE   r   r   rÂ  rª  r&   r&   r'   r   ¸  s   
ÿÿÿr   c              
   C   sb   t ddƒ}d| ddt t | ¡¡  dt t t | ¡¡¡   dt t | ¡d¡ d  d S )Nr   r   r   r   r¤  r£  r   rÃ  rª  r&   r&   r'   r!  ¾  s   
ÿþþr!  c                 C   s>   t ddƒ}d| dt t | ¡¡ d  t | ¡ t | ¡ S )Nr   r   r�  rE   rÂ  rª  r&   r&   r'   r"  Å  s   
ÿÿr"  c                 C   sD   t ddƒ}d| dt t | ¡¡ d  t t | ¡¡ t | ¡ S )Nr   r   rº  r   r´  rª  r&   r&   r'   r#  Ë  s   
ÿÿr#  c                 C   s:   t ddƒ}d| t t | ¡¡d  t | ¡ t | ¡ S )Nr   i\þÿÿr   rÂ  rª  r&   r&   r'   r$  Ñ  s   
ÿÿr$  c                 C   s<   t ddƒ}| t t | ¡¡d  t | ¡ t | ¡ d S r¦  rÂ  rª  r&   r&   r'   r%  ×  s   
ÿÿÿr%  c                 C   sD   t ddƒ}|dt t | ¡¡ d  t t | ¡¡ t | ¡ d S )Nr   r   r   r‰  r´  rª  r&   r&   r'   r&  Ý  s   
ÿÿÿr&  c                 C   s>   t ddƒ}|dt t | ¡¡ d  t | ¡ t | ¡ d S )Nr   r‹   rE   r¨  rÂ  rª  r&   r&   r'   r'  ã  s   
$ÿÿr'  c              
   C   s`   t ddƒ}| ddt t | ¡¡  dt t t | ¡¡¡   dt t | ¡d¡ d  d S )	Nr   r   r   r¤  r£  r   r   r[   rÃ  rª  r&   r&   r'   r(  é  s   
ÿþþr(  r]  )€ri  Únumpyr   r:   Únumpy.testingr   r   r   r   r   Úscipyr   Úscipy.specialr   r	   r
   r   r   r   r   r=   rn   rí   rõ   r,  rk  r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rš  rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÔ   rÓ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   r©  r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r&   r&   r&   r'   Ú<module>   sð     +   & 0 h	
