403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/scipy/special/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/scipy/special/tests/__pycache__/test_basic.cpython-311.pyc
�

d�c:3���ddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZddlZddlmZddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ddl%m&Z&ddl'm&cm(Z)ddl*m+Z+m,Z,m-Z-ddl*m.Z.m/Z/m0Z0m1Z1m2Z2ddl*m3Z3m4Z4dd	l5m6Z6m7Z7m8Z8ddl9Z9Gd
�d��Z:Gd�d
��Z;Gd�d��Z<Gd�d��Z=Gd�d��Z>Gd�d��Z?Gd�d��Z@Gd�d��ZAGd�d��ZBGd�d��ZCGd�d��ZDGd �d!eE��ZFGd"�d#eE��ZGGd$�d%��ZHGd&�d'��ZIGd(�d)��ZJGd*�d+��ZKGd,�d-��ZLGd.�d/��ZMGd0�d1��ZNGd2�d3��ZOGd4�d5��ZPGd6�d7��ZQGd8�d9��ZRGd:�d;��ZSGd<�d=��ZTGd>�d?��ZUGd@�dA��ZVGdB�dC��ZWGdD�dE��ZXGdF�dG��ZYGdH�dI��ZZGdJ�dK��Z[GdL�dM��Z\GdN�dO��Z]GdP�dQ��Z^GdR�dS��Z_dT�Z`dU�ZaGdV�dW��ZbdX�ZcdY�ZddZ�Zed[�Zfd\�Zgd]�Zhe6d^���Zid_�Zjd`�Zkda�Zldb�Zmdc�Zndd�Zode�Zpdf�Zqdg�ZrdS)h�N)�array�isnan�r_�arange�finfo�pi�sin�cos�tan�exp�log�zeros�sqrt�asarray�inf�
nan_to_num�real�arctan�float_)�raises)	�assert_equal�assert_almost_equal�assert_array_equal�assert_array_almost_equal�assert_approx_equal�assert_�assert_allclose�assert_array_almost_equal_nulp�suppress_warnings)�special)�ellipe�ellipk�ellipkm1)�elliprc�elliprd�elliprf�elliprg�elliprj)�mathieu_odd_coef�mathieu_even_coef)�with_special_errors�assert_func_equal�FuncDatac��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6e7j8�9d5�6��d7���Z:d8�Z;d9�Z<d:�Z=e7j8�9d;�6��d<���Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQdP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVdU�ZWdV�ZXdW�ZYdX�ZZdY�Z[dZ�Z\d[�Z]d\�Z^d]�Z_d^�Z`d_�Zad`�Zbda�Zcdb�Zddc�Zedd�Zfde�Zgdf�Zhdg�Zidh�Zjdi�Zkdj�Zldk�Zmdl�Zndm�Zodn�Zpdo�Zqdp�Zrdq�Zsdr�Ztds�Zudt�Zvdu�Zwdv�Zxdw�Zydx�Zzdy�Z{dz�Z|d{�Z}d|�Z~d}�Zd~�Z�d�Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d�S)��
TestCephesc�.�tjd��dS�Nr)�cephes�airy��selfs �@/usr/lib/python3/dist-packages/scipy/special/tests/test_basic.py�	test_airyzTestCephes.test_airy0�����A������c�.�tjd��dSr1)r2�airyer4s r6�
test_airyezTestCephes.test_airye3s����Q�����r9c	���tjgd���}tjgd���}tjtj|dd�df|ddd�f�����dd��j}tjgd�gd�gd�gd�g��}ttj|���|d	�
��tj	�
d��tjtjdd
��dtj	�
d
��zdz
f}tjdd��}tjtj|dd�df|ddd�f�����dd��j}ttjt
j|dd�df|dd�dfdz��|dd���dS)N)gL7�A`��?�g������@�)�皙�����?�gffffff
@r@���)g����޸�g	TշJ��?g�	7���?geL�F
�)�g�*�+@rg�M{��@)gףp=
�%@gϔ�>��@g�<���w�g����$@)�g�,y�3@i�Kg���5�@�vIh�%<=��rtol��i���������r�f���?绽���|�=��atolrH)�npr�broadcast_arrays�reshape�Tr,r2�binom�ravel�random�seedrr�rand)r5�n�k�nk�rknowns     r6�
test_binomzTestCephes.test_binom6s����H�(�(�(�)�)���H�%�%�%�&�&��
�X�b�)�!�A�A�A�d�F�)�Q�t�A�A�A�v�Y�?�?������2���q�	���#�#�#�#Q�#Q�#Q�F�F�F�@�@�@�B�C�C��	�&�,��������G�G�G�G�	�	���t�����E�"�)�B��#�#�T�"�)�.�.��*<�*<�%<�s�%B�B�C���I�a�����
�X�b�)�!�A�A�A�d�F�)�Q�t�A�A�A�v�Y�?�?������2���q�	�	�&�,� �,�r�!�!�!�A�#�w��1�1�1�Q�3��9�0E�F�F��$�5�	2�	2�	2�	2�	2�	2r9c	���tj�d��tjtjddd��}tjdd��}tjtj|dd�df|ddd�f�����dd��j	}ttjtj|dd�df|dd�dfd	z��|d
d
���dS)NrIrN�,�rrMr@rCrOrPrQ)
rSrYrZr�logspacerrrTrUrVr,r2rW)r5r\r]r^s    r6�test_binom_2zTestCephes.test_binom_2Ms���
�	���t�����E�"�+�a��b�)�)�*���I�a�����
�X�b�)�!�A�A�A�d�F�)�Q�t�A�A�A�v�Y�?�?������2���q�	�	�&�,� �,�r�!�!�!�A�#�w��1�1�1�Q�3��9�0E�F�F��$�5�	2�	2�	2�	2�	2�	2r9c	�"�tjd���}tj�d��tjdd��}tjdd��}tjtj|dd�df|ddd�f�����dd��j}||dd�df|dd�dfk}ttj||dd�df|dd�df��|dd���dS)	Nc���t|��}t|��}td��}td��}td|dz��D]}|||z|z
z}||z}�t||z��S�NrN)�int�range�float)r\r]�num�den�is     r6�	binom_intz.TestCephes.test_binom_exact.<locals>.binom_int[sv���A���A��A���A��a�&�&�C��a�&�&�C��1�a��c�]�]�
�
���q�1�u�q�y� ���q������S��>�>�!r9rIrN�rr@rCrQ)rS�	vectorizerYrZrrrTrUrVr,r2rW)r5ror\r]r^s     r6�test_binom_exactzTestCephes.test_binom_exactZs��	��	"�	"�
��	"�	�	���t�����I�a������I�a�����
�X�b�)�!�A�A�A�d�F�)�Q�t�A�A�A�v�Y�?�?������2���q�	�
��1�1�1�Q�3��2�a�a�a��c�7�"�
#���&�,�#�)�B�q�q�q��s�G�R����!��W�5�5�� �q�	*�	*�	*�	*�	*�	*r9c��gd�}tj|��}ttj|ddd������dS)N))rKrLg��wP��~)i�i�gii���9~)i�i�g��yh�Y~)i�i�g�pv�y~)i�i�gz���N��~)i�i�gGTɳ�~)i�i�g@�j�H��~)i�i�gF:aYͦ�~)i�i�g�ɸV�)i�i�g
{��9)i�i�gy�Vx�Y)i�i�g�*I�y)iig�I����)iig��W@N��)iig5����y�)rrNr@��-���q=rG)rSrr-r2rW�check)r5�datasets  r6�test_binom_nooverflow_8346z%TestCephes.test_binom_nooverflow_8346qsQ��
�
�
��"�*�W�%�%�����w����>�>�>�D�D�F�F�F�F�Fr9c�N�ttjddd��d��dS)NrN��?��?)rr2�bdtrr4s r6�	test_bdtrzTestCephes.test_bdtr�s&���V�[��1�S�)�)�#�.�.�.�.�.r9c�N�ttjddd��d��dS�NrN�ry)rr2�bdtrir4s r6�
test_bdtrizTestCephes.test_bdtri��&���V�\�!�A�c�*�*�3�/�/�/�/�/r9c�N�ttjddd��d��dSr~)rr2�bdtrcr4s r6�
test_bdtrczTestCephes.test_bdtrc�r�r9c�N�ttjddd��d��dS�NrNr�@)rr2�bdtrinr4s r6�test_bdtrinzTestCephes.test_bdtrin��&���V�]�1�Q�q�)�)�#�.�.�.�.�.r9c�2�tjddd��dSr~)r2�bdtrikr4s r6�test_bdtrikzTestCephes.test_bdtrik�s���
�a��#�����r9c�J�ttjd��d��dS�Nr�)rr2�beir4s r6�test_beizTestCephes.test_bei�� ���V�Z��]�]�3�'�'�'�'�'r9c�J�ttjd��d��dSr�)rr2�beipr4s r6�	test_beipzTestCephes.test_beip�� ���V�[��^�^�C�(�(�(�(�(r9c�J�ttjd��d��dS�Nrrz)rr2�berr4s r6�test_berzTestCephes.test_ber�r�r9c�J�ttjd��d��dSr�)rr2�berpr4s r6�	test_berpzTestCephes.test_berp�r�r9c�N�ttjddd��d��dSr�)rr2�
besselpolyr4s r6�test_besselpolyzTestCephes.test_besselpoly�s'���V�&�q��1�-�-�c�2�2�2�2�2r9c��ttjdd��d��ttjdd��tjd����ttjdd��ddd	�
��dS)NrNrz�33333Y��N�~h�������?�g6.8@rFr�rHrR)rr2�betar�gammar4s r6�	test_betazTestCephes.test_beta�s{���V�[��1�%�%�c�*�*�*����F�F�3�3�V�\�&�5I�5I�J�J�J����F�C�0�0�2D�"��	,�	,�	,�	,�	,�	,r9c��ttjddd��d��ttjddd��d��dS)NrNrzr�r�rPg��*���?)rr2�betaincrr4s r6�test_betainczTestCephes.test_betainc�sE���V�^�A�a��*�*�3�/�/�/����v�s�E�:�:�<O�P�P�P�P�Pr9c��ttjdd��d��ttjdd��tjd����ttjdd��ddd	�
��dS)NrNr�r�r�r��g�I�s	@�+����=rr�)rr2�betalnr�gammalnr4s r6�test_betalnzTestCephes.test_betaln�s{���V�]�1�Q�'�'��,�,�,���
�f�f�5�5�v�~�f�7M�7M�N�N�N���
�f�c�2�2�4F�"��	,�	,�	,�	,�	,�	,r9c��ttjddd��d��ttjddd��ddd�	��dS)
NrNrzr�r���?g"
Yx��;g��Afc�=rr�)rr2�
betaincinvrr4s r6�test_betaincinvzTestCephes.test_betaincinv�s`���V�&�q��1�-�-�c�2�2�2���)�&�#�t�<�<�.�U��	D�	D�	D�	D�	D�	Dr9c�n�ttjtjdd������dS)NrCr@)rrS�isinfr r�r4s r6�
test_beta_infzTestCephes.test_beta_inf�s,�������b�!�,�,�-�-�.�.�.�.�.r9c�N�ttjddd��d��dS�NrNrz)rr2�btdtrr4s r6�
test_btdtrzTestCephes.test_btdtr��&���V�\�!�A�a�(�(��-�-�-�-�-r9c�N�ttjddd��d��dSr�)rr2�btdtrir4s r6�test_btdtrizTestCephes.test_btdtri�r�r9c�N�ttjddd��d��dS�NrNr�)rr2�btdtriar4s r6�test_btdtriazTestCephes.test_btdtria��&���V�^�A�a��*�*�3�/�/�/�/�/r9c�N�ttjddd��d��dSr�)rr2�btdtribr4s r6�test_btdtribzTestCephes.test_btdtrib�r�r9c�J�ttjd��d��dSr�)rr2�cbrtr4s r6�	test_cbrtzTestCephes.test_cbrt�s ���F�K��N�N�3�/�/�/�/�/r9c�L�ttjdd��d��dS�NrNrr�)rr2�chdtrr4s r6�
test_chdtrzTestCephes.test_chdtr�s$���V�\�!�A�&�&�s�+�+�+�+�+r9c�L�ttjdd��d��dS�NrNrrz)rr2�chdtrcr4s r6�test_chdtrczTestCephes.test_chdtrc��$���V�]�1�Q�'�'��,�,�,�,�,r9c�L�ttjdd��d��dS�NrNr�)rr2�chdtrir4s r6�test_chdtrizTestCephes.test_chdtri�r�r9c�L�ttjdd��d��dS)Nrr�)rr2�chdtrivr4s r6�test_chdtrivzTestCephes.test_chdtriv�s$���V�^�A�a�(�(��-�-�-�-�-r9c��ttjddd��d��tjgd�gd�gd�gd�gd�gd	�gd
�gd�gd�gd
�gd�gd�gd�g
��}tj|dd�df|dd�df|dd�df��}t||dd�dfd���t
tjtjtjd��d��t
tjddtj��d��ttj	tjtj
dd������ttj	tjdtj
d������ttj	tjddtj
������dS)NrrNr�)�9@�4@�g��L�94)r�� @�g7�F�h�9)���MbP?r��D@g�gåc�;)�{�G�z�?r�r�g	����;)r��@�kg8�x@x�>)g�6@r�r�g��g1\�>>)r�r�r�g����`>)�@r�rzgp�!P��?)g�u@g�r@�$@gj��
�?)�Y@�+@r�g]����?)g�@r�r�g4ۙ����?)g�b@r�r�g�������?)gd@r�r�rzr@rrtrGr��)rr2�chndtrrSrrrrrr�nan)r5�values�cdfs   r6�test_chndtrzTestCephes.test_chndtr�s����V�]�1�Q�q�)�)�#�.�.�.�
��9�9�9�9�9�9�9�9�9�:�:�:�9�9�9�9�9�9�9�9�9�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�
�����m�F�1�1�1�a�4�L�&����A��,��q�q�q�!�t��E�E����V�A�A�A�q�D�\��6�6�6�6��F�M�"�&�"�&�!�<�<�c�B�B�B��F�M�!�Q���7�7��=�=�=������r�v�q�!�4�4�5�5�6�6�6������q�"�&�!�4�4�5�5�6�6�6������q�!�R�V�4�4�5�5�6�6�6�6�6r9c�N�ttjddd��d��dS�NrrNr�)rr2�	chndtridfr4s r6�test_chndtridfzTestCephes.test_chndtridf��'���V�%�a��!�,�,�S�1�1�1�1�1r9c�N�ttjddd��d��dSr�)rr2�	chndtrincr4s r6�test_chndtrinczTestCephes.test_chndtrinc�r�r9c�N�ttjddd��d��dS�NrrNr�)rr2�chndtrixr4s r6�
test_chndtrixzTestCephes.test_chndtrix��&���V�_�Q�q��+�+�C�0�0�0�0�0r9c�J�ttjd��d��dSr�)rr2�cosdgr4s r6�
test_cosdgzTestCephes.test_cosdg�� ���V�\�!�_�_�S�)�)�)�)�)r9c�J�ttjd��d��dSr�)rr2�cosm1r4s r6�
test_cosm1zTestCephes.test_cosm1rr9c�J�ttjd��d��dS�N�-rz)rr2�cotdgr4s r6�
test_cotdgzTestCephes.test_cotdgs"���F�L��,�,�S�1�1�1�1�1r9c��ttjd��d��ttjd��d��dS)Nrr�g�G�z��?g���f�?)rr2�dawsnrr4s r6�
test_dawsnzTestCephes.test_dawsns;���V�\�!�_�_�S�)�)�)����T�*�*�,?�@�@�@�@�@r9c��gd�}tjdtjzdz���tj��}tt
j||��dd���tjdtjzdz���tj��}tt
j||��dd���tjdtjzd	z���tj��}tt
j||��dd���ttd
��rftjdtjzdz���tj
��}tt
j||��dd���gd
�}tjdtjzdz���tj��}tt
j||��dd���tjdtjzdtjzdtjz��}gd�}tt
j|d��|d���dS)N)rNr��r@g-C��6
?rzrB��decimal��&�.>rp�V瞯�<�float128rt�)r@r>���皙�����?)g��g���?gs��OB�?g�saL�?g
7�I�^ʿr)rSrr�astype�float32rr �diric�float64�hasattrrr)r5�n_odd�x�n_even�
octave_results     r6�
test_diriczTestCephes.test_dirics����
�
���H�Q�r�u�W�t�^�$�$�+�+�B�J�7�7���G�M�!�U�3�3�S�!�D�D�D�D��H�Q�r�u�W�t�^�$�$�+�+�B�J�7�7���G�M�!�U�3�3�S�"�E�E�E�E��H�Q�r�u�W�u�_�%�%�,�,�R�Z�8�8���G�M�!�U�3�3�S�"�E�E�E�E��2�z�"�"�	J����2�5��5��)�)�0�0���=�=�A���
�a�� 7� 7��b�I�I�I�I������H�Q�r�u�W�t�^�$�$�+�+�B�J�7�7���G�M�!�V�4�4�d�B�G�G�G�G�
�I�c�"�%�i��R�U��C���I�6�6��@�@�@�
��G�M�!�Q�/�/���K�K�K�K�K�Kr9c���tjd��}tjgd���}tt	j|dd�tjf|��j|j|jfk��dS)Nr�)rNrrB)	rSrrrr r�newaxis�shape�size)r5r!r\s   r6�test_diric_broadcastingz"TestCephes.test_diric_broadcasting%sb���I�a�L�L���H�Y�Y�Y������
�a����2�:�
�.��2�2�8�Q�V�Q�V�<L�L�M�M�M�M�Mr9c�J�ttjd��d��dSr�)rr2r!r4s r6�test_ellipezTestCephes.test_ellipe*�"���V�]�1�%�%�c�*�*�*�*�*r9c�L�ttjdd��d��dSr�)rr2�	ellipeincr4s r6�test_ellipeinczTestCephes.test_ellipeinc-�%���V�%�a��*�*�3�/�/�/�/�/r9c�0�tjdd��dS)NrrN)r2�ellipjr4s r6�test_ellipjzTestCephes.test_ellipj0s���
�a������r9c�P�ttd��tdz��dS)Nrr@)rr"rr4s r6�test_ellipkzTestCephes.test_ellipk3s"����q�	�	�2�a�4�(�(�(�(�(r9c�L�ttjdd��d��dSr�)rr2�	ellipkincr4s r6�test_ellipkinczTestCephes.test_ellipkinc6r0r9c�J�ttjd��d��dSr��rr2�erfr4s r6�test_erfzTestCephes.test_erf9s ���V�Z��]�]�C�(�(�(�(�(r9c�z�d}ttj|��tj|��zd��dS)Ng��#8x�@r�r:�r5r!s  r6�test_erf_symmetryzTestCephes.test_erf_symmetry<s4�����V�Z��]�]�V�Z���^�^�3�S�9�9�9�9�9r9c�J�ttjd��d��dSr�)rr2�erfcr4s r6�	test_erfczTestCephes.test_erfc@s ���V�[��^�^�S�)�)�)�)�)r9c�J�ttjd��d��dS)Nr@r�)rr2�exp10r4s r6�
test_exp10zTestCephes.test_exp10Cs ���F�L��O�O�E�2�2�2�2�2r9c�J�ttjd��d��dS)Nr@�@)rr2�exp2r4s r6�	test_exp2zTestCephes.test_exp2Fr�r9c�|�ttjd��d��ttjtj��tj��ttjtj��d��ttjtj��tj��dS)Nrr�rC)rr2�expm1rSrr�r4s r6�
test_expm1zTestCephes.test_expm1Isz���V�\�!�_�_�S�)�)�)��V�\�"�&�)�)�2�6�2�2�2��V�\�2�6�'�*�*�B�/�/�/��V�\�"�&�)�)�2�6�2�2�2�2�2r9c�
�tj}t|d��d��t|ttjd����ttjd����t|ttjd����ttjtj����t|ttjd����ttjtj����t|ttjd����ttjtj����t|ttjd����ttjtj����t|tdtj����ttjtj����t|tdtj����ttjtj����t|ttjtj����ttjtj����t|ttjtj����tdd����t|ttjtj����tdd����t|ttjtj����ttjtj����t|tdtj����ttjtj����t|tdtj����ttjtj����t|ttjd����ttjtj����t|ttjtj����ttjtj����dS)N�rrNr@r>r�rC)r2rKr�complexrSrr�)r5rKs  r6�test_expm1_complexzTestCephes.test_expm1_complexOs;������U�U�6�]�]�F�+�+�+��U�U�7�2�6�1�-�-�.�.�����0B�0B�C�C�C��U�U�7�2�6�1�-�-�.�.������0G�0G�H�H�H��U�U�7�2�6�1�-�-�.�.�������0H�0H�I�I�I��U�U�7�2�6�1�-�-�.�.�����"�&��0I�0I�J�J�J��U�U�7�2�6�1�-�-�.�.�������0H�0H�I�I�I��U�U�7�1�b�f�-�-�.�.������0G�0G�H�H�H��U�U�7�1�b�f�-�-�.�.������0G�0G�H�H�H��U�U�7�2�6�2�6�2�2�3�3�W�R�V�R�V�5L�5L�M�M�M��U�U�7�B�F�7�B�F�3�3�4�4�g�b�!�n�n�E�E�E��U�U�7�B�F�7�B�F�3�3�4�4�g�b�!�n�n�E�E�E��U�U�7�2�6�2�6�2�2�3�3�W�R�V�R�V�5L�5L�M�M�M��U�U�7�1�b�f�-�-�.�.������0G�0G�H�H�H��U�U�7�1�b�f�-�-�.�.������0G�0G�H�H�H��U�U�7�2�6�1�-�-�.�.������0G�0G�H�H�H��U�U�7�2�6�2�6�2�2�3�3�W�R�V�R�V�5L�5L�M�M�M�M�Mr9z-The real part of expm1(z) bad at these points��reasonc�P�tjgd���}tjtj|����}|d|zz}tjgd���}t	j|��}t
|j|jd��t
|j|jd��dS)N)皙�����?r�333333�?r��rc��?)y���=����Cw���?yC7gg)gF<�U�g��?y�Q���<���D*��?yg:>���<��sK�y>��񸣼$	�Um>l�y;V��l �<�����@rrc)	rSrr
r
r2rKr�imagr)r5�yr!�z�expected�founds      r6�test_expm1_complex_hardz"TestCephes.test_expm1_complex_hardbs���
�H�/�/�/�0�0��
�V�B�F�1�I�I�
�
���
��1��H���8�J�J�J�K�K����Q����&�u�z�8�=�!�D�D�D�&�u�z�8�=�"�E�E�E�E�Er9c��ttjddd��d��ttjddd��dd�	��dS)
NrNrr����ư>r��
g��2���?rtrG)rr2�fdtrrr4s r6�	test_fdtrzTestCephes.test_fdtrwsW���V�[��A�q�)�)�3�/�/�/����D�!�R�0�0�2D�"�	$�	$�	$�	$�	$�	$r9c��ttjddd��d��ttjddd��dd�	��dS)
NrNrrzr@rTg _�BgD�IXl�?rtrG)rr2�fdtrcrr4s r6�
test_fdtrczTestCephes.test_fdtrc}sY���V�\�!�Q��*�*�C�0�0�0�	���Q��T�2�2�4G�"�	$�	$�	$�	$�	$�	$r9c���ttjddddg��tddg��d���d}ttjd	d|��d
d���dS)NrNgV-����?g�x�&1�?g��
}���?g<zO'��?r_rGg�׀��?rTrrt)rr2�fdtrir)r5�ps  r6�
test_fdtrizTestCephes.test_fdtri�ss�����Q��E�5�>�:�:��y�*�5�6�6�T�	C�	C�	C�	C�
%�����S�!�Q�/�/���?�?�?�?�?�?r9zReturns nan on i686.c�N�ttjddd��d��dS)NrNry)rr2rgr4s r6�test_fdtri_mysterious_failurez(TestCephes.test_fdtri_mysterious_failure�s&�����Q��3�/�/��3�3�3�3�3r9c�N�ttjddd��d��dSr�)rr2�fdtridfdr4s r6�
test_fdtridfdzTestCephes.test_fdtridfd�rr9c�J�ttjd��d��dS�Nr�r�r�)rr2�fresnelr4s r6�test_fresnelzTestCephes.test_fresnel�s"���V�^�A�&�&�y�1�1�1�1�1r9c�J�ttjd��d��dS�Nr��8@)rr2r�r4s r6�
test_gammazTestCephes.test_gamma�s ���V�\�!�_�_�T�*�*�*�*�*r9c�L�ttjdd��d��dS)Nr�rNr�)rr2�gammainccinvr4s r6�test_gammainccinvzTestCephes.test_gammainccinv�s%���V�(��1�-�-�c�2�2�2�2�2r9c�.�tjd��dS)Nr`)r2r�r4s r6�test_gammalnzTestCephes.test_gammaln�s����r�����r9c���tjgd�tj��}tt	j|��tjt	j|������dS)N)�����gffffff�rNg������@)rSrrrr2�gammasgn�sign�rgamma)r5�valss  r6�
test_gammasgnzTestCephes.test_gammasgn�sP���x�0�0�0�"�*�=�=���6�?�4�0�0�"�'�&�-��:M�:M�2N�2N�O�O�O�O�Or9c�N�ttjddd��d��dSr�)rr2�gdtrr4s r6�	test_gdtrzTestCephes.test_gdtr��&���V�[��1�Q�'�'��,�,�,�,�,r9c�b�ttjddtj��d��dSr�)rr2r�rSrr4s r6�
test_gdtr_infzTestCephes.test_gdtr_inf�s(���V�[��1�R�V�,�,�S�1�1�1�1�1r9c�N�ttjddd��d��dSr�)rr2�gdtrcr4s r6�
test_gdtrczTestCephes.test_gdtrc�r�r9c�N�ttjddd��d��dSr�)rr2�gdtriar4s r6�test_gdtriazTestCephes.test_gdtria�r�r9c�2�tjddd��dS�NrNr)r2�gdtribr4s r6�test_gdtribzTestCephes.test_gdtrib�s���
�a��!�����r9c�2�tjddd��dS�NrNrT)r2�gdtrixr4s r6�test_gdtrixzTestCephes.test_gdtrix�s���
�a��"�����r9c�0�tjdd��dSrh)r2�hankel1r4s r6�test_hankel1zTestCephes.test_hankel1������q������r9c�0�tjdd��dSrh)r2�hankel1er4s r6�
test_hankel1ezTestCephes.test_hankel1e�������!�����r9c�0�tjdd��dSrh)r2�hankel2r4s r6�test_hankel2zTestCephes.test_hankel2�r�r9c�0�tjdd��dSrh)r2�hankel2er4s r6�
test_hankel2ezTestCephes.test_hankel2e�r�r9c���ttjddd��td����ttjddd��d��tjddd��dS)NrNrzrr>���g�㈮�?)rr2�hyp1f1rr4s r6�test_hyp1f1zTestCephes.test_hyp1f1�s_���F�M�!�A�a�0�0�#�c�(�(�;�;�;��F�M�!�A�b�1�1�3J�K�K�K��
�a��!�����r9c�P�ttjdddd��d��dSr�)rr2�hyp2f1r4s r6�test_hyp2f1zTestCephes.test_hyp2f1��(���V�]�1�Q�q��+�+�C�0�0�0�0�0r9c�J�ttjd��d��dSr�)rr2�i0r4s r6�test_i0zTestCephes.test_i0�� ���V�Y�q�\�\�#�&�&�&�&�&r9c�J�ttjd��d��dSr�)rr2�i0er4s r6�test_i0ezTestCephes.test_i0e�r�r9c�J�ttjd��d��dSr�)rr2�i1r4s r6�test_i1zTestCephes.test_i1�r�r9c�J�ttjd��d��dSr�)rr2�i1er4s r6�test_i1ezTestCephes.test_i1e�r�r9c�.�tjd��dSrh)r2�it2i0k0r4s r6�test_it2i0k0zTestCephes.test_it2i0k0������q�����r9c�.�tjd��dSrh)r2�it2j0y0r4s r6�test_it2j0y0zTestCephes.test_it2j0y0�r�r9c�.�tjd��dSrh)r2�
it2struve0r4s r6�test_it2struve0zTestCephes.test_it2struve0�s����!�����r9c�.�tjd��dSrh)r2�itairyr4s r6�test_itairyzTestCephes.test_itairy�����
�a�����r9c�J�ttjd��d��dSrp)rr2�iti0k0r4s r6�test_iti0k0zTestCephes.test_iti0k0��"���V�]�1�%�%�i�0�0�0�0�0r9c�J�ttjd��d��dSrp)rr2�itj0y0r4s r6�test_itj0y0zTestCephes.test_itj0y0�r�r9c�J�ttjd��d��dSr�)rr2�itmodstruve0r4s r6�test_itmodstruve0zTestCephes.test_itmodstruve0�s#���V�(��+�+�C�0�0�0�0�0r9c�J�ttjd��d��dSr�)rr2�	itstruve0r4s r6�test_itstruve0zTestCephes.test_itstruve0�s#���V�%�a�(�(��-�-�-�-�-r9c�L�ttjdd��d��dSr�)rr2�ivr4s r6�test_ivzTestCephes.test_iv��"���V�Y�q��^�^�C�(�(�(�(�(r9c�L�ttjdd��d��dSr�)rr2�iver4s r6�
_check_ivezTestCephes._check_ive��"���V�Z��!�_�_�S�)�)�)�)�)r9c�J�ttjd��d��dSr�)rr2�j0r4s r6�test_j0zTestCephes.test_j0�r�r9c�J�ttjd��d��dSr�)rr2�j1r4s r6�test_j1zTestCephes.test_j1�r�r9c�L�ttjdd��d��dSr�)rr2�jnr4s r6�test_jnzTestCephes.test_jn�r�r9c�L�ttjdd��d��dSr�)rr2�jvr4s r6�test_jvzTestCephes.test_jv�r�r9c�L�ttjdd��d��dSr�)rr2�jver4s r6�
_check_jvezTestCephes._check_jver�r9c�.�tjd��dS�Nr@)r2�k0r4s r6�test_k0zTestCephes.test_k0����	�!�����r9c�.�tjd��dSr�)r2�k0er4s r6�test_k0ezTestCephes.test_k0e����
�1�
�
�
�
�
r9c�.�tjd��dSr�)r2�k1r4s r6�test_k1zTestCephes.test_k1	r�r9c�.�tjd��dSr�)r2�k1er4s r6�test_k1ezTestCephes.test_k1er�r9c�.�tjd��dSr�)r2�keir4s r6�test_keizTestCephes.test_keir�r9c�J�ttjd��d��dSr�)rr2�keipr4s r6�	test_keipzTestCephes.test_keipr�r9c�.�tjd��dSr�)r2�kerr4s r6�test_kerzTestCephes.test_kerr�r9c�.�tjd��dSr�)r2�kerpr4s r6�	test_kerpzTestCephes.test_kerpr8r9c�.�tjd��dSr�)r2�kelvinr4s r6�
_check_kelvinzTestCephes._check_kelvinr�r9c�0�tjdd��dSrh)r2�knr4s r6�test_knzTestCephes.test_kn����	�!�A�����r9c���ttjd��d��tt	jtjtj������dSr�)rr2�kolmogirrSrr�r4s r6�test_kolmogizTestCephes.test_kolmogi!sF���V�^�A�&�&�s�+�+�+��������/�/�0�0�1�1�1�1�1r9c�J�ttjd��d��dSr�)rr2�
kolmogorovr4s r6�test_kolmogorovzTestCephes.test_kolmogorov%s#���V�&�q�)�)�3�/�/�/�/�/r9c�J�ttjd��d��dS)Nr��)rr2�_kolmogpr4s r6�test_kolmogpzTestCephes.test_kolmogp(s"���V�_�Q�'�'��.�.�.�.�.r9c�J�ttjd��d��dSr�)rr2�_kolmogcr4s r6�test_kolmogczTestCephes.test_kolmogc+s"���V�_�Q�'�'��-�-�-�-�-r9c���ttjd��d��tt	jtjtj������dSr�)rr2�	_kolmogcirrSrr�r4s r6�
test_kolmogcizTestCephes.test_kolmogci.sH���V�%�a�(�(�#�.�.�.�����)�"�&�1�1�2�2�3�3�3�3�3r9c�0�tjdd��dSrh)r2�kvr4s r6�	_check_kvzTestCephes._check_kv2rr9c�0�tjdd��dSrh)r2�kver4s r6�
_check_kvezTestCephes._check_kve5����
�1�Q�����r9c�8�tj}t|d��d��t|d��tj��t|d��tj��t|tj��tj��dS)Nrr�rC���)r2�log1prrSrr�)r5r)s  r6�
test_log1pzTestCephes.test_log1p8sy������U�U�1�X�X�s�#�#�#��U�U�2�Y�Y����(�(�(��U�U�2�Y�Y���'�'�'��U�U�2�6�]�]�B�F�+�+�+�+�+r9c	�F�tj}t}t|d��d��t||dd����|tjd����t
��5}|�td��t||dtj����|tjtj
dz����t||dtj����|tjtj����t||tjd����|tjtj
����t||tjd����|tjd����t||tjtj����|tjdtj
zdz����t||tjtj����|tjtj
dz����t||tjtj����|tjtj����t||tjtj����|tjtj����t||tjtj����|tjtj����t||tjd����|tjtj����t||tjtj����|tjtj����ddd��dS#1swxYwYdS)	NrNrCrz%invalid value encountered in multiplyrNr@rr>)r2r)rOrrSrr�filter�RuntimeWarningrrr�)r5r)�c�sups    r6�test_log1p_complexzTestCephes.test_log1p_complex?sg��������U�U�6�]�]�F�+�+�+��U�U�1�1�R��8�8�_�_�a�a�����m�m�4�4�4�
�
 �
 �	F�C��J�J�~�'N�O�O�O��E�E�!�!�A�r�v�,�,�/�/���2�6�2�5��7�1C�1C�D�D�D����q�q��B�F�|�|�,�,�a�a�����.?�.?�@�@�@��E�E�!�!�R�V�G�Q�-�-�0�0�!�!�B�F�B�E�2B�2B�C�C�C����q�q����|�|�,�,�a�a����l�l�;�;�;��E�E�!�!�R�V�G�R�V�"4�"4�5�5�q�q����2�5����7K�7K�L�L�L��E�E�!�!�B�F�B�F�"3�"3�4�4�a�a�����a��6H�6H�I�I�I����q�q�����0�0�1�1�1�1�R�V�R�V�3D�3D�E�E�E����q�q�"�&��"�&�1�1�2�2�A�A�b�f�b�f�4E�4E�F�F�F����q�q�����0�0�1�1�1�1�R�V�R�V�3D�3D�E�E�E����q�q����|�|�,�,�a�a�����.?�.?�@�@�@����q�q�����0�0�1�1�1�1�R�V�R�V�3D�3D�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	F�	Fs�3NP�P�Pc�N�ttjddd��d��dS)NrrNrz)rr2�lpmvr4s r6�	test_lpmvzTestCephes.test_lpmvRr�r9c�L�ttjdd��d��dSr�)rr2�	mathieu_ar4s r6�test_mathieu_azTestCephes.test_mathieu_aUr0r9c�L�ttjdd��d��dSr�)rr2�	mathieu_br4s r6�test_mathieu_bzTestCephes.test_mathieu_bXr0r9c
��ttjddd��d��tjd���}tjdd��}tjdtjddd��f}ttj|dd�df|ddd�fd	��d||dd�df|ddd�fd	��d
d���dS)NrNr�rzr�c���|tjdzz}|dkrddd|ztd|z��zz
zS|dkr(t|��|dztd|z��zz
S|dkr.td|z��|td	|z��d
zdz
zz
St||z��|t|dz|z��d	|dzzzt|dz
|z��d	|dz
zzz
zz
S)N�rg�;f���?rNryr@�rr>�r�)rSrr
��m�qrZs   r6�	ce_smallqz.TestCephes.test_mathieu_cem.<locals>.ce_smallq_s���
���s��N�A��A�v�v� �A��1��S��1��X�X�
�$5�6�6��a����1�v�v��!��c�!�A�#�h�h��.�.��a����1�Q�3�x�x�!�S��1��X�X�b�[�3�%6�"7�7�7��1�Q�3�x�x�!�S�!�A�#�q��\�\�1�a��c�7�%;�c�1�Q�3��'�l�l�A�q�QR�s�G�>T�%T�"U�U�Ur9�d������r`�rh��|�?r�r�)	rr2�mathieu_cemrSrqrrrdr)r5rCrArBs    r6�test_mathieu_cemzTestCephes.test_mathieu_cem[s����V�'��!�A�.�.�y�9�9�9�
��		V�		V�
��		V�
�I�a������E�!�R�[��b�"�-�-�-�.����*�1�Q�Q�Q�t�V�9�a��Q�Q�Q��i��G�G��J�!�	�!�A�A�A�d�F�)�Q�t�A�A�A�v�Y��>�>�"��	,�	,�	,�	,�	,�	,r9c
��ttjddd��d��tjd���}tjdd��}tjdtjddd��f}ttj|dd�df|ddd�fd	��d||dd�df|ddd�fd	��d
d���dS)NrNr�r�rzc��|tjdzz}|dkr(t|��|dztd|z��zz
S|dkr+td|z��|td|z��zdzz
St||z��|t|dz|z��d|dzzzt|dz
|z��d|dz
zzz
zz
S)Nr=rNr>rr@r>r?)rSrr	r@s   r6�	se_smallqz.TestCephes.test_mathieu_sem.<locals>.se_smallqts���
���s��N�A��A�v�v��1�v�v��!��c�!�A�#�h�h��.�.��a����1�Q�3�x�x�!�C��!��H�H�*�R�-�/�/��1�Q�3�x�x�!�S�!�A�#�q��\�\�1�a��c�7�%;�c�1�Q�3��'�l�l�A�q�QR�s�G�>T�%T�"U�U�Ur9rDrErFr`rGr�r�)	rr2�mathieu_semrSrqrrrdr)r5rMrArBs    r6�test_mathieu_semzTestCephes.test_mathieu_semps����V�'��!�A�.�.�y�9�9�9�
��	V�	V�
��	V�
�I�a������E�!�R�[��b�"�-�-�-�.����*�1�Q�Q�Q�t�V�9�a��Q�Q�Q��i��G�G��J�!�	�!�A�A�A�d�F�)�Q�t�A�A�A�v�Y��>�>�"��	,�	,�	,�	,�	,�	,r9c�N�ttjddd��d��dS�NrNrrq)rr2�mathieu_modcem1r4s r6�test_mathieu_modcem1zTestCephes.test_mathieu_modcem1��'���V�+�A�a��2�2�9�=�=�=�=�=r9c�h�tjddd��tjdd��dd�ddf}tjtjddd��ddd�df}tjddd��dddd�f}tj|||��d}tj||d��dtj||d��dz}tj|||��dd|ztj|||��dzz
}t||d�	��dS)
NrNrr>r(r@r`rBrPrG)	r2�mathieu_modcem2rSrrrd�linspacerRr�r5rArBrZ�y1�fr�y2s       r6�test_mathieu_modcem2zTestCephes.test_mathieu_modcem2�s0����q��1�%�%�%�
�I�a��O�O�A�A�A�d�4�K�(���E�"�+�b�!�R�(�(�)�$�q�q�q��+�6���K��1�a� � ��d�1�1�1��-��
�
#�A�q�1�"�
-�
-�a�
0���$�Q��1�-�-�a�0�
0�6�3I�!�Q�PQ�3R�3R�ST�3U�
U���$�Q��1�-�-�a�0�
0�1�R�4��8N�q�RS�UV�8W�8W�XY�8Z�3Z�
Z����B�U�+�+�+�+�+�+r9c�N�ttjddd��d��dSrQ)rr2�mathieu_modsem1r4s r6�test_mathieu_modsem1zTestCephes.test_mathieu_modsem1�rTr9c�d�tjddd��tjdd��dd�ddf}tjtjddd��ddd�df}tjddd��dddd�f}tj|||��d}tj||d��dtj||d��dz}tj|||��dd|ztj|||��dzz
}t||d�	��dS)
NrNr>r(r@r`rrBrPrG)	r2�mathieu_modsem2rSrrrdrWr^rrXs       r6�test_mathieu_modsem2zTestCephes.test_mathieu_modsem2�s)����q��1�%�%�%�
�I�a��O�O�A�A�A�d�4�K�(���E�"�+�b�!�R�(�(�)�$�q�q�q��+�6���K��1�a� � ��d�1�1�1��-��
�
#�A�q�1�"�
-�
-�a�
0��
�
#�A�q�!�
,�
,�Q�
/�&�2H��A�q�2Q�2Q�RS�2T�
T��
�
#�A�q�!�
,�
,�Q�
/�!�B�$�v�7M�a�QR�TU�7V�7V�WX�7Y�2Y�
Y����B�U�+�+�+�+�+�+r9c��ttjddd��tjtjf��ttjddd��tjtjf��ttjddd��tjtjf��ttjddd��tjtjf��ttjddd��tjtjf��ttjddd��tjtjf��ttjddd��tjtjf��ttj	ddd��tjtjf��dS)N�'rg�������?��?)
rr2rHrSr�rNrRr^rVrar4s r6�test_mathieu_overflowz TestCephes.test_mathieu_overflow�sH���V�'��q�#�6�6�����8H�I�I�I��V�'��q�#�6�6�����8H�I�I�I��V�'��s�C�8�8�2�6�2�6�:J�K�K�K��V�'��s�C�8�8�2�6�2�6�:J�K�K�K��V�+�E�3��<�<�r�v�r�v�>N�O�O�O��V�+�E�3��<�<�r�v�r�v�>N�O�O�O��V�+�E�3��<�<�r�v�r�v�>N�O�O�O��V�+�E�3��<�<�r�v�r�v�>N�O�O�O�O�Or9c��td��D]H}tjddd��}t|ddd���t|d	d
d����IdS)N�<r@rDrCrg.�d�S�?rPrGrNg�Gc��?�-C��6?)rjr2rar)r5r]�vs   r6�test_mathieu_ticket_1847z#TestCephes.test_mathieu_ticket_1847�sr���r���	G�	G�A��&�q�#�r�2�2�A��A�a�D�":��G�G�G�G��A�a�D�":��F�F�F�F�F�		G�	Gr9c�.�tjd��dSr1)r2�modfresnelmr4s r6�test_modfresnelmzTestCephes.test_modfresnelm������1�����r9c�.�tjd��dSr1)r2�modfresnelpr4s r6�test_modfresnelpzTestCephes.test_modfresnelp�ror9c�L�ttjdd��d��dSr�)rr2�	modstruver4s r6�_check_modstruvezTestCephes._check_modstruve�r0r9c�N�ttjddd��d��dSr�)rr2�nbdtrr4s r6�
test_nbdtrzTestCephes.test_nbdtr�r�r9c�N�ttjddd��d��dSr�)rr2�nbdtrcr4s r6�test_nbdtrczTestCephes.test_nbdtrc�r�r9c�N�ttjddd��d��dSr�)rr2�nbdtrir4s r6�test_nbdtrizTestCephes.test_nbdtri�r�r9c�2�tjddd��dS)NrNrAry)r2�nbdtrikr4s r6�__check_nbdtrikzTestCephes.__check_nbdtrik�s����q��B�����r9c�N�ttjddd��d��dSr�)rr2�nbdtrinr4s r6�test_nbdtrinzTestCephes.test_nbdtrin�r�r9c�P�ttjdddd��d��dSr�)rr2�ncfdtrr4s r6�test_ncfdtrzTestCephes.test_ncfdtr�r�r9c���ttjdddd��d��gd�}tjddd|��}t	tjddd|��|��dS)NrNrr�)ryrNrer@rre)rr2�ncfdtrir�r)r5�frhs   r6�test_ncfdtrizTestCephes.test_ncfdtri�sf���V�^�A�q�!�Q�/�/��5�5�5��M�M���M�!�Q��Q�'�'�����q�!�S�!�4�4�a�8�8�8�8�8r9c��gd�}tjd|dd��}ttjd|dd��|��dS)N)rNr@rr@r�rp)r2r�r�
ncfdtridfd)r5�dfdrhs   r6�test_ncfdtridfdzTestCephes.test_ncfdtridfd�sG���i�i���M�!�S�$��+�+����)�!�Q��b�9�9�3�?�?�?�?�?r9c��gd�}tj|ddd��}ttj|ddd��|d���dS)N)rTrNr@rg��@r@r�rpg�h㈵��>rG)r2r�r�
ncfdtridfn)r5�dfnrhs   r6�test_ncfdtridfnzTestCephes.test_ncfdtridfn�sN��!�!�!���M�#�q�$��+�+����)�!�Q��b�9�9�3�T�J�J�J�J�J�Jr9c��gd�}tjdd|d��}ttjdd|d��|��dS)N)ryrer�r@rrp)r2r�r�	ncfdtrinc)r5�ncrhs   r6�test_ncfdtrinczTestCephes.test_ncfdtrinc�sG��
�_�_���M�!�Q��B�'�'����(��A�q�"�5�5�r�:�:�:�:�:r9c	�H�ttjddd��d��ttjddd��d��ttjtjdd��dd	��t
t	jtjd
tjd������ttjd
dtj��d��t
t	jtjtjdd������t
t	jtjd
tjd������t
t	jtjd
dtj������dS)NrNrry�	ir
r�rzr�r�r�)	rr2�nctdtrrrSrrrr�r4s r6�test_nctdtrzTestCephes.test_nctdtr�s&���V�]�1�Q�q�)�)�#�.�.�.��V�]�1�e�R�0�0�#�6�6�6��F�M�"�&�"�b�9�9�3��B�B�B������r�2�6�3�7�7�8�8�9�9�9��F�M�"�b�"�&�9�9�2�>�>�>������r�v�r�2�6�6�7�7�8�8�8������r�2�6�2�6�6�7�7�8�8�8������r�2�r�v�6�6�7�7�8�8�8�8�8r9c�2�tjddd��dS)NrNryr)r2�	nctdtridfr4s r6�__check_nctdtridfzTestCephes.__check_nctdtridf�s�����3�q�!�!�!�!�!r9c�2�tjddd��dSr�)r2�	nctdtrincr4s r6�test_nctdtrinczTestCephes.test_nctdtrinc�s�����1�Q�����r9c�2�tjddd��dS)NrTrry)r2�nctdtritr4s r6�
test_nctdtritzTestCephes.test_nctdtrit�s�����3�r�"�"�"�"�"r9c�N�ttjddd��d��dS)NryrNrz)rr2�nrdtrimnr4s r6�
test_nrdtrimnzTestCephes.test_nrdtrimn�s&���F�O�C��!�4�4�S�9�9�9�9�9r9c�T�ttjddd��ddd���dS)Nryr�rrQ)rr2�nrdtrisdr4s r6�
test_nrdtrisdzTestCephes.test_nrdtrisds:������C��4�4�c��a�	)�	)�	)�	)�	)�	)r9c�4�tjdddd��dSr�)r2�obl_ang1r4s r6�
test_obl_ang1zTestCephes.test_obl_ang1������!�A�a� � � � � r9c��tjddddd��}t|dd��t|dd��dS)NrNrrzr�)r2�obl_ang1_cvr)r5�results  r6�test_obl_ang1_cvzTestCephes.test_obl_ang1_cvsH���#�A�a��!�A�.�.���F�1�I�c�*�*�*��F�1�I�c�*�*�*�*�*r9c�N�ttjddd��d��dS�NrNrr�)rr2�obl_cvr4s r6�
_check_obl_cvzTestCephes._check_obl_cv
r�r9c�4�tjdddd��dSr�)r2�obl_rad1r4s r6�
test_obl_rad1zTestCephes.test_obl_rad1r�r9c�6�tjddddd��dSr�)r2�obl_rad1_cvr4s r6�test_obl_rad1_cvzTestCephes.test_obl_rad1_cv�!����1�Q�q��1�%�%�%�%�%r9c�4�tjdddd��dSr�)r2�obl_rad2r4s r6�
test_obl_rad2zTestCephes.test_obl_rad2r�r9c�6�tjddddd��dSr�)r2�obl_rad2_cvr4s r6�test_obl_rad2_cvzTestCephes.test_obl_rad2_cvr�r9c�L�ttjdd��d��dS)NrNrrK)rr2�pbdvr4s r6�	test_pbdvzTestCephes.test_pbdvs$���V�[��1�%�%�i�0�0�0�0�0r9c�0�tjdd��dSr�)r2�pbvvr4s r6�	test_pbvvzTestCephes.test_pbvv�����A�a�����r9c�0�tjdd��dSr�)r2�pbwar4s r6�	test_pbwazTestCephes.test_pbwa"r�r9c���tjdd��}t|tjd����tjgd�d��}t|gd���dS)NrrNrC�rrNr@)rNrNrN)r2�pdtrrrSrr�r5�vals  r6�	test_pdtrzTestCephes.test_pdtr%sZ���k�!�Q�����C������,�,�,��k�)�)�)�Q�'�'���3�	�	�	�*�*�*�*�*r9c���tjdd��}t|dtjd��z
��tjgd�d��}t|gd���dS)NrrNrCr�r�)rrr)r2�pdtrcrrSrrr�s  r6�
test_pdtrczTestCephes.test_pdtrc,s^���l�1�a� � ���C��R�V�B�Z�Z��0�0�0��l�9�9�9�c�*�*���3�	�	�	�*�*�*�*�*r9c��t��5}|�td��tjdd��ddd��dS#1swxYwYdS)N�-floating point number truncated to an integerry)rr,r-r2�pdtri)r5r/s  r6�
test_pdtrizTestCephes.test_pdtri3s���
�
 �
 �	"�C��J�J�~�'V�W�W�W��L��S�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s�1A
�
A�Ac��tjdd��}ttj|dzd��d��tjdgdgdgggd���}t	|tjd����dS)NryrNrr��ffffff�?)r�#B����;r_)rr)r2�pdtrikr�	gammainccrrSr)r5r]s  r6�test_pdtrikzTestCephes.test_pdtrik8sy���M�#�q�!�!���F�,�Q��U�A�6�6��<�<�<��M�A�3�����/�1A�1A�1A�B�B���1�b�h�v�.�.�/�/�/�/�/r9c�4�tjdddd��dSr�)r2�pro_ang1r4s r6�
test_pro_ang1zTestCephes.test_pro_ang1?r�r9c	�l�ttjddddd��td����dS)NrNrr;)rr2�pro_ang1_cvrr4s r6�test_pro_ang1_cvzTestCephes.test_pro_ang1_cvBs>��!�&�"4�Q�q��1�Q�"?�"?�"'�	�"2�"2�	4�	4�	4�	4�	4r9c�N�ttjddd��d��dSr�)rr2�pro_cvr4s r6�
_check_pro_cvzTestCephes._check_pro_cvFr�r9c�4�tjdddd��dSr�)r2�pro_rad1r4s r6�
test_pro_rad1zTestCephes.test_pro_rad1Is�����!�A�c�"�"�"�"�"r9c�6�tjddddd��dSr�)r2�pro_rad1_cvr4s r6�test_pro_rad1_cvzTestCephes.test_pro_rad1_cvLr�r9c�4�tjdddd��dSr�)r2�pro_rad2r4s r6�
test_pro_rad2zTestCephes.test_pro_rad2Or�r9c�6�tjddddd��dSr�)r2�pro_rad2_cvr4s r6�test_pro_rad2_cvzTestCephes.test_pro_rad2_cvRr�r9c�.�tjd��dSrh)r2�psir4s r6�test_psizTestCephes.test_psiUr�r9c�N�ttjddd��d��dSr1)rr2�radianr4s r6�test_radianzTestCephes.test_radianXs&���V�]�1�Q�q�)�)�!�,�,�,�,�,r9c�J�ttjd��d��dSr�)rr2r�r4s r6�test_rgammazTestCephes.test_rgamma[r,r9c��ttjd��d��ttjd��d��ttjd��d��ttjd��d��ttjd	��d��ttjd
��d��dS)N�333333@r��333333���g������@rGg�������g��@r)rr2�roundr4s r6�
test_roundzTestCephes.test_round^s����V�\�#�&�&�s�+�+�+��V�\�$�'�'��-�-�-��V�\�#�&�&�s�+�+�+��V�\�$�'�'��-�-�-��V�\�#�&�&�s�+�+�+��V�\�$�'�'��-�-�-�-�-r9c�.�tjd��dSrh)r2�shichir4s r6�test_shichizTestCephes.test_shichifr�r9c��tjd��tjtj��\}}t	|tjdz��t	|d��tjtj��\}}t	|tjdz��t
tj|��d��dS)NrNryrz cosine integral(-inf) is not nan)r2�sicirSrrrrr)r5�sr.s   r6�	test_sicizTestCephes.test_siciis�����A�����{�2�6�"�"���1��A�r�u�s�{�+�+�+��A�q�!�!�!��{�B�F�7�#�#���1��A���v��|�,�,�,�������?�@�@�@�@�@r9c�J�ttjd��d��dS�N�Zrz)rr2�sindgr4s r6�
test_sindgzTestCephes.test_sindgt�"���V�\�"�%�%�c�*�*�*�*�*r9c���ttjdd��d��tt	jtjdtj������dS)NrNrT��������?)rr2�smirnovrrSrr�r4s r6�test_smirnovzTestCephes.test_smirnovwsJ���V�^�A�b�)�)�#�.�.�.�������"�&�1�1�2�2�3�3�3�3�3r9c�T�ttjdd��d��ttjdd��d��ttjdd��d��tt	jtjdtj������dS)	NrNrTrCr@��?��rgȿ)rr2�	_smirnovprrSrr�r4s r6�
test_smirnovpzTestCephes.test_smirnovp{s����V�%�a��,�,�b�1�1�1��V�%�a��.�.�0@�A�A�A��V�%�a��.�.�0@�A�A�A�����)�!�R�V�4�4�5�5�6�6�6�6�6r9c��ttjdd��d��tt	jtjdtj������t	jdddd���}ttjd|��dtj	d|��z
��t	jdddd���}ttjd	|��dtj	d	|��z
��dS)
NrNrTrrVT��endpointrr�r>)
rr2�	_smirnovcrrSrr�rWrr)r5�x10�x4s   r6�
test_smirnovczTestCephes.test_smirnovc�s����V�%�a��+�+�C�0�0�0�����)�!�B�F�3�3�4�4�5�5�5��k�!�Q��T�2�2�2���F�,�Q��4�4�a���q�#�8N�8N�6N�O�O�O�
�[��A�q�4�
0�
0�
0���F�,�Q��3�3�Q�v�~�a��7L�7L�5L�M�M�M�M�Mr9c	�Z�ttjdtjdd����d��ttjdtjdd����d��t	tjtjdt
j������dS�NrNrA�333333�?)rr2r�smirnovirrSrr�r4s r6�
test_smirnovizTestCephes.test_smirnovi�s~���F�N�1�V�_�Q�s�-C�-C�D�D�S�I�I�I��F�N�1�V�_�Q�s�-C�-C�D�D�S�I�I�I�������2�6�2�2�3�3�4�4�4�4�4r9c	�Z�ttjdtjdd����d��ttjdtjdd����d��t	tjtjdt
j������dSr#)rr2r�
_smirnovcirrSrr�r4s r6�test_smirnovcizTestCephes.test_smirnovci�s����F�,�Q�v�/@��3�/G�/G�H�H��M�M�M��F�,�Q�v�/@��3�/G�/G�H�H��M�M�M�����*�1�R�V�4�4�5�5�6�6�6�6�6r9c�J�ttjd��d��dSr�)rr2�spencer4s r6�test_spencezTestCephes.test_spence�r,r9c���ttjdd��d��ttjdd��d��ttjdd��d��dS)NrNrryrr@gMo���F�?)rr2�stdtrrr4s r6�
test_stdtrzTestCephes.test_stdtr�s\���V�\�!�A�&�&�s�+�+�+��F�L��1�-�-�t�4�4�4��F�L��1�-�-�~�>�>�>�>�>r9c�0�tjdd��dS)N�ffffff�?rN)r2�stdtridfr4s r6�
test_stdtridfzTestCephes.test_stdtridf�s�����A�����r9c�0�tjdd��dS)NrNr1)r2�stdtritr4s r6�test_stdtritzTestCephes.test_stdtrit�s����q������r9c�L�ttjdd��d��dSr�)rr2�struver4s r6�test_struvezTestCephes.test_struve�r�r9c�J�ttjd��d��dSr	)rr2�tandgr4s r6�
test_tandgzTestCephes.test_tandg�rr9c�L�ttjdd��d��dSr�)rr2�tklmbdar4s r6�test_tklmbdazTestCephes.test_tklmbda�s$���F�N�1�Q�/�/��4�4�4�4�4r9c�.�tjd��dSrh)r2�y0r4s r6�test_y0zTestCephes.test_y0�r�r9c�.�tjd��dSrh)r2rYr4s r6�test_y1zTestCephes.test_y1�r�r9c�0�tjdd��dSrh)r2�ynr4s r6�test_ynzTestCephes.test_yn�rr9c�0�tjdd��dSrh)r2�yvr4s r6�test_yvzTestCephes.test_yv�rr9c�0�tjdd��dSrh)r2�yver4s r6�
_check_yvezTestCephes._check_yve�r&r9c��tdd��tdd��tdd��tdd��tdd	��tdd
��tdd��td
d��tdd��tdd��tdd��tdd��tdd��tdd��tdd��tdd��g}tdd��tdd ��td!d"��td#d$��td%d&��td'd(��td)d*��td+d,��td-d.��td/d��td0d1��td2d3��td4d5��td6d7��td8d9��td:d:��g}ttj||d;�<��dS)=Ng�������@g+����п皙����ٿr�r$r�rrzg"�g"@g�4׵/Y�g�8EGr��?rgffffff@i���g�����>@r�g|�Pk��?rVrNi��r(r�i���i���gj�@��ļ�Bg��0"�b��gpتO#�M?g�MF�>��?g5-��
���g`�����?g�	S�+�?g6U����?gǗ��ʿgjD{�?/,Gg`�0Gg�!�^��?g�nF5o�{�gI�\Y�?g7�f�8�g�oC9	�?g�yh���g�E�b��r?g�
��{��g�.�
��?ga~gT-s?gɤ�,P&�?g�|���b�gޗ�Y3��g�!ؑ-�@g�i$�bg����h�gy(�V@�^�g
һ���>g�����>gx\���h�<rFrG)rOr,r2�wofz)r5rZ�ws   r6�	test_wofzzTestCephes.test_wofz�s;��
�U�8�
$�
$�g�d�2�&6�&6���B���
�S��_�_�g�c�#�.�.���B���
�%�f�
-�
-�w�s�3�/?�/?�
�S��
�
���G� 4� 4�
�R��]�]�G�C��O�O�W�Q�s�^�^�
�R��_�_�g�c�#�.�.���T�0B�0B�
��
�F�F�
H�
H��G�I�
K�
K��G�H�
J�
J��H�I�
K�
K��F�F�
H�
H��G�I�
K�
K��D�G�
I�
I��H�I�
K�
K��H�I�
K�
K��J��
�
��H�G�
I�
I��H�G�
I�
I��F�F�
H�
H��F�F�
H�
H��F�F�
H�
H��F�F�
H�
H�?!
��D	�&�+�q�!�%�8�8�8�8�8�8r9N)��__name__�
__module__�__qualname__r7r<r`rerrrwr|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�rrrrr$r)r+r/r3r5r8r<r?rBrErIrLrP�pytest�mark�xfailr]rbrerirkrnrsrwrzr|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�rrrrrrrrrrr"r%r*r0r3r6r9rIrOrSr\r_rbrfrkrnrrrurxr{r~�_TestCephes__check_nbdtrikr�r�r�r�r�r�r��_TestCephes__check_nctdtridfr�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�rrrrrrr!r&r)r,r/r3r6r9r<r?rBrDrGrJrMrT�r9r6r/r//s�������������2�2�2�.2�2�2�*�*�*�.G�G�G�,/�/�/�0�0�0�0�0�0�/�/�/����(�(�(�)�)�)�(�(�(�)�)�)�3�3�3�,�,�,�Q�Q�Q�,�,�,�D�D�D�
/�/�/�.�.�.�/�/�/�0�0�0�0�0�0�0�0�0�,�,�,�-�-�-�-�-�-�.�.�.�7�7�7�<2�2�2�2�2�2�1�1�1�*�*�*�*�*�*�2�2�2�A�A�A�L�L�L�2N�N�N�
+�+�+�0�0�0����)�)�)�0�0�0�)�)�)�:�:�:�*�*�*�3�3�3�)�)�)�3�3�3�N�N�N�&�[���M��N�N�F�F�O�N�F�($�$�$�$�$�$�@�@�@��[���4��5�5�4�4�6�5�4�1�1�1�2�2�2�+�+�+�3�3�3����P�P�P�-�-�-�2�2�2�.�.�.�/�/�/����������������������
1�1�1�'�'�'�(�(�(�'�'�'�(�(�(�������������1�1�1�1�1�1�1�1�1�.�.�.�)�)�)�*�*�*�'�'�'�'�'�'�)�)�)�)�)�)�*�*�*����������������)�)�)�������������2�2�2�0�0�0�/�/�/�.�.�.�4�4�4�������,�,�,�F�F�F�&-�-�-�0�0�0�0�0�0�,�,�,�*,�,�,�&>�>�>�
,�
,�
,�>�>�>�,�,�,�	P�	P�	P�G�G�G�������0�0�0�.�.�.�/�/�/�/�/�/� � � �0�0�0�1�1�1�9�9�9�@�@�@�
K�K�K�
;�;�;�

9�
9�
9�"�"�"� � � �#�#�#�:�:�:�)�)�)�!�!�!�+�+�+�
/�/�/�!�!�!�&�&�&�!�!�!�&�&�&�1�1�1�������+�+�+�+�+�+�"�"�"�
0�0�0�!�!�!�4�4�4�/�/�/�#�#�#�&�&�&�!�!�!�&�&�&����-�-�-�+�+�+�.�.�.����	A�	A�	A�+�+�+�4�4�4�7�7�7�N�N�N�5�5�5�
7�7�7�
+�+�+�?�?�?�
������-�-�-�+�+�+�5�5�5����������������*9�*9�*9�*9�*9r9r/c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestAiryc�>�tjd��}t|tgd���d��tjd��}t|tgd���d��tjd��}t|tgd���d��dS)N�G�z��?)g*�����?gTk'kP�Ŀg�e��+�?g�yC�yt�?r>g=
ףp=�?)g�'�$'�?ge��οg��L���?g�
�HVV�?g
ףp=
׿)gl@��D|�?gV��~׭ͿgU�����?g�3{ɔ��?)r r3rrr>s  r6r7zTestAiry.test_airy�s���
�L�����!�!�E�*X�*X�*X�$Y�$Y�Z[�\�\�\��L�����!�!�E�*W�*W�*W�$X�$X�YZ�[�[�[��L�����!�!�E�*X�*X�*X�$Y�$Y�Z[�\�\�\�\�\r9c��tjd��}tjd��}dgdz}td��D]-}||t	dtd��z��z||<�.tdd��D]H}||t	t
tdtd��z������z||<�It||d��dS)Nr�r>r@gN贁N{?rD)	r r;r3rjrr�absrr)r5�a�b�b1r\s     r6r<zTestAiry.test_airye�s����M�$�����L������V�A�X���q���	6�	6�A��a�D��\�$�t�*�*�4�5�5�5�B�q�E�E��q����	B�	B�A��a�D��c�$�|�D��J�J�'>�"?�"?�@�@�@�A�A�A�B�q�E�E�!�!�B�q�)�)�)�)�)r9c�,�tjd��}tddg��tddg��tddg��tdd	g��f}t||d
��tjd��}t|dtgd
���d��t|dtgd���d��t|dtgd���d��t|dtgd���d��dS)Nr@g��l����goe��2+
�g(��0[�gX�*�J�g�Uf�ݿg˰zU�`�?g4�c1=C�?g�C�uT�r>r�r)g�&����g(�.�2+
�g����R�g}�`���g�%�́�rVrN)g7�;1[�g�e�*�J�g�Vw��g�L�� �g<��3���r`)g
�N�ݿg3%IQ�`�?gZy��Ό׿gʀ1�1^�?g�3�3t�տr)gq�M0=C�?g7��uT�g\�G`���?g�p⍞v�g$�.m��?)r �bi_zerosrr)r5�bi�bias   r6�
test_bi_zeroszTestAiry.test_bi_zeros�s���
�
�a�
 �
 ���k�:�.�/�/��k�;�/�0�0��k�:�.�/�/��j�+�.�/�/�1��	"�"�S��+�+�+�
�
�a�
 �
 ��!�"�Q�%��/C�/C�/C�)D�)D�EG�		H�	H�	H�	"�"�Q�%��/C�/C�/C�)D�)D�EG�		H�	H�	H�	"�"�Q�%��/C�/C�/C�)D�)D�EG�		H�	H�	H�	"�"�Q�%��/B�/B�/B�)C�)C�DF�		G�	G�	G�	G�	Gr9c	���tjd��}t|tdg��tdg��tdg��tdg��fd��dS)NrNg��c�q��g!�x�L�gM�St$�?g�~�:p�?r>)r �ai_zerosrr)r5�ais  r6�
test_ai_zeroszTestAiry.test_ai_zerossi��
�
�a�
 �
 ��!�"�e�[�M�&:�&:�%*�K�=�%9�%9�%*�F�8�_�_�%*�F�8�_�_�&6�78�	9�	9�	9�	9�	9r9c��tjd��\}}}}tj|��\}}}}tj|��\}}	}}dt|��dzz}
t|��dz}t	||d���t	||d���t	||
zddd���t	|	|zddd���t	|dd�gd	�d���t	|dd�gd
�d���dS)N�P�rNr�rPrGrrQrD)g�u�q��g�qHkZ�g4��
�g��9Ζ%�gB�~����g�L��"�)g����L�gQ��O�	�gMQn�G�g3�:��g)�}�g���� �)r rmr3rcr)r5rZ�zp�ai_zpx�aip_zx�ai_z�aip_z�_�ai_zp�aip_zp�ai_envelope�aip_envelopes            r6�test_ai_zeros_bigzTestAiry.test_ai_zeros_big#sP�� '� 0�� 7� 7���2�v�v�#�L��O�O���e�Q��%�l�2�.�.���v�q�!���A�����&���2�w�w����	���E�2�2�2�2����E�2�2�2�2�	��[�(�!�%�a�@�@�@�@���|�+�Q�U��C�C�C�C�	��"�1�"��
:�
:�
:�@E�	G�	G�	G�	G�	��2�A�2��
:�
:�
:�@E�	G�	G�	G�	G�	G�	Gr9c��tjd��\}}}}tj|��\}}}}tj|��\}}}}	dt|��dzz}
t|��dz}t	||d���t	||d���t	||
zddd���t	|	|zddd���t	|dd�gd	�d���t	|dd�gd
�d���dS)NrqrNr�rPrGrrQrD)gx&����gg�-�2+
�g����R�gg�`���gu�%�́�g{�� �)gK;1[�g���*�J�g��Vw��g<w�� �gd
�3���g/{�
"�)r rhr3rcr)r5rZrr�bi_zpx�bip_zxrw�bi_z�bip_z�bi_zp�bip_zp�bi_envelope�bip_envelopes            r6�test_bi_zeros_bigzTestAiry.test_bi_zeros_big;sP�� '� 0�� 7� 7���2�v�v�#�L��O�O���1�d�E�%�l�2�.�.���1�e�V���A�����&���2�w�w����	���E�2�2�2�2����E�2�2�2�2�	��[�(�!�%�a�@�@�@�@���|�+�Q�U��C�C�C�C�	��"�1�"��
:�
:�
:�@E�	G�	G�	G�	G�	��2�A�2��
:�
:�
:�@E�	G�	G�	G�	G�	G�	Gr9N)	rUrVrWr7r<rkror|r�r]r9r6r_r_�s}������]�]�]�*�*�*�G�G�G�B9�9�9�G�G�G�0G�G�G�G�Gr9r_c��eZdZd�ZdS)�TestAssocLaguerrec���tjdd��}tjddd��}t||d��d��tjddd��}t||d��d��dS)NrVrNrr>)r �genlaguerre�assoc_laguerrer)r5�a1�a2s   r6�test_assoc_laguerrez%TestAssocLaguerre.test_assoc_laguerreUsv��
�
 ��A�
&�
&��
�
#�B�r�!�
,�
,��!�"�R�R��V�V�A�.�.�.�
�
#�A�b��
+�
+��!�"�R�R��U�U�1�-�-�-�-�-r9N)rUrVrWr�r]r9r6r�r�Ts#������.�.�.�.�.r9r�c��eZdZd�ZdS)�TestBesselpolyc��dS�Nr]r4s r6r�zTestBesselpoly.test_besselpoly^����r9N)rUrVrWr�r]r9r6r�r�]s#������
�
�
�
�
r9r�c�z�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�ZdS)�
TestKelvinc�P�tjd��}t|dd��dS)Nr@g���T�?r�)r r�r)r5�mbeis  r6r�zTestKelvin.test_beics(���{�1�~�~���D�"4�Q�7�7�7�7�7r9c�P�tjd��}t|dd��dS)Nr@gD��,X�?r�)r r�r)r5�mbeips  r6r�zTestKelvin.test_beipg�(����Q�����E�"5�a�8�8�8�8�8r9c�P�tjd��}t|dd��dS)Nr@g�PA�4�?r�)r r�r)r5�mbers  r6r�zTestKelvin.test_berks(���{�1�~�~���D�!4�Q�7�7�7�7�7r9c�P�tjd��}t|dd��dS)Nr@g��ii�߿r�)r r�r)r5�mberps  r6r�zTestKelvin.test_berpo�(����Q�����E�"6�q�9�9�9�9�9r9c�n�tjd��}t|tgd���d��dS)Nr��g&jj�@g��+�"@g(�r�w�+@g����U2@g�`<��6@r>)r �	bei_zerosrr)r5ris  r6�test_bei_zeroszTestKelvin.test_bei_zerosssP��
�
�q�
!�
!��!�"�U�,6�,6�,6�&7�&7�89�		:�	:�	:�	:�	:r9c�n�tjd��}t|tgd���d��dS)Nr�)g��yWo.@g╲�ݏ @gנ��{)@g�K��11@g�Wc"�5@r>)r �
beip_zerosrr)r5�bips  r6�test_beip_zeroszTestKelvin.test_beip_zeros|s\��� ��#�#��!�#�e�-C�-C�-C�'D�'D�EF�		G�	G�	G�	G�	Gr9c�n�tjd��}t|tgd���d��dS)Nr��g�\����@g�6�ُ�@gӟ�HY'@g>"�D0@ggaO;��4@r>)r �	ber_zerosrr)r5r�s  r6�test_ber_zeroszTestKelvin.test_ber_zeros�sP�����"�"��!�#�e�-7�-7�-7�'8�'8�9:�		;�	;�	;�	;�	;r9c�n�tjd��}t|tgd���d��dS)Nr��g� ��'@g��s�%@g�F ^��-@g�vۅ�j3@g����B�7@r>)r �
berp_zerosrr)r5�brps  r6�test_berp_zeroszTestKelvin.test_berp_zeros�sP��� ��#�#��!�#�e�-7�-7�-7�'8�'8�9:�		;�	;�	;�	;�	;r9c
��tjd��}t|tjd��tjd��dzztjd��tjd��dzztjd��tjd��dzztj	d��tj
d��dzzfd��dS)Nr@rWr>)r r
rr�r�rr�r�r�rr)r5�mkelvs  r6�test_kelvinzTestKelvin.test_kelvin�s�����q�!�!��!�%���Q���'�+�a�.�.��:K�)K�)0��Q���'�+�a�.�.��:K�)K�)0��a���7�<��?�?�2�;M�)M�)0��a���7�<��?�?�2�;M�)M�)O�PQ�	R�	R�	R�	R�	Rr9c�P�tjd��}t|dd��dS)Nr@g����>�ɿr�)r r�r)r5�mkeis  r6r�zTestKelvin.test_kei�s(���{�1�~�~���D�!5�a�8�8�8�8�8r9c�P�tjd��}t|dd��dS)Nr@gr�@d�"�?r�)r rr)r5�mkeips  r6rzTestKelvin.test_keip�r�r9c�P�tjd��}t|dd��dS)Nr@gܙ�
U��r�)r rr)r5�mkers  r6rzTestKelvin.test_ker�s(���{�1�~�~���D�!6�q�9�9�9�9�9r9c�P�tjd��}t|dd��dS)Nr@g�^.n3J��r�)r rr)r5�mkerps  r6rzTestKelvin.test_kerp�r�r9c�n�tjd��}t|tgd���d��dS)Nr��g�E�>Q@gB��=� @g�PN���)@g�m��91@g
���%�5@r>)r �	kei_zerosrr)r5r�s  r6�test_kei_zeroszTestKelvin.test_kei_zeros�sP�����"�"��!�#�e�-8�-8�-8�'9�'9�:;�		<�	<�	<�	<�	<r9c�n�tjd��}t|tgd���d��dS)Nr��g�W�f,�@g��?���"@g�FZ*o�+@g�Op��N2@gE
�a��6@r>)r �
keip_zerosrr)r5rs  r6�test_keip_zeroszTestKelvin.test_keip_zeros��P���!�!�$�$��!�$�u�.:�.:�.:�(;�(;�<=�		>�	>�	>�	>�	>r9c�D�tjd��}|\}}}}}}}}	t|tgd���d��t|tgd���d��t|tgd���d��t|tgd���d��t|tgd���d��t|tgd���d��t|tgd	���d��t|	tgd
���d��dS)Nr�r�r>r�)���#�?�Q�5�U�@�q8�9 %@�o
l�`.@g�O0�q3@r�r�)gu��m.@g���ݏ @g�s��{)@g�䠄11@gN(D�!�5@�g���S@g8�9@�@g�^��C'@g��1ZG0@g+���ڇ4@r�)r �kelvin_zerosrr)
r5�tmp�berz�beiz�kerz�keiz�berpz�beipz�kerpz�keipzs
          r6�test_kelvin_zeroszTestKelvin.test_kelvin_zeros�s����"�1�%�%��69�3��T�$�t�E�%��e�!�$�u�.9�.9�.9�(:�(:�;<�		=�	=�	=�
	"�$�u�.9�.9�.9�(:�(:�;<�		=�	=�	=�
	"�$�u�.9�.9�.9�(:�(:�;<�		=�	=�	=�
	"�$�u�.9�.9�.9�(:�(:�;<�		=�	=�	=�
	"�%��/:�/:�/:�);�);�<=�		>�	>�	>�
	"�%��/:�/:�/:�);�);�<=�
	>�	>�	>�	"�%��/:�/:�/:�);�);�<=�		>�	>�	>�
	"�%��/:�/:�/:�);�);�<=�		>�	>�	>�	>�	>r9c�n�tjd��}t|tgd���d��dS)Nr�)r�r�r�r�gD�;��q3@r>)r �	ker_zerosrr)r5rs  r6�test_ker_zeroszTestKelvin.test_ker_zeros�sP�����"�"��!�#�e�-9�-9�-9�':�':�;<�		=�	=�	=�	=�	=r9c�n�tjd��}t|tgd���d��dS)Nr�r�r>)r �
kerp_zerosrr)r5rs  r6�test_kerp_zeroszTestKelvin.test_kerp_zeros�r�r9N)rUrVrWr�r�r�r�r�r�r�r�r�r�rrrr�r�r�r�r�r]r9r6r�r�bs)������8�8�8�9�9�9�8�8�8�:�:�:�:�:�:�G�G�G�;�;�;�;�;�;�R�R�R�9�9�9�9�9�9�:�:�:�:�:�:�<�<�<�>�>�>�,>�,>�,>�\=�=�=�>�>�>�>�>r9r�c��eZdZd�ZdS)�
TestBernoullic�n�tjd��}t|tgd���d��dS)Nr�)rzrg-!�lV�?r�g��镲��r�r>)r �	bernoullirr)r5�brns  r6�test_bernoullizTestBernoulli.test_bernoulli�sP�����"�"��!�#�e�-5�-5�-5�'6�'6�
78�	9�	9�	9�	9�	9r9N)rUrVrWr�r]r9r6r�r��s#������9�9�9�9�9r9r�c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestBetac���tjdd��}tjd��tjd��ztjd��z}t||d��dS)Nr@r>rDr>)r r�r�r)r5�bet�betgs   r6r�zTestBeta.test_betasX���l�1�Q�����
�a� � ���q�!1�!1�1�7�=��3C�3C�C���C��Q�'�'�'�'�'r9c��tjdd��}tttjdd������}t||d��dS)Nr@r>r>)r r�r
rcr�r)r5�betlnr�s   r6r�zTestBeta.test_betalnsL����q��#�#���#�g�l�1�Q�'�'�(�(�)�)���E�#�a�(�(�(�(�(r9c�T�tjddd��}t|dd��dS)NrNrr>)r r�r)r5�btincs  r6r�zTestBeta.test_betaincs-�����!�B�'�'���E�#�a�(�(�(�(�(r9c��tjddd��}tjdd|��}t|dd��dS)Nr@r>ryr�)r r�r�r)r5rY�comps   r6r�zTestBeta.test_betaincinvsA����q��2�&�&����q��1�%�%���D��A�&�&�&�&�&r9N)rUrVrWr�r�r�r�r]r9r6r�r�sP������(�(�(�
)�)�)�
)�)�)�'�'�'�'�'r9r�c�J�eZdZd�Zej�dddg��ej�dddg��ej�dddg��ej�d	d
dg��d���������Zd
�Zd�Z	d�Z
d�ZdS)�TestCombinatoricsc��ttjddgddg��ddg��ttjdd��d��t	tjddd���d��t	tjdddd�	��d
��td�t
d��D��tjd
tt
d������d���tj	t��jdz}t	tj||dz
d���|��d}tjddd���|ksJ�dS)Nr`rr>�^@g@j@T��exact�x)r��
repetition��c�<�g|]}tjd|d�����S)rcTr�)r �comb)�.0r]s  r6�
<listcomp>z/TestCombinatorics.test_comb.<locals>.<listcomp>"s)��L�L�L�Q���b�!�4�8�8�8�L�L�Lr9rPrcr�rRrNlhU7`��S�?QrD�2)rr r�rrrrj�listrS�iinfori�max)r5�iir[s   r6�	test_combzTestCombinatorics.test_combsB��!�'�,��B�x�!�Q��"@�"@�4��,�O�O�O��G�L��Q�/�/��6�6�6��W�\�"�a�t�4�4�4�c�:�:�:��W�\�"�a�t��E�E�E�s�K�K�K��L�L�%��)�)�L�L�L���R��e�B�i�i���9�9��	G�	G�	G�	G��X�c�]�]�
��
"���W�\�"�b��d�$�7�7�7��<�<�<�1���|�C��4�0�0�0�H�<�<�<�<�<�<r9r�TF�legacyr]rr�N�@r>c��|rs|t|��ks|t|��krMtjtd���5t	j||d||���}ddd��n#1swxYwYnt	j||d||���}|rG|r't||zdz
��t|��}}d}nt|��t|��}}t	j||||���}t
||��dS)Nz1Non-integer arguments are currently being cast to��matchT)r�rr�rNF)rr�)rirX�warns�DeprecationWarningr r�r)r5rr]rr�r�r[s       r6�test_comb_legacyz"TestCombinatorics.test_comb_legacy+sZ���		9�q�C��F�F�{�{�a�3�q�6�6�k�k���"�J����
=�
=�!��a��$�v�1;�=�=�=��	
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=���\�!�Q�d�6�-7�9�9�9�F��		&��
&��1�q�5�1�9�~�~�s�1�v�v�1��"�
�
��1�v�v�s�1�v�v�1���<��1�V�
�K�K�K���V�X�&�&�&�&�&s�A*�*A.�1A.c���d}d}tj|��}tj|��}tj||d���}tj||d���}||ksJ�dS)N�FrJTr�)rS�int64r r�)r5r\r]�np_n�np_k�res_np�res_pys       r6�test_comb_with_np_int64z)TestCombinatorics.test_comb_with_np_int64Isi�������x��{�{���x��{�{����d�D��5�5�5����a��$�/�/�/���������r9c��ttjddd���d��ttjddd���d��ttjddd���d��ttjddd���d��ttjgd�gd	���gd
���dS)Nr@rTr�rrCF�r@rCr@r`�rrrCr)r�r�r�r�)rr r�rr4s r6�test_comb_zerosz!TestCombinatorics.test_comb_zerosR����W�\�!�Q�d�3�3�3�Q�7�7�7��W�\�"�a�t�4�4�4�a�8�8�8��W�\�!�R�t�4�4�4�a�8�8�8��W�\�!�R�u�5�5�5�q�9�9�9�!�'�,�~�~�~�}�}�}�"M�"M�"�"�"�	$�	$�	$�	$�	$r9c���ttjddgddg��ddg��ttjdd��d��t	tjddd���d��dS)	Nr`rr>���@g��@Tr�i�)rr �permrrr4s r6�	test_permzTestCombinatorics.test_permZsm��!�'�,��B�x�!�Q��"@�"@�4��-�P�P�P��G�L��Q�/�/��6�6�6��W�\�"�a�t�4�4�4�c�:�:�:�:�:r9c��ttjddd���d��ttjddd���d��ttjddd���d��ttjddd���d��ttjgd�gd	���gd
���dS)Nr@rTr�rrCFrr)r�r�r�r)rr rrr4s r6�test_perm_zerosz!TestCombinatorics.test_perm_zeros_rr9N)rUrVrWrrXrY�parametrizer	rrrrr]r9r6r�r�s�������
=�
=�
=��[���\�D�%�=�9�9��[���X��e�}�5�5��[���S�3��(�+�+��[���S�3��(�+�+�'�'�,�+�,�+�6�5�:�9�'�4 � � �$�$�$�;�;�;�
$�$�$�$�$r9r�c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestTrigonometricc�R�tjd��}d}t||��dS)N�r�)r r�r)r5�cb�cbrls   r6r�zTestTrigonometric.test_cbrtis,��
�\�"�
�
�����B�t�$�$�$�$�$r9c�T�tjd��}d}t||d��dS)Ngfffff�;@g鎖��C@r>)r r�r)r5�cb1�cbrl1s   r6�
test_cbrtmorezTestTrigonometric.test_cbrtmorens.���l�4� � �����C��a�(�(�(�(�(r9c�~�tjd��}ttdz��}t	||d��dS)Nrr�r>�r rr
rr)r5�cdg�cdgrls   r6rzTestTrigonometric.test_cosdgss8���m�B�����B�s�F�����C��a�(�(�(�(�(r9c�~�tjd��}ttdz��}t	||d��dS�NrJ�@r>r))r5�cdgm�cdgmrls   r6�test_cosdgmorez TestTrigonometric.test_cosdgmorexs8���}�R� � ���R��V�����D���*�*�*�*�*r9c�(�tjd��tjd��tjtdz��f}td��dz
td��dz
ttdz��dz
f}t	||d��dS)NrrUr`rNr>)r rrr
r)r5�cs�csrls   r6rzTestTrigonometric.test_cosm1}sv���m�A���w�}�R�0�0���r�"�u�1E�1E�
F���A���q���R�����3�r�"�u�:�:�a�<�0��!�"�T�!�,�,�,�,�,r9c��tjd��}ttdz��dz}t	||d��dS)NrJr.rCr>�r rrrr)r5�ct�ctrls   r6rzTestTrigonometric.test_cotdg�s=��
�]�2�
�
���2�c�6�{�{�R� ���B�t�A�&�&�&�&�&r9c��tjd��}ttdz��dz}t	||d��dS)Nr
rGrCr>r6)r5�ct1�ctrl1s   r6�test_cotdgmorez TestTrigonometric.test_cotdgmore�s=���m�B�����B�s�F���b�!���C��a�(�(�(�(�(r9c��ttjd��dd��ttjd��dd��ttjd��dd��ttjd��dd��ttjd	��dd��ttjd
��dd��ttjd��dd��ttjd��dd��ttjd
��dd��ttjd��dd��ttjd��dd��ttjd��dd��ttjd��dd��dS)Nr
rz�����rrr�i������y���������ii��;����i�)rr rr4s r6�test_specialpointsz$TestTrigonometric.test_specialpoints�st���G�M�"�-�-�s�B�7�7�7��G�M�#�.�.��b�9�9�9��G�M�"�-�-�s�B�7�7�7��G�M�#�.�.��R�8�8�8��G�M�#�.�.��b�9�9�9��G�M�$�/�/��b�9�9�9��G�M�#�.�.��R�8�8�8��G�M�$�/�/��r�:�:�:��G�M�#�.�.��R�8�8�8��G�M�$�/�/��b�9�9�9��G�M�#�.�.��b�9�9�9��G�M�$�/�/��b�9�9�9��G�M�#�.�.��R�8�8�8�8�8r9c��ttjdg��d��ttjd��d��dS)NrrNr�rz)rr �sincrr4s r6�	test_sinczTestTrigonometric.test_sinc�s>���7�<���,�,�a�0�0�0��W�\�#�&�&��,�,�,�,�,r9c�N�tjd��}t|d��dSr
)r rr)r5�sns  r6rzTestTrigonometric.test_sindg�s'��
�]�2�
�
���R������r9c��tjd��}ttdz��}t	||d��tjd��}ttdz��}t	||d��dS)NrJr.r>r
rG)r rr	rr)r5�snm�snmrl�snm1�snmrl1s     r6�test_sindgmorez TestTrigonometric.test_sindgmore��h���m�B�����B�s�F�����C��a�(�(�(��}�R� � ���R��V�����D���*�*�*�*�*r9N)rUrVrWr�r'rr1rrr<rFrIrrQr]r9r6rrhs�������%�%�%�
)�)�)�
)�)�)�
+�+�+�
-�-�-�
'�'�'�
)�)�)�

9�
9�
9�-�-�-�
���+�+�+�+�+r9rc� �eZdZd�Zd�Zd�ZdS)�	TestTandgc�~�tjd��}ttdz��}t	||d��dSr-�r r;rrr)r5�tn�tnrls   r6r<zTestTandg.test_tandg�s8��
�]�2�
�
���2�c�6�{�{���B�t�A�&�&�&�&�&r9c��tjd��}ttdz��}t	||d��tjd��}ttdz��}t	||d��dS)Nr
rGr>rhr�rV)r5�tnm�tnmrl�tnm1�tnmrl1s     r6�test_tandgmorezTestTandg.test_tandgmore�rRr9c��ttjd��dd��ttjd��dd��ttjd��dd��ttjd��dd��ttjd	��dd��ttjd
��dd��ttjd��dd��ttjd��dd��ttjd
��dd��ttjd��dd��ttjd��dd��dS)Nrr�r>r
rzr?rr@rAr=iL���rBrCrDrE)rr r;r4s r6rFzTestTandg.test_specialpoints�s<���G�M�!�,�,�c�2�6�6�6��G�M�"�-�-�s�B�7�7�7��G�M�#�.�.��b�9�9�9��G�M�#�.�.��b�9�9�9��G�M�$�/�/��b�9�9�9��G�M�#�.�.��R�8�8�8��G�M�$�/�/��b�9�9�9��G�M�#�.�.��R�8�8�8��G�M�$�/�/��r�:�:�:��G�M�#�.�.��b�9�9�9��G�M�$�/�/��b�9�9�9�9�9r9N)rUrVrWr<r^rFr]r9r6rTrT�sA������'�'�'�
+�+�+�:�:�:�:�:r9rTc�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�	TestEllipc�D�tjdtj��dS)zRegression test for #912.ryN)r r2rSr�r4s r6�test_ellipj_nanzTestEllip.test_ellipj_nan�s����s�B�F�#�#�#�#�#r9c��tjdd��}td��td��ddg}t	||d��dS)Nrrrz�
)r r2r	r
r)r5�el�rels   r6r3zTestEllip.test_ellipj�sE��
�^�C��
"�
"���3�x�x��C����T�*��!�"�S��,�,�,�,�,r9c�\�tjd��}t|dd��ttjd��t
j��ttjd��tdz��ttjt
j��d��ttjt
j��t
j��ttjd��t
j��ttjd��d	��dS)
Nrg�;{yэ�?rVr�rzr@rC���g����N�?)
r r"rrr#rSrrr�r)r5�elks  r6r5zTestEllip.test_ellipk�s����n�R� � ���C� 1�"�5�5�5��W�%�c�*�*�B�F�3�3�3��W�%�c�*�*�B�q�D�1�1�1��W�%�b�f�-�-�s�3�3�3��W�%�b�f�-�-�r�v�6�6�6��W�%�b�)�)�2�6�2�2�2����s�+�+�-?�@�@�@�@�@r9c��tjtdzd��}tjd��}t	||d��dtzdz}dtzdz}t|��dz}tj||��}t	|dd��t
tjtdzd	��tdz��t
tjtdzd
��tj��t
tjtdztj��d	��t
tjtdztj	��tj	��t
tjtdzd��tj	��t
tjdd��d	��t
tjtjd��tj��t
tjtjd��tj��t
tjtjtj��tj	��t
tjtjtj��tj	��t
tjtjtj��tj	��t
tjtjtj��tj	��t
tjtj	d��tj	��t
tjtj	tj	��tj	��ttjd
d��dd���ttjdd��d��dS)Nr@rrprcr=r
g�fo�Kh�?r>r�rzrryg��t����?rNrAr�rG�6<�R�!�?rigf�O��N�?)r r7rr"rr	rrSrr�r)r5�elkincrj�alpha�phirAs      r6r8zTestEllip.test_ellipkinc�s����"�2�a�4��+�+���n�S�!�!���F�3�r�*�*�*��2��c�	����e�C�i����J�J��M���"�3�q�)�)���F�:�a�0�0�0�	�W�&�r�!�t�S�1�1�2�a�4�8�8�8��W�&�r�!�t�S�1�1�2�6�:�:�:��W�&�r�!�t�b�f�W�5�5�s�;�;�;��W�&�r�!�t�R�V�4�4�b�f�=�=�=��W�&�r�!�t�Q�/�/���8�8�8��W�&�q�#�.�.��4�4�4��W�&�r�v�s�3�3�R�V�<�<�<��W�&���w��4�4�r�v�g�>�>�>��W�&�r�v�r�v�6�6���?�?�?��W�&�r�v���w�7�7���@�@�@��W�&���w����8�8�"�&�A�A�A��W�&���w���7�7���@�@�@��W�&�r�v�s�3�3�R�V�<�<�<��W�&�r�v�r�v�6�6���?�?�?���)�*=�q�A�A�3�U�S�S�S�S���)�&�#�6�6�8K�L�L�L�L�Lr9c��d}d}tj|d��}g}td��D],}|�|��tj|d��}�-t	j||��}t
|tj|d��d��t	j|tz|��}t
|tj|d��d��dS)	N���?�P�ag��?rr`rNgV�^�8j�?g,j6�Ƅ@r@)	rS�	nextafterrj�appendr r7r�	full_liker�r5�mbadrorA�mvals�jr��f1s        r6�test_ellipkinc_2zTestEllip.test_ellipkinc_2�s���#�� ���L��q�!�!�����r���	#�	#�A��L�L��O�O�O���Q��"�"�A�A���c�5�)�)��&�q�"�,�q�:L�*M�*M�q�Q�Q�Q�
�
�s�R�x��
/�
/��&�r�2�<��<N�+O�+O�QR�S�S�S�S�Sr9c��tjddd��}tjddd��}tjdtdzdd���}t	tj|d	��tjtj|����d
���t	tj|d	��tjtj|����d
���t	tj|d	��tjtj|����d
���ttjtjdzd	��tj
��t	tj|d	��tjtj|����d
���t	tj|d	��tjtj|����d
���t	tj|d	��tjtj|����d
���ttjtjdzd	��tj
��dS)Ni���i��rg��FF�g<rTr@FrrNrQrG)rSrdrWrrr r7�arcsinhrrr)r5�xlog�xlin�xlin2s    r6�test_ellipkinc_singularz!TestEllip.test_ellipkinc_singulars����{�4��b�)�)���{�5�#�r�*�*����C��A��r�E�:�:�:����)�$��2�2�B�J�r�v�d�|�|�4L�4L�SW�X�X�X�X���)�$��2�2�B�J�r�v�d�|�|�4L�4L�SW�X�X�X�X���)�%��3�3�R�Z���u�
�
�5N�5N�UY�Z�Z�Z�Z��W�&�r�u�Q�w��2�2�B�F�;�;�;���)�4�%��3�3�R�Z����u�
�
�5N�5N�UY�Z�Z�Z�Z���)�4�%��3�3�R�Z����u�
�
�5N�5N�UY�Z�Z�Z�Z���)�5�&�!�4�4�b�j�������6P�6P�W[�\�\�\�\��W�&���v�a�x��3�3�R�V�<�<�<�<�<r9c�^�tjd��}t|dd��ttjd��tdz��ttjd��d��ttjt
j��t
j��ttjt
j��t
j��ttjd��t
j��ttjd��d��dS)	Nrg��l�?r>r�r@rzrig?eg�
@)	r r!rrrrSrr�r)r5�eles  r6r+zTestEllip.test_ellipes����n�R� � ���C� 2�1�5�5�5��W�^�C�(�(�"�Q�$�/�/�/��W�^�C�(�(�#�.�.�.��W�^�R�V�G�,�,�b�f�5�5�5��W�^�B�F�+�+�R�V�4�4�4��W�^�A�&�&���/�/�/����s�+�+�-?�@�@�@�@�@r9c��tjtdzd��}tjd��}t	||d��dtzdzdtzdz}}t|��dz}tj||��}t	|dd��t
tjtdzd	��tdz��t
tjtdzd
��d
��t
tjtdztj��tj��t
tjtdztj	��tj	��t
tjtdzd��tj	��t
tjdd��d	��t
tjtjd��tj��t
tjtjd��tj��t
tjtjtj��tj��t
tjtjtj��tj��t
tjtjtj��tj	��t
tjtjtj��tj	��t
tjtj	d��tj	��t
tjtj	tj	��tj	��ttjd
d��d��dS)Nr@rr>�4r=�#g�'����?r>r�rzrryrlrig����L
@)r r.rr!rr	rrSrr�r)r5�eleincr�rnrorAs      r6r/zTestEllip.test_ellipeinc&s����"�2�a�4��+�+���n�S�!�!���F�3�r�*�*�*���U�3�Y�r�"�u�S�y�s����J�J��M���"�3�q�)�)���F�J��2�2�2��W�&�r�!�t�S�1�1�2�a�4�8�8�8��W�&�r�!�t�S�1�1�3�7�7�7��W�&�r�!�t�b�f�W�5�5�r�v�>�>�>��W�&�r�!�t�R�V�4�4�b�f�=�=�=��W�&�r�!�t�Q�/�/���8�8�8��W�&�q�#�.�.��4�4�4��W�&�r�v�s�3�3�R�V�<�<�<��W�&���w��4�4�r�v�g�>�>�>��W�&�r�v���w�7�7���@�@�@��W�&���w����8�8�2�6�'�B�B�B��W�&�r�v�r�v�6�6���?�?�?��W�&���w���7�7���@�@�@��W�&�r�v�s�3�3�R�V�<�<�<��W�&�r�v�r�v�6�6���?�?�?���)�&�#�6�6�8J�K�K�K�K�Kr9c��d}d}tj|d��}g}td��D],}|�|��tj|d��}�-t	j||��}t
|tj|d��d��t	j|tz|��}t
|tj|d��d	��dS)
Nrqrrrr`rNg�%����?r@gXo����
@r>)	rSrsrjrtr r.rrurrvs        r6�test_ellipeinc_2zTestEllip.test_ellipeinc_2@s���#�� ���L��q�!�!�����r���	#�	#�A��L�L��O�O�O���Q��"�"�A�A���c�5�)�)��&�q�"�,�q�:M�*N�*N�PQ�R�R�R�
�
�s�R�x��
/�
/��&�r�2�<��<N�+O�+O�QR�S�S�S�S�Sr9N)rUrVrWrcr3r5r8r{r�r+r/r�r]r9r6rara�s�������$�$�$�-�-�-�
	A�	A�	A�M�M�M�:T�T�T� 
=�
=�
=�	A�	A�	A�L�L�L�4T�T�T�T�Tr9rac�x�eZdZdZd�Zd�Zd�Zd�Zd�Ze	j
�d���d	���Zd
S)�TestEllipCarlsonz�Test for Carlson elliptic integrals ellipr[cdfgj].
    The special values used in these tests can be found in Sec. 3 of Carlson
    (1994), https://arxiv.org/abs/math/9409227
    c	�:�ttdd��d��tdt��dksJ�ttdd����sJ�tdt	dt����dksJ�tddgddgddgddgdd	gdd
gg��}ttjt
jd��ddt
jd��d
zdg��}t|��D]"\}}tt|�||���#dS)NrNr�rr�g@r�rW�����ry
c����?
c����y=��B��?C�G�ֿr�y檠f���?P�9l�b�?)
rr$rrrOrrSrr
�	enumerate�r5�args�expected_resultsrn�arrs     r6�test_elliprczTestEllipCarlson.test_elliprcVs7�����1�
�
�q�)�)�)��q�#���#�%�%�%�%��W�Q��]�]�#�#�#�#�#��q�'�!�S�/�/�*�*�c�1�1�1�1��s�D�k��S�k��D�k��d�m��T�l��T�l�$�%�%��!�"�%�"$�&��+�+�">�"C�"$�&��+�+��"3�"D�"F�G�G�� ��o�o�	@�	@�F�A�s��G�S�M�+;�A�+>�?�?�?�?�	@�	@r9c
��ttddd��d��ttddd��dzd��tddt��dksJ�tjtddd����sJ�tjtddtdd������sJ�tjtddtdd������sJ�t
tddtjtj��j	dz����sJ�t
tddtdd������sJ�tgd	�gd
�gd�gd�gd
�gd�g��}tgd���}t|��D]"\}}tt|�||���#dS)NrNrr@r�g�`C�+�?r�r�rC)r�r�rz�r�r�rG�rWr�r��r�rWr�)r����?rW)y��r�r�)gfe�_��?g���i+"�?g�P$M�?ytg�FU�?7��?@y��R<����8�*��y{��6�2�?�z����)rr%rrSr�rOrr�double�tinyrr�r�s     r6�test_elliprdzTestEllipCarlson.test_elliprdjs������1�a�(�(�!�,�,�,����1�a�(�(�3�.�0F�G�G�G��q�!�S�!�!�S�(�(�(�(��x���1�a�(�(�)�)�)�)�)��x���1�g�a��m�m�4�4�5�5�5�5�5��x���1�g�a��m�m�4�4�5�5�5�5�5��W�Q��B�H�R�Y�$7�$7�$<�#<�s�#B�C�C�D�D�D�D�D��W�Q��7�2�q�>�>�2�2�3�3�3�3�3��o�o�o�%�o�o�(�(�(�(�(�(�,�,�,�3�3�3�5�6�6��!�"D�"D�"D�E�E�� ��o�o�	@�	@�F�A�s��G�S�M�+;�A�+>�?�?�?�?�	@�	@r9c
���ttddd��d��ttddd��d��tdtd��dksJ�tjtddd����sJ�ttddd����sJ�tt
t��dd��dksJ�ttddt
td������sJ�tgd�gd�gd	�gd
�gd�gd�gd
�g��}tgd���}t|��D]"\}}tt|�||���#dS)NrNrr@g�P�O���?r�rC)rzr�r�)rWr�r�)ryrzr��r�rWr�r�r�)r�rW��?�)geQ�O���?�ʞu5J��?r�yp\���y�?�����k�g2�ΰ�?gHw��д�?y��|pF
�?-6Fj�)	rr&rrSr�rrOrr�r�s     r6�test_elliprfzTestEllipCarlson.test_elliprf�s������1�a�(�(�!�,�,�,����1�a�(�(�*@�A�A�A��q�#�q�!�!�S�(�(�(�(��x���1�a�(�(�)�)�)�)�)��W�Q��2�&�&�'�'�'�'�'��w�s�|�|�Q��*�*�c�1�1�1�1��W�Q��7�C�4��#3�#3�4�4�5�5�5�5�5��o�o�o�(�(�(�%�o�o�,�,�,�%�o�o�(�(�(�1�1�1�
3�4�4��!�"F�"F�"F�G�G�� ��o�o�	@�	@�F�A�s��G�S�M�+;�A�+>�?�?�?�?�	@�	@r9c	�f�ttddd��d��ttddd��d��ttddd��d��tjtdtd����sJ�tjttt��dd����sJ�t
gd�gd�gd�gd�gd�gd	�g��}t
tjd
ddd
dg��}t|��D]"\}}tt|�||���#dS)NrNrry)r��0@r�r�r�r�)r�r�rW)r�g8��d�`�?rGg�L+���?g��}�^�?y旮�0��?ʋ��W��?yj�N��?�^����?g���t�?)	rr'rSr�rrOrrr�r�s     r6�test_elliprgzTestEllipCarlson.test_elliprg�sX�����1�a�(�(�!�,�,�,����1�a�(�(�#�.�.�.����1�a�(�(�!�,�,�,��x���3��*�*�+�+�+�+�+��x������a��3�3�4�4�4�4�4��'�'�'�%�o�o�(�(�(�,�,�,�.�.�.�(�(�(�*�+�+��!�"�%�"1�"2�"D�"D�"1�"3�4�4�� ��o�o�	@�	@�F�A�s��G�S�M�+;�A�+>�?�?�?�?�	@�	@r9c��ttdddd��d��tddtd��dksJ�ttdddd����sJ�ttdddd����sJ�tdddt��dksJ�t	gd�gd�gd�gd�gd	�gd
�gd�gd�gd
�g	��}t	gd���}t|��D]"\}}tt|�||���#dS)NrNr�rrC)r�rzr�r�)r�r�rGr�)r�r�rGr�)rWr�r�r�)r����rzr�)rWr�r�r�)r�r�rzy��?)r�r�rGr)r�r�rG��)	g�@��?g�vi�M�?y��m�?\�I�sؿg'4Ob�?g�o�0� �?y���W7�?xfOA��?y��bv��㿘ܶ�.�g�HQ���?gjߡB7E��)rr(rrrr�r�s     r6�test_elliprjzTestEllipCarlson.test_elliprj�sn�����1�a��+�+�Q�/�/�/��q�!�S�!�$�$��+�+�+�+��W�Q��1�a�(�(�)�)�)�)�)��W�R��A�q�)�)�*�*�*�*�*��q�!�Q��$�$��+�+�+�+��*�*�*�*�*�*�0�0�0�-�-�-�6�6�6�2�2�2�<�<�<�+�+�+�+�+�+�-�.�.��!�"5�"5�"5�6�6�� ��o�o�	@�	@�F�A�s��G�S�M�+;�A�+>�?�?�?�?�	@�	@r9zInsufficient accuracy on 32-bitrQc��ttdddd��ddd���ttd	d
dd��d
dd���dS)Ng��gq>g`�W:g H��Bg@ۘ�?gR�y�|�>g�+�����<r�r�g�
�,@g�x�=g@�e�:g`ݽ�>g�(�H�R)A)rr(r4s r6�test_elliprj_hardz"TestEllipCarlson.test_elliprj_hard�s����� 5� 6� 3� 1�3�3�;�"��	0�	0�	0�	0�	�� 2� 5� 4� 5�7�7�<�"��	0�	0�	0�	0�	0�	0r9N)
rUrVrW�__doc__r�r�r�r�r�rXrYrZr�r]r9r6r�r�Qs���������@�@�@�(@�@�@�0@�@�@�2@�@�@�*@�@�@�6�[���?��@�@�0�0�A�@�0�0�0r9r�c�*�eZdZdZd�Zd�Zd�Zd�ZdS)�"TestEllipLegendreCarlsonIdentitiesz�Test identities expressing the Legendre elliptic integrals in terms
    of Carlson's symmetric integrals.  These identities can be found
    in the DLMF https://dlmf.nist.gov/19.25#i .
    c�>�tjddd��|_tt��j|_ddtdtj|j��zdd��zz|_tj	|jg|j|jf��|_
dS)Nrrzr�r�rCr�)rSr�m_n1_1rr�min�max_neg�log2�
very_neg_m�concatenate�
ms_up_to_1r4s r6�setup_classz.TestEllipLegendreCarlsonIdentities.setup_class�s����i��R��.�.����V�}�}�(�����F�2�+-�7�D�L�=�+A�+A�,B�CE�+.�%0�%0�!0�0����.�4�<�.�*.�/�*.�+�*7�8�8����r9c�r�|j}tt|��tdd|z
d����dS)z5Test identity:
        K(m) = R_F(0, 1-m, 1)
        r�rzN)r�rr"r&�r5rAs  r6�test_kz)TestEllipLegendreCarlsonIdentities.test_k�s7��
�O����q�	�	�7�2�r�!�t�R�#8�#8�9�9�9�9�9r9c���tt��j}|dtdt	j|����zz}t
t|��td|d����dS)z\Test identity:
        K(m) = R_F(0, 1-m, 1)
        But with the ellipkm1 function
        r�r�rzN)	rrr�rrSr�rr#r&)r5r��m1s   r6�test_km1z+TestEllipLegendreCarlsonIdentities.test_km1�s]���V�}�}�!��
�B��r�B�G�D�M�M�>�2�2�2�
2�������g�b�"�b�&9�&9�:�:�:�:�:r9c	�x�|j}tt|��dtdd|z
d��z��dS)z9Test identity:
        E(m) = 2*R_G(0, 1-k^2, 1)
        r�r�rzN)r�rr!r'r�s  r6�test_ez)TestEllipLegendreCarlsonIdentities.test_e�s<��
�O����q�	�	�2�g�b�"�Q�$��&;�&;�#;�<�<�<�<�<r9N)rUrVrWr�r�r�r�r�r]r9r6r�r��sZ��������

8�
8�
8�:�:�:�	;�	;�	;�=�=�=�=�=r9r�c�^�eZdZd�Zd�Zdd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�ZdS)�TestErfc�P�tjd��}t|dd��dS)Nr�g)�;�T��?r>)r r;r)r5�ers  r6r<zTestErf.test_erfs)��
�[��
�
���B�|�A�.�.�.�.�.r9c�r�tjd��}tgd���}t||d��dS)Nr�)yT�cJ�5�?�=�W�?yo���@�n��@y���'ʷ@����g	@y�"[
�
@��,y]+
@y�ld�&@-;'j'>@r>)r �	erf_zerosrr)r5�erz�erzrs   r6�test_erf_zeroszTestErf.test_erf_zerossJ�����"�"���-�-�-�.�.��
	"�#�d�1�-�-�-�-�-r9rc���tj�d��d}tj�d|��dtj�dd|��zdz
z}tj�d|��dtj�dd|��zdz
z}|d|zz}tjd�	��5||��}	||��j}
tj|	��}|	|}	||}tj|
��}|
|}
||}t||	|||�
��t||
|||�
��ddd��dS#1swxYwYdS)NrIrdg{�G�z�?r@rrNrW�ignore��allr�)	rSrYrZ�pareto�randint�errstater�isfiniter,)r5�func�
other_funcrHrRr\r!rYrZrS�w_real�masks            r6�_check_variant_funczTestErf._check_variant_funcs���
�	���t�������I���T�1�%�%��2�9�+<�+<�Q��1�+E�+E�)E��)I�J���I���T�1�%�%��2�9�+<�+<�Q��1�+E�+E�)E��)I�J��
��1��H��
�[�X�
&�
&�
&�	E�	E��
�1�
�
�A��Z��]�]�'�F��;�q�>�>�D��$��A��$��A��;�v�&�&�D��D�\�F��$��A�
�d�A�q�t�$�?�?�?�?��d�F�A�D�t�D�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	Es�BE(�(E,�/E,c�N�|�tjd�dd���dS)Nc�0�dtj|��z
Srh�r2r;�rZs r6�<lambda>z.TestErf.test_erfc_consistent.<locals>.<lambda>/s��a�&�*�Q�-�-�'�r9rtr�r�)r�r2rAr4s r6�test_erfc_consistentzTestErf.test_erfc_consistent,s:��� � ��K�'�'���		!�	�	�	�	�	r9c�L�|�tjd�d���dS)Nc�Z�tj||z��tj|��zSr�)rSrr2rAr�s r6r�z/TestErf.test_erfcx_consistent.<locals>.<lambda>7s��b�f�Q�q�S�k�k�F�K��N�N�2�r9rtrG)r�r2�erfcxr4s r6�test_erfcx_consistentzTestErf.test_erfcx_consistent4s7��� � ��L�2�2��	!�	�	�	�	�	r9c�L�|�tjd�d���dS)Nc�6�dtjd|z��zS)Nr�rWr�r�s r6r�z.TestErf.test_erfi_consistent.<locals>.<lambda>>s��c�F�J�r�!�t�,�,�,�r9rtrG)r�r2�erfir4s r6�test_erfi_consistentzTestErf.test_erfi_consistent;s7��� � ��K�,�,��	!�	�	�	�	�	r9c�L�|�tjd�d���dS)Nc��tt��dztj||z��zt	j|��zSr�)rrrSrr2r�r�s r6r�z/TestErf.test_dawsn_consistent.<locals>.<lambda>Es0��d�2�h�h�q�j�2�6�1�"�Q�$�<�<�/�&�+�a�.�.�@�r9rtrG)r�r2rr4s r6�test_dawsn_consistentzTestErf.test_dawsn_consistentBs7��� � ��L�@�@��	!�	�	�	�	�	r9c��tjtjtjg}tjddg}tt	j|��|d���dS)NrCrNrrG)rSr�rrr r;�r5r�r[s   r6�test_erf_nan_infzTestErf.test_erf_nan_infIsH���������(���F�B��?�����D�)�)�8�%�@�@�@�@�@�@r9c��tjtjtjg}tjddg}tt	j|��|d���dS)Nr@rrrG)rSr�rrr rAr�s   r6�test_erfc_nan_infzTestErf.test_erfc_nan_infNsH���������(���F�A�q�>�����T�*�*�H�5�A�A�A�A�A�Ar9c���tjtjtjg}tjtjdg}tt	j|��|d���dS)NrrrG)rSr�rrr r�r�s   r6�test_erfcx_nan_infzTestErf.test_erfcx_nan_infSsK���������(���F�B�F�A�&����
�d�+�+�X�E�B�B�B�B�B�Br9c���tjtjtjg}tjtjtjg}tt	j|��|d���dS)NrrG)rSr�rrr r�r�s   r6�test_erfi_nan_infzTestErf.test_erfi_nan_infXsO���������(���F�R�V�G�R�V�,�����T�*�*�H�5�A�A�A�A�A�Ar9c��tjtjtjg}tjddg}tt	j|��|d���dS)Nrr�rrG)rSr�rrr rr�s   r6�test_dawsn_nan_infzTestErf.test_dawsn_nan_inf]sI���������(���F�D�#�&����
�d�+�+�X�E�B�B�B�B�B�Br9c���tjtjtjg}tjtjdzzddg}tt	j|��|d���dS)NrWrNrrG)rSr�rrr rRr�s   r6�test_wofz_nan_infzTestErf.test_wofz_nan_infbsT���������(���F�R�V�c�\�)�6�6�:�����T�*�*�H�5�A�A�A�A�A�Ar9N)r)rUrVrWr<r�r�r�r�r�r�r�r�r�r�r�r�r]r9r6r�r�s�������/�/�/�.�.�.�E�E�E�E�.������������A�A�A�
B�B�B�
C�C�C�
B�B�B�
C�C�C�
B�B�B�B�Br9r�c��eZdZd�ZdS)�	TestEulerc��tjd��}tjd��}tjd��}t|dgd���t|ddgd���t|gd�d���tjd��}gd�}td	d
��}t	dd��D]?}|dzrt||��|d|z<�$t||��|d|z<�@t
jd�
��5t||z
|z��}t|��}	ddd��n#1swxYwYt|	dd��dS)NrrNr@rrG)rNrrCr)
rNrNr��=iiiY�i�=)i��lQ~�l10�[�l�$8gC
l�2���l�v�}Ju:
)r�drer�r�r�r>)r �eulerrrrjrkrSr�rr�r)
r5�eu0�eu1�eu2�eu24�	mathworld�correctr]�err�errmaxs
          r6�
test_eulerzTestEuler.test_euleris����m�A�����m�A�����m�A������a�S�u�-�-�-�-���a��V�%�0�0�0�0���Z�Z�Z�e�4�4�4�4��}�R� � ��+�+�+�	���c�"�"���q����	3�	3�A��A��
3� %�i��l� 3� 3�3���!����$�Y�q�\�2�2���!����
�[�X�
&�
&�
&�	�	��d�7�l�G�3�4�4�C���X�X�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�F�C��,�,�,�,�,s�%D6�6D:�=D:N)rUrVrWrr]r9r6r�r�hs#������-�-�-�-�-r9r�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestExpc�R�tjd��}d}t||��dS)Nr@r>)r rHr�r5�ex�exrls   r6rIzTestExp.test_exp2�s*��
�\�!�_�_�����R������r9c�T�tjd��}d}t||d��dS)N�@g�;f��@r>)r rHr�r5�exm�exmrls   r6�
test_exp2morezTestExp.test_exp2more�s.���l�3�������C��a�(�(�(�(�(r9c�R�tjd��}d}t||��dS)Nr@rD)r rDrrs   r6rEzTestExp.test_exp10�s,��
�]�1�
�
�����B�t�$�$�$�$�$r9c�T�tjd��}d}t||d��dS)Nr	gY����s@r>)r rDrr
s   r6�test_exp10morezTestExp.test_exp10more�s.���m�C� � �����C��a�(�(�(�(�(r9c��tjd��tjd��tjd��f}td��dz
td��dz
td��dz
f}t||d��dS)Nr@rr>rNr>�r rKrrrs   r6rLzTestExp.test_expm1�sn���m�A���w�}�Q�/�/��
�a�0@�0@�
A���A���q���Q�����#�a�&�&��(�+��!�"�T�!�,�,�,�,�,r9c��tjd��tjd��tjd��f}td��dz
td��dz
td��dz
f}t||d��dS)Nr@�������@皙����@rNr>r)r5�ex1�exrl1s   r6�test_expm1morezTestExp.test_expm1more�sn���}�Q����
�c� 2� 2�7�=��3E�3E�F���Q�����#�c�(�(�1�*�S��X�X�a�Z�0��!�#�e�A�.�.�.�.�.r9N)	rUrVrWrIr
rErrLrr]r9r6rr�sn���������
)�)�)�
%�%�%�
)�)�)�
-�-�-�
/�/�/�/�/r9rc	���eZdZd�Zej�dddejd��dfejd��dfg��d���Z	d	�Z
d
�Zej�dejdfejdfejejg��dfejejg��dfg��d���Z
ej�ejdkd
���d���ZdS)�TestFactorialFunctionsc	���ttjd��d��ttjd��d��ttjd��d��tgd�tjgd�d�����ttjdd	gd
d	gg��ddgd
dgg��ttjdd���d��ttjdd���d��ttjdd���d��ttjdd���d��ttjdd���d��ttjgd�d���gd���ttjdd	gd
d	ggd��ddgd
dgg��ttjt	jdd��d��tjt	jdd��d����ttjt	jdd��d��tjt	jdd��d����ttjt	jdd��d��tjt	jdd��d����dD]L}t
dtjd|����t
gd�tjgd�|�����Mtdd��D�]9}tj|��}t
|tj|d����t
|tj|gd��d��tt|��tj|d����tt|��tj|gd��d��t
tj|d��tj|d����t
tj|gd��tj|gd������;dS)NrrNr@)r.rvr�)rr>r�Fr�r�rr>r�rDrTrp�X�n�)rBr>rpr`)i�rri_7����)TF)rNr@rr)rNr@���r~)rr �	factorialrrSrrrj�mathrrk)r5r�r\r�s    r6�test_factorialz%TestFactorialFunctions.test_factorial�sT��!�'�"3�A�"6�"6��:�:�:�!�'�"3�A�"6�"6��:�:�:�!�'�"3�A�"6�"6��:�:�:�!�/�/�/�")�"3�I�I�I�U�"K�"K�"K�	M�	M�	M�!�'�"3�a��V�a��V�4D�"E�"E�$'��8�b�!�W�"5�	7�	7�	7�	�W�&�q��5�5�5�q�9�9�9��W�&�q��5�5�5�q�9�9�9��W�&�q��5�5�5�q�9�9�9��W�&�q��5�5�5�s�;�;�;��W�&�r��6�6�6�
�F�F�F�	�W�&�~�~�~�T�B�B�B�7�7�7�	9�	9�	9�	�W�&��A���A��'7��>�>��A�h��Q��(�	*�	*�	*�	�W�&�r�y��R�'8�'8�$�?�?��&�r�y��R�'8�'8�%�@�@�	B�	B�	B�	�W�&�r�y��R�'8�'8�$�?�?��&�r�y��R�'8�'8�%�@�@�	B�	B�	B�	�W�&�r�y��Q�'7�'7��>�>��&�r�y��Q�'7�'7��?�?�	A�	A�	A�#�	I�	I�E��q�'�"3�B��">�">�?�?�?��|�|�|�&�0�����G�G�
I�
I�
I�
I��q�"���	>�	>�A��n�Q�'�'�G��w��(9�!�T�(B�(B�C�C�C��w��(9�1�#�t�(D�(D�Q�(G�H�H�H��E�'�N�N�G�,=�a��,G�,G�H�H�H��E�'�N�N�G�,=�q�c�5�,I�,I�!�,L�M�M�M�
�w�0��D�9�9�&�0��E�:�:�
<�
<�
<�
�w�0�!��d�;�;�&�0�!��e�<�<�
>�
>�
>�
>�	>�	>r9zx, exact)rNT)rNFrNTFc�Z�tjtj||�����sJ�dS�Nr�)rS�isscalarr r )r5r!r�s   r6�test_factorial_0d_return_typez4TestFactorialFunctions.test_factorial_0d_return_type�s0���{�7�,�Q�e�<�<�<�=�=�=�=�=�=�=r9c��tgd�tjgd�d�����ttjdd���d��dS)N)g@Z@gx@g��@)rBr>r�Fr�rBT�i)rr �
factorial2rr4s r6�test_factorial2z&TestFactorialFunctions.test_factorial2�s]��!�"4�"4�"4�")�"4�Y�Y�Y�e�"L�"L�"L�	N�	N�	N��W�'���6�6�6��<�<�<�<�<r9c��ttjddd���d��ttjddd���d��dS)Nr�rNTr�r�rr`)rr �
factorialkr4s r6�test_factorialkz&TestFactorialFunctions.test_factorialk�sL���W�'��1�D�9�9�9�3�?�?�?��W�'��1�D�9�9�9�2�>�>�>�>�>r9c�t�tj||���}ttj|����dSr$)r r rrSr)r5r!r�r�s    r6�test_nan_inputsz&TestFactorialFunctions.test_nan_inputs�s7���"�1�E�2�2�2������ � �!�!�!�!�!r9)rr`z*Python 3.10+ math.factorial() requires intrQc
�(�tjtjdddtjg��}t��5}|�t
d��t
j|d���}ttjtjdddtjg��|��t
j|d���}ttjtjdddtjg��|��ddd��dS#1swxYwYdS)	NrNr@rz-Using factorial\(\) with floats is deprecatedTr�rDF)	rSrr�rr,rr r r)r5r!r/r�s    r6�test_mixed_nan_inputsz,TestFactorialFunctions.test_mixed_nan_inputs�s4��
�H�b�f�a��A�r�v�.�/�/��
�
 �
 �	F�C��J�J�)�+\�]�]�]��&�q��5�5�5�F����2�6�1�a��B�F�";�<�<�f�E�E�E��&�q��6�6�6�F����2�6�1�a��B�F�";�<�<�f�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	F�	Fs�B>D�D�DN)rUrVrWr"rXrYrrSrr&r*r-r�r/�skipif�sys�version_infor1r]r9r6rr�sg������8>�8>�8>�t�[���Z���	���!���d��	���!���e��	*���>�>�
��>�=�=�=�
?�?�?��[���Z�	����	����	���2�6�(�	�	�T�"�	���2�6�(�	�	�U�#�	*���"�"�
��"��[����(�G�3�K��M�M�F�F�M�M�F�F�Fr9rc��eZdZej�ddddddddd	d
ejddfejddfg��d
���Zd�Z	d�Z
d�ZdS)�TestFresnelzz, s, c)ry�g�N��?�ց[���?)y�?r7r8)y��������?y�n<��ӿ���j�<C�y�)�BR;߿u��x7Q�?)y����������yھ|���}-��2�?y���/��?���!��ۿ)r.�G�M��?�pB��R��?)y@r9r:)y@y�G�M�ܿypB��R��?)y�gG�M�ܿgpB��R�߿)y��yG�M��?y�pB��R�߿ryrc��ttj|����}t|t||g��d��dS)Nr>)rr rrr)r5rZr
r.�frss     r6�test_fresnel_valueszTestFresnel.test_fresnel_values
s>��@�G�O�A�&�&�'�'��!�#�u�a��V�}�}�a�8�8�8�8�8r9c�`�tjd��\}}t|tgd���d��t|tgd���d��tj|��d}tj|��d}t|dd��t|dd��dS)Nr�)y����@X9��v�?y^�I�@��4�8E�?y=
ףp�@+����?y����@e�X��?y�
O���@Ǻ���?r)y.���1�?�ǘ����?y��ʡE6@:#J{�/�?yq
�-�
@y�&1��?y��ho@�߾�3�?y�W�2�q@
q���h�?rrNr>)r �
fresnel_zerosrrrr)r5�szo�czo�vals1�vals2s     r6�test_fresnel_zeroszTestFresnel.test_fresnel_zeros/s����(��+�+���S�!�#�"'�):�):�):�#;�#;�<=�	>�	>�	>�	"�#�"'�):�):�):�#;�#;�<=�	>�	>�	>����$�$�Q�'�����$�$�Q�'��!�%��"�-�-�-�!�%��"�-�-�-�-�-r9c�~�tjd��\}}tjd��}t||d��dS)NrDr?)r r?�fresnelc_zerosr)r5r@rA�frcs    r6�test_fresnelc_zeroszTestFresnel.test_fresnelc_zerosB�>���(��+�+���S��$�Q�'�'��!�#�c�"�-�-�-�-�-r9c�~�tjd��\}}tjd��}t||d��dS)Nr�r?)r r?�fresnels_zerosr)r5r@rAr<s    r6�test_fresnels_zeroszTestFresnel.test_fresnels_zerosGrIr9N)rUrVrWrXrYrrSrr=rDrHrLr]r9r6r6r6	s��������[���Y�7�=�	
�
	
�	&�,�)�/�*�	���c��
�&��$���;)���>9�9�?��>9�.�.�.�&.�.�.�
.�.�.�.�.r9r6c�X�eZdZd�Zd�Zd�Zed���Zed���Zd�Z	d�Z
dS)	�	TestGammac�N�tjd��}t|d��dSru)r r�r)r5�gams  r6rwzTestGamma.test_gammaNs'���m�A�����S������r9c��tjd��}ttjd����}t	||d��dS)Nrr>)r r�r
r�r)r5�gamln�lngams   r6r|zTestGamma.test_gammalnRs@�����"�"���G�M�!�$�$�%�%���E�%��*�*�*�*�*r9c�|�tjdd��}tjdd��}t||d��dS)Nryr>)r ry�gammaincinvr)r5�gccinv�gcinvs   r6rzzTestGamma.test_gammainccinvWs>���%�b��,�,���#�B�r�*�*���F�5��+�+�+�+�+r9c�f�tjdd��}tjd|��}t|dd��tjdd��}tjdd��}td|d���t|dd���tjdd��}td	|d���dS)
NrArNr`g�������?g`�	�\�;rr�g�m���b<g&@)r rU�gammaincr�r5rYr!s   r6�test_gammaincinvzTestGamma.test_gammaincinv\s������2�&�&����R��"�"���A�c�!�$�$�$���R��&�&�����$:�;�;���D�!�R�0�0�0�0��A�5�r�B�B�B�B����$J�K�K���D�!�R�0�0�0�0�0�0r9c���dtjdd��dtjdd��dg}|D]>}tjd|��}tjd|��}t||d����?dS)	Nr�rgCs�����?rNg^F�?rArtrG)rSrsr rUrYr)r5�pts�xprYr!s     r6�test_975zTestGamma.test_975hs���
��|�D�!�$�$�l��|�D�!�$�$�l�4���	/�	/�B��#�B��+�+�A�� ��a�(�(�A��A�r��.�.�.�.�.�	/�	/r9c�~�tjd��}dtjd��z}t||d��dS)Nr>rN)r r�r�r)r5�rgam�rlgams   r6r�zTestGamma.test_rgammaus=���~�a� � ���'�-��"�"�"���D��q�)�)�)�)�)r9c��ttjtjd������ttjd��d��dS)NrCr)rrSr�r r�rr�r4s r6�
test_infinityzTestGamma.test_infinityzsD�������r�*�*�+�+�,�,�,��W�^�B�'�'��+�+�+�+�+r9N)rUrVrWrwr|rzr+r[r_r�rdr]r9r6rNrNMs����������+�+�+�
,�,�,�
�	1�	1���	1��
/�
/���
/�*�*�*�
,�,�,�,�,r9rNc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�
TestHankelc�v�ttjdd��tjdd��d��dS�Nrr@rr>)rr r�r4s r6�
test_negv1zTestHankel.test_negv1��5���G�O�B�q�1�1�G�O�A�a�4H�4H�3H�"�M�M�M�M�Mr9c��tjdd��}tjdd��tjdd��dzz}t	||d��dS�NrNrTrWr>)r r�r�rIr)r5�hank1�hankrls   r6r�zTestHankel.test_hankel1�sR�����"�%�%���*�Q�r�"�"�W�Z��"�%5�%5�b�%8�8���E�&��+�+�+�+�+r9c�v�ttjdd��tjdd��d��dSrh)rr r�r4s r6�test_negv1ezTestHankel.test_negv1e��7���G�,�R��2�2�W�5E�a��5J�5J�4J�B�O�O�O�O�Or9c��tjdd��}tjdd��td��z}t	||d��dS)NrNrTy���������r>)r r�r�rr)r5�hank1e�hankrles   r6r�zTestHankel.test_hankel1e�sH���!�!�B�'�'���/�!�B�'�'��D�	�	�1���F�7�1�-�-�-�-�-r9c�v�ttjdd��tjdd��d��dSrh)rr r�r4s r6�
test_negv2zTestHankel.test_negv2�rjr9c��tjdd��}tjdd��tjdd��dzz
}t	||d��dSrl)r r�r�rIr)r5�hank2�hankrl2s   r6r�zTestHankel.test_hankel2�sR�����"�%�%���:�a��#�#�g�j��2�&6�&6�r�&9�9���E�'�!�,�,�,�,�,r9c�v�ttjdd��tjdd��d��dSrh)rr r�r4s r6�
test_neg2ezTestHankel.test_neg2e�rqr9c�|�tjdd��}tjdd��}t||d��dS)NrNrTr>)r r�r)r5�hank2e�hankrl2es   r6�test_hankl2ezTestHankel.test_hankl2e�s>���!�!�B�'�'���#�A�b�)�)���F�8�A�.�.�.�.�.r9N)rUrVrWrir�rpr�rvr�r{rr]r9r6rfrfs�������N�N�N�,�,�,�
P�P�P�.�.�.�
N�N�N�-�-�-�
P�P�P�/�/�/�/�/r9rfc�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�	TestHyperc��tjdd��}tjdd��tjdd��dzz}t	||d��dSrl)r �h1vp�jvp�yvpr)r5�h1�h1reals   r6�	test_h1vpzTestHyper.test_h1vp��R��
�\�!�B�
�
���+�a��#�#�g�k�!�B�&7�&7��&:�:���B�v�a�(�(�(�(�(r9c��tjdd��}tjdd��tjdd��dzz
}t	||d��dSrl)r �h2vpr�r�r)r5�h2�h2reals   r6�	test_h2vpzTestHyper.test_h2vp�r�r9c�B�ttjdd��dd���ttjdd��dd���tjd	gd
���}tjgd���}t||d���tjd	tjgd
���dz��}t||�t��d���gd
�}gd�}tj||��}gd�}t||d���tjtj|gdz��|��}t|tj|gdz��d���tttjtj|gdz��ddg��dS)Nr	ry�Q�v�o�?rtrGrrzrr�)g��rCrrNre)g��̷�?g3|t-Ք�?rzg��o���?g�{h��?rN�ryrer	)rrNry)rzg��c��?r�r@rrN)
rr �hyp0f1rSrrrO�	row_stack�
assert_raises�
ValueError)r5r!r[�x1�x2s     r6�test_hyp0f1zTestHyper.test_hyp0f1�s������s�C�0�0�2B��O�O�O�O����s�A�.�.��%�@�@�@�@�
�N�3� 5� 5� 5�6�6���8�A�A�A�B�B����8�%�0�0�0�0�
�N�3���)>�)>�)>� ?� ?�#� E�F�F����8�?�?�7�3�3�%�@�@�@�@��_�_��
�[�[���N�2�r�"�"��>�>�>����8�%�0�0�0�0��N�2�<���q��1�1�2�6�6����2�<��
�Q��7�7�e�D�D�D�D��j�'�.��l�B�4�!�8�,�,�q�!�f�	6�	6�	6�	6�	6r9c�P�tjdd��}t|d��dS)N皙�����?��?�?y;E�G��?uM���?)r r�r)r5�ress  r6�test_hyp0f1_gh5764zTestHyper.test_hyp0f1_gh5764�s,���n�S�,�/�/���C�!L�M�M�M�M�Mr9c��tjddd��}t|dd��tggd��gd��gd��gd��gd	��gd
��gd��gd��gd
��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd��gd ��gd!��gd"��gd#��gd$��gd%��gd&��gd'��gd(��gd)��gd*��gd+��gd,��gd-��gd.��gd/��gd0��gd1��gd2��gd3��gd4��gd5��gd6��gd7��gd8��gd9��gd:��gd;��gd<��gd=��gd>��gd?��gd@��gdA��gdB��gdC��gdD��gdE��gdF��gdG��gdH��gdI��gdJ��gdK��gdL��gdM��gdN��gdO��gdP��gdQ��gdR��gdS��gdT��gdU��gdV��gdW��gdX��gdY��gdZ��gd[��gd\��gd]��gd^��gd_��gd`��gda��gdb��gdc��gdd��gde��gdf��gdg��gdh����}|D]C\}}}}tj|||��}t	t||z
��|zdik���DdS)jNrTrUg�����?rB)g�{*�=� �g�˱a�)�g5��=�g�v���X�@)g��)AI@gDA���h�g�$P�j)�g�~�٭�@)g,q�Up�,�g�@=�&�?g
X��3@g�Z���@)g���\@g�8�8�*@g\ֳ�!=@gƞ�A)g�AZ;�g�O�FA'�gxŝO�<�g_D�c��D)g�^g��
@g ��V*E7�g��4�)3@g7-X�tD)gΧ�U(@g2Tj��8�g�$�@gL��h�B)g��e��;@gJ��go�gr���@g`屫��B)g�5'��.@gqZ�=�g7߈�Y�.�g�8��w�)gB���,@g"�^��#@grT�[	R3@g����B)g����Y�g�N]�,�*@g���*!j,�g����1@)g�#r� @g�q{874*�gWs%�o.@g��M�dD)g8��
|.2@g�*�!�,�g?���I(#@gJ
r ��.�)g���u��8�g�#��=)@g*����'1�g���)ψvA)g%�0�N�:@gUx�1@g�x��@gr�),c�@)g:�M��8@g���Gb+=@g3ҜV/@gX9ҙim@)g"d�xz@gq��K���g�v7�##@g���>B)g k�x��-�g�D8L+8@g��܈�2�g�72�LU�@)gtd@Q4h6@g�%�@�}�gr3���b @gu�߯ѡ�)g��򋷺�?g"p$�`E2@gY|T
�3�g�\D��?)gV-�(�+@g$���[�3@g;/@gEQwв@)g[�f��g��LL4�gQ���V�@g0#�.@)g�����;@g/�?jv�gx�.<�N&@g���^I���)g��+�9�g�X�[��?gbZ�SH%@g���5/)@)g}�RgŢ	@g��}��,*@g���6@g�1w-
��@)g�RA�(�g_���@g5A�}:=�gF���A)g��Qz5@g�q.#��g�T��q�&�g�c����?)gφ�%��#�g�ZV�@
�g��%@��0@g�Syd�)gB�۽ܟ%@g��*>�8�g�V�@�'�g��	�ʦ�)g/H���:�g�n@S� �g�)bǙ9@g�9���)gT쁹�3!�g��D �gk�LFr%@g3333�`4A)g:�k��
��g\��=)�'�gi�,�k�9�g�bx���?)g�i�X�w�g-Cw�U5@g'jin��9�g����X5@)gb����
@g�Ty�4#/@g]p�H=�gI���w�?)g�6��3�@g2�XxM�:@g�~?�^0�g�W�1���?)g��37�g R��{�@gicx.4�?g��m�m�?)gv�܏%�7@g9�M�a%=�g}�y���gG�r��##@)gG8-xы.@gǂ�@g��hb(@g�����A)g���w1@g��q�2@gO]�,��@g0ɷ-��X@)g����2@ǵy#�<@gͣx��?g��]�?)g];�˄f$@g1��}�0�g���_�9�g�8ڃ�@)g�:!ω�1�g���)q(@g���g2�g�v���%)A)gY�N�:+�g�n	Ȱ-�?g���>��gZd�|I.A)gr��/�K@g\�}L�9@g�����*�g�Ι���?)gQq5V�@g���?�)@g'�
��@0@gl��ۭ`@)g��V�n:�g���RQ0�g���T&�g�Q�C��)g�R4 ��8�g��i�+�g����K� @g{�G��)g��t�iq+�g(�O?�3�g�	�1=@g8�c�B)g|>oϘ��g�\��!<@g"?4V�?g%�c\q��?)g� ���gp��fP!�g��AO��:@g���,\�)g�=R��8@g�%�;�g��z�3@g���~�0�G)g.CV�l@g��e<�.@g�����
9@g��kq1A)g���=~�$�gp���R�7@g�77�g,���dž@)g��^���g���{�)�g�RA�2@gdL��)gf=�4,R@gy�O��-�g#ޕ��~8@g������)g|�ݩ%P4�g:<���9@gKzs�4�g$(~�O4�@)g��2y��3@g�1�$6�g&TpxA�6�g�G!��JA)gf^XH
^;@g7�
��r:@g�`,�/@g����i{dA)gih�x�@g!B���8(@g�7�j��*@g��h��@)g���lmF<�g��p�O�4@g��`2"@g����-��)g�nV3!�2@g�.�m�q1�g�!Z��{.@gr����O�E)g��s�`m@g��zAU��guC�=V�#@g�\��)g�PL�-(@g,�9$�"9�g6��u7@g��eR��F)g����w8�g�v=5@g�j��RW+�g�(\�-�@)g�y���g~=���
@g�4M�
V�gw�z��:@)g�^0���g+7�%�g-@�j81�g5�ׂ�,j�)gj���4�g��z0�g��-</�;�g��ݽ]
D)g�N�4�3@g�}�W6@gL�US!9�g���ɍF>)g ���Q4@g=���}��g��Ȯ�5@g��]nhgF)g��V�9�g����9�gf�9�,#�gF|}fv�?)g=^�ee;@gy��}2�g�'T�>�g#��o@)g����+5�g��
��;�gN8Cg�8@g�bk�A)g��Sx+26@g����@g����I0�g�S��M�C�)gT��*0@g�`<�6�g�Wy�5@g��ǟRj��)gӰk�
�g���/:�?gJLHR�"@g�x��u-�)g�K�u��@g����6�g�t8_�x7@gd�;�='�)g+:��;@gB�ͤ�10@g";�����gK$��?)gp��� @g ��d���g���	�=@g=�6`�� F)g�T�bR.�g���9:g3@gU���f�gRb�KZ@)g���!�g%�P7�3;�g��]��?gr	�y��?)g)Y�v�2�gȹ�q�@g�/�3�g���A)g�?j/|��g��7��:@g�#~�oݽ?g8�pE��?)g��Pj/��gS���"X)�g��Y��gt��0N�?)g����go&	xT7@g�-hT@#@g.;�%r�?)g��'_�@gɖ@���7�g�:Kڞ�$@g�[���B)g�k5ں9�gѼ���:�g�k%t�p;@g.<�^�)gf��:OI&�g���O�/�g�#01�|2�g��f��`Y�)gq�v~@g�u�Fd�9@g
�z+�S7�g�F1�/$�?)g�x��3�g~�[6:�g;�s��9@g�K�w*1@)g�P���@gv��;K,�gҬ��d&<@g�!���s�)g�ֈ`|.�gOw�x�=@g�+�MK�<�g�U��U��@)gک��I�@g©j�G1�g�4g؃66@g(�4ν4E)g�S���>�?gD�-�l��g�SL�,c<�gԉ�E4�?)gd�?A���g��3$)�g�lx�^��?gs>��|T�?)g(%���@g:ĉ��$@g~�^gv2�gJ�HF&��?)g}r�"�:@g3��\�z;@go�����)@g+�h�A)g��@')�"�g��V�v�/@guQ�U�-�gf�y�2yt@)gM6y%$��g/�;R�#@g����):@gw%",�6Կ)g�%x��'�g����$6�g�����5�gu$9��?)gl�k�C9�g�<��tF8�g�p���?g�� �?ri)r r�rrrrc)r5�hyp1�ref_datardrer.r[r�s        r6r�zTestHyper.test_hyp1f1�s����~�b��B�'�'���D�"4�Q�7�7�7��c^�]�]�]�c^�\�\�\�c^�[�[�[�c^�[�Z�Z�c^�^�]�]�	c^�
\�[�[�c^�\�[�[�
c^�\�[�[�c^�^�]�]�c^�[�Z�Z�c^�]�\�\�c^�\�[�[�c^�]�\�\�c^�]�\�\�c^�[�Z�Z�c^�[�Z�Z�c^� \�[�[�!c^�"]�\�\�#c^�$]�\�\�%c^�&\�[�[�'c^�([�Z�Z�)c^�*]�\�\�+c^�,]�\�\�-c^�.\�[�[�/c^�0[�Z�Z�1c^�2]�\�\�3c^�4]�\�\�5c^�6^�]�]�7c^�8^�]�]�9c^�:^�]�]�;c^�<]�\�\�=c^�>^�]�]�?c^�@]�\�\�Ac^�B\�[�[�Cc^�D\�[�[�Ec^�F\�[�[�Gc^�H]�\�\�Ic^�J[�Z�Z�Kc^�L[�Z�Z�Mc^�N[�Z�Z�Oc^�P]�\�\�Qc^�R]�\�\�Sc^�T]�\�\�Uc^�V\�[�[�Wc^�X[�Z�Z�Yc^�Z_�^�^�[c^�\^�]�]�]c^�^]�\�\�_c^�`\�[�[�ac^�b^�]�]�cc^�d\�[�[�ec^�f[�Z�Z�gc^�h]�\�\�ic^�j^�]�]�kc^�l]�\�\�mc^�n]�\�\�oc^�p]�\�\�qc^�r[�Z�Z�sc^�t[�Z�Z�uc^�v]�\�\�wc^�x\�[�[�yc^�z]�\�\�{c^�|\�[�[�}c^�~]�\�\�c^�@]�\�\�Ac^�B_�^�^�Cc^�D^�]�]�Ec^�F\�[�[�Gc^�H\�[�[�Ic^�J^�]�]�Kc^�L]�\�\�Mc^�N]�\�\�Oc^�P]�\�\�Qc^�R]�\�\�Sc^�T]�\�\�Uc^�V]�\�\�Wc^�X\�[�[�Yc^�Z\�[�[�[c^�\]�\�\�]c^�^]�\�\�_c^�`]�\�\�ac^�b\�[�[�cc^�d^�]�]�ec^�f\�[�[�gc^�h\�[�[�ic^�j^�]�]�kc^�l_�^�^�mc^�n\�[�[�oc^�p]�\�\�qc^�r]�\�\�sc^�t]�\�\�uc^�v\�[�[�wc^�x]�\�\�yc^�z]�\�\�{c^�|\�[�[�}c^�~[�Z�Z�c^�@]�\�\�Ac^�B]�\�\�Cc^�D^�]�]�Ec^�F]�\�\�Gc^�c_�c_��J'�	<�	<�N�A�a��(��^�A�a��*�*�F��C��6�)�*�*�8�3�d�:�;�;�;�;�	<�	<r9c��tjddd��}tjddd��}t||d��dS)Nryreg7��B.��g|:��B.��r?�r r�r)r5r��hyp2s   r6�test_hyp1f1_gh2957zTestHyper.test_hyp1f1_gh2957@	s@���~�c�3��8�8���~�c�3��8�8���D�$��+�+�+�+�+r9c�T�tjddd��}t|dd��dS)Nryrei���g�<`����?r?r�)r5�hyps  r6�test_hyp1f1_gh2282zTestHyper.test_hyp1f1_gh2282E	s.���n�S�#�u�-�-���C�!5�r�:�:�:�:�:r9c�V�dddddtd��zgdddddtd	��zgddd
d	dtd��zggd
�dddtd	��d
ztd��gddddt	jd��t	jd��zt	jd��zt	jd��zgdd
d
ddt
t��zt	jd
��zt	jd��zt	jd��zgdd
dddt
t��zt	jd��zt	jd��zt	jd��zgdddddt	jd��zt	jd��zt	jd��zt	jd��zggd�gd �gd!�gd"�gd#�d$d%g}t|��D]8\}\}}}}}t	j	||||��}t||dd&|z�'���9dS)(NryrNre�|�G�z�?r	g�������?g|�G�z��r�rr@r�r�)rrrer�g�Yi�2�?rrg433333�?r>r>r�rCg�?r�g�?r�rg�gUUUUUUտg��@gUUUUUU�?g�������)rerrz�$�gEciH!�@)r(rrNr�g�z�G��?)r@rrNr�gy�&1�|�)r�rrNr�g"nN%@?)r@rrNr�g!�J��)r`�|����%@rag�z�S�;)r`r�g%�rag[�B.�VP<�test #%d��err_msg)r
rr	r
r r�rrr�r�r)	r5r�rnrdrer.r!rj�cvs	         r6r�zTestHyper.test_hyp2f1I	sp����3����O�0D�0D�(D�E���3����s���);�<��a��C���E�
�
�!2�3�B�B�B��q�#�s�3�x�x��{�C��L�L�9��a��A�w�}�Q�/�/��
�e�0D�0D�D�W�]�SV�EW�EW�W�X_�Xe�fi�Xj�Xj�j�k��a���G�D��H�H�$4��m�E�*�*�%+�+2�=��+C�+C�%D�DK�M�R[�D\�D\�%]�^��a���G�D��H�H�$4��m�E�*�*�%+�+2�=��+C�+C�%D�DK�M�R[�D\�D\�%]�^��e�W�e�^�G�M�$�<O�<O�-O��m�G�,�,�.-�-4�]�4�-@�-@�.A�AH��x�AX�AX�.Y�Z�A�@�@�%�%�%�&�&�&�,�,�,�,�,�,�M�N�/��2#,�F�"3�"3�	B�	B��A���1�a��A����1�a��+�+�B���A�q�*�q�.�A�A�A�A�A�	B�	Br9c�j�tjddd��}t|dd��gd�gd�}}t|��t|��}}d}tj|||��}ttt|z��ztj|||��tjd|z|z
��tj|��zz|d|z
ztjd|z|z
d	|z
|��ztj|��tjd	|z
��zzz
z}t||d
��dS)NrNrTrDg��D�?rB)rUr$�333333�?g�������)reg������	@rOg������	�ryr@r?)	r �hyperurrrr	r�r�r)r5�val1rdrerZ�hypu�hprls       r6�test_hyperuzTestHyper.test_hyperuh	s-���~�a��C�(�(���D��1�-�-�-� � � �!4�!4�!4�!���a�j�j�'�!�*�*�!�����~�a��!�$�$���3�r�!�t�9�9��w�~�a��!�4�4� '�
�a��c�!�e� 4� 4�W�]�1�5E�5E� E� G� �1�Q�3�x���q��s�1�u�Q�q�S��(C�(C�C�")�-��"2�"2�7�=��1��3E�3E�"E� G� G�H��	"�$�t�B�/�/�/�/�/r9c�P�ttjddd��dd��dS)NrNreg3333334@g��(�¨?r?)rr r�r4s r6�test_hyperu_gh2287zTestHyper.test_hyperu_gh2287u	s3���G�N�1�c�4�8�8�0�"�	6�	6�	6�	6�	6r9N)
rUrVrWr�r�r�r�r�r�r�r�r�r�r]r9r6r�r��s�������)�)�)�
)�)�)�
6�6�6�4N�N�N�p<�p<�p<�d,�,�,�
;�;�;�B�B�B�>0�0�0�6�6�6�6�6r9r�c���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2dTd4�Z3e4j5�6e7j8��d5kd6�7��d8���Z9e4j5�6e7j8��d5kd6�7��d9���Z:d:�Z;d;�Z<e4j5j=d<���Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdUdE�ZFdF�ZGdG�ZHdH�ZIdI�ZJdJ�ZKdK�ZLdL�ZMdM�ZNdN�ZOdO�ZPdP�ZQdQ�ZRdR�ZSdS�ZTd3S)V�
TestBesselc��ttjd����}t|tddg��d��dS)Nrg�b��Ƀ�?gΝJ� ֿr>)rr r�r)r5�it0s  r6r�zTestBessel.test_itj0y0{	sA���G�N�2�&�&�'�'��!�#�e�-@�BV�,W�&X�&X�YZ�[�[�[�[�[r9c��ttjd����}t|tddg��d��dS)Nrgbq��Ttt?g/]�oo�ۿr>)rr r�r)r5�it2s  r6r�zTestBessel.test_it2j0y0	sA���G�O�B�'�'�(�(��!�#�e�-B�DX�,Y�&Z�&Z�[\�]�]�]�]�]r9c�r�ttjdd��tjdd����dS�Nrr@r)rr r�r4s r6�test_negv_ivzTestBessel.test_negv_iv�	s.���W�Z��!�_�_�g�j��A�&6�&6�7�7�7�7�7r9c�z�tjd��}tjdd��}t||d��dS�NrTrr>)r r�r�r�r5�oz�ozrs   r6r�zTestBessel.test_j0�	�8��
�Z��^�^���j��2�����B�s�1�%�%�%�%�%r9c�z�tjd��}tjdd��}t||d��dS�NrTrNr>)r r�r�r�r5�o1�o1rs   r6r�zTestBessel.test_j1�	r�r9c�R�tjdd��}t|dd��dS)NrNr��;��x�?r>)r r�r)r5�jnnrs  r6r�zTestBessel.test_jn�	s,���z�!�B�����D�!5�a�8�8�8�8�8r9c�v�ttjdd��tjdd��d��dSrh)rr r�r4s r6�test_negv_jvzTestBessel.test_negv_jv�	�3���G�J�r�!�,�,�w�z�!�A���.>��C�C�C�C�Cr9c��gd�gd�gd�gd�gd�g}t|��D]4\}\}}}tj||��}t||dd|z����5dS)	N)rrTg�
Ye���?)�UUUUUU�?�:�0�yE>g˿���+�>)r�rPg)%���-�>)g������@rPg5�c)�!9)r�rGg%�,�Ϳr>r�r�)r�r r�r)r5r�rnrjr!rY�ycs       r6r�zTestBessel.test_jv�	s���/�/�/�5�5�5�6�6�6�6�6�6�2�2�2�	��&�f�-�-�	B�	B�L�A�y��1�a���A�q�!�!�B���A�q�*�q�.�A�A�A�A�A�	B�	Br9c�v�ttjdd��tjdd��d��dSrh)rr r�r4s r6�
test_negv_jvezTestBessel.test_negv_jve�	�5���G�K��1�-�-���A�a�0@�0@�/@�"�E�E�E�E�Er9c��tjdd��}t|dd��tjdd��}d}tjd|��t	t|j����z}t||d��dS)NrNrr�r>��������?�?)r r�rr�rrcrX)r5�jvexp�jvexp1rZ�jvexprs     r6�test_jvezTestBessel.test_jve�	sz����A�b�!�!���E�"6�q�9�9�9���Q�u�%�%������A�a����c�!�&�k�k�\�!2�!2�2���F�6�!�,�,�,�,�,r9c��tjdd��}tjdd��}t|tgd���d��t|tgd���d��tjdd��}t	|tgd���d	�
��tjdd��}t	|tgd���d	�
��dS)
Nrr�rN)go@�.=@gzj,[�@g���l�N!@g5/�D�'@g�h�>��-@r>�g���W�@g�0�@g��Q�X$@g����*@g8�*5{x0@rM)g�E�k�[@g�~C�ju]@gYrʝ��^@g��,� `@g��f	�`@rFrG�-)g���t�s@g&�ǭr3t@gW�����t@g�,�$Y&u@g����u@)r �jn_zerosrrr)r5�jn0�jn1�jn102�jn301s     r6�
test_jn_zeroszTestBessel.test_jn_zeros�	sF����q��#�#����q��#�#��!�#�e�-=�-=�-=�'>�'>�?@�		A�	A�	A�
	"�#�e�-8�-8�-8�'9�'9�:;�		<�	<�	<�� ��Q�'�'����u�&>�&>�&>� ?� ?�FK�		L�	L�	L�	L�� ��Q�'�'����u�&>�&>�&>� ?� ?�FK�		L�	L�	L�	L�	L�	Lr9c���tjdd��}t|ddd���t|ddd���t|d	d
d���tjdd��}t|ddd���t|dd
d���t|d	dd���tjdd��}t|tgd���d���dS)Nrrbig�;��@rFrGig�8��v�@i+gׂM�m�@r`g�x��i��@g�	,�@gи{>��@i�r�)gU�DX���@g���!�@g*�H�S�@g�z�5� �@g@�2��;�@r�)r r�rr)r5r��jn10�jn3010s    r6�test_jn_zeros_slowzTestBessel.test_jn_zeros_slow�	s����q�#�&�&����E�
�$9��F�F�F�F���E�
�$9��F�F�F�F���E�
�$9��F�F�F�F����C�(�(����U��%:��G�G�G�G���U��%:��G�G�G�G���U��%:��G�G�G�G��!�$�q�)�)�����':�':�':�!;�!;�BF�		G�	G�	G�	G�	G�	Gr9c�`�
�tj�
�
fd�}tdd��D]�}tj|��\}}}}t	|||��D]]\}}}	|	dkrt�
||��dd����)|	dkrt|||��dd����Lt
d|z�����dS)Nc�H���|dz
|���|dz|��z
dzS)NrNr@r])r\r!r�s  �r6�jnpz(TestBessel.test_jnjnp_zeros.<locals>.jnp�	s/����B�q��s�1�I�I���1�Q�3�q�	�	�)�1�,�,r9rNrJrr_r�zInvalid t return for nt=%d)r r�rj�jnjnp_zeros�zipr�AssertionError)r5r��ntrZr\rA�t�zz�nn�ttr�s          @r6�test_jnjnp_zeroszTestBessel.test_jnjnp_zeros�	s����
�Z��	-�	-�	-�	-�	-���2�,�,�	L�	L�B� �,�R�0�0�J�A�q�!�Q�!�!�Q��l�l�
L�
L�
��B����7�7�#�B�B�r�2�J�J���=�=�=�=�=��1�W�W�#�C�C��B�K�K���>�>�>�>�>�(�)E��)J�K�K�K�

L�	L�	Lr9c���tjdd��}t|tgd���d��tjdd��}t	tjd|��dd���dS)	NrNr��g���(yu�?gOX�eS@g�a���!@g���xi'@g'N�w(�-@r>�rrr�)r �	jnp_zerosrrrr�)r5r�s  r6�test_jnp_zeroszTestBessel.test_jnp_zeros�	s������!�$�$��!�#�u�.:�.:�.:�(;�(;�<=�		>�	>�	>�
���A�&�&�����C��-�-�q�u�=�=�=�=�=�=r9c
���tjdd��}t|tgd���tgd���tgd���tgd���fd��dS)NrNr�r�r�)���"��@g+����@g�-9(1!@gȘ���'@g�>tA}�-@)g��0�v
@gj�t��@g��H.?$@g�}"O�*@gG�ŧp0@)r �
jnyn_zerosrr)r5�jnzs  r6�test_jnyn_zeroszTestBessel.test_jnyn_zeros�	s���� ��1�%�%��!�#�u�.:�.:�.:�(;�(;�
(-�.:�.:�.:�(;�(;�
(-�.:�.:�.:�(;�(;�
(-�.:�.:�.:�(;�(;�'<�&=>�'	?�	?�	?�	?�	?r9c��tjdd��}tjdd��tjdd��z
dz}t||d��dS)Nr@rNrr`)r r�r�r)r5�jvprim�jv0s   r6�test_jvpzTestBessel.test_jvp
sN����Q�q�!�!���z�!�A���w�z�!�A���.��1���F�3�r�*�*�*�*�*r9c�z�tjd��}tjdd��}t||d��dSr�)r r�r!r)r5�ozk�ozkrs   r6r�zTestBessel.test_k0
�8���j��n�n���z�!�B�����C��Q�'�'�'�'�'r9c�z�tjd��}tjdd��}t||d��dSr�)r r�r$r)r5�ozke�ozkers   r6r�zTestBessel.test_k0e
�8���{�2������A�b�!�!���D��q�)�)�)�)�)r9c�z�tjd��}tjdd��}t||d��dSr�)r r�r!r)r5�o1k�o1krs   r6r�zTestBessel.test_k1
rr9c�z�tjd��}tjdd��}t||d��dSr�)r r�r$r)r5�o1ke�o1kers   r6r�zTestBessel.test_k1e
rr9c��dtj���zdz
}dtj���zdz
}tjd||��}tjd||��}tjd||��}tjd||��}t	|jdgd��t	|jt
||zdz||z
g��dzd��||zdz||zdzzd||zdzz|dzzd|dzz|dzzg}|d|dd|dzz
|d|dz
|dzg}t	|jt
|��d	zd��||zdz||zdzz||zd
zzd
||zdzz||zdzz|dzzd||zdzz|dzz|dzzd|dzz|dzz|dzzg}|d|dd|dzz
|dd|dzz
d|dzz|d|dz
|dz|dz
g}	t	|jt
|	��d
zd��dS)Nr�rNrr@rrer�r>r�rDr?r>gH@)rSrYr �jacobirr.r)
r5rdre�P0�P1�P2�P3�cp�p2c�p3cs
          r6�test_jacobizTestBessel.test_jacobi$
sr��
�b�i��� � � �1�$��
�b�i��� � � �1�$��
�^�A�a��
"�
"��
�^�A�a��
"�
"��
�^�A�a��
"�
"��
�^�A�a��
"�
"��!�"�$��s�2�.�.�.�!�"�$�u�a��c�!�e�A�a�C�[�'9�'9�#�'=�b�A�A�A���s�1�u�q��s�1�u�o�q�!�A�#�a�%�y�!�A�#���1�Q�3���1��
�
>���!�u�R��U�1�R��U�7�]�2�a�5��A��;�r�!�u�#4�5��!�"�$�u�S�z�z�#�~�b�9�9�9���s�1�u�q��s�1�u�o�q��s�1�u�%�a��1��Q��i��1��Q��&7��1��&=��!�A�#�a�%�j�!�A�#���!��$�Q��!��W�a��c�]�A�a�C�%8�:���!�u�R��U�1�R��U�7�]�2�a�5��2�a�5��=��2�a�5��#8��A��r�!�u��R��U�9J�2�a�5�9P�Q��!�"�$�u�S�z�z�$��r�:�:�:�:�:r9c�R�tjdd��}t|dd��dS)Nrr�_�2�?r>)r r
r)r5�kn1s  r6rzTestBessel.test_kn6
s,���j��2�����C� 2�1�5�5�5�5�5r9c�r�ttjdd��tjdd����dS�Nr�rr�rr r!r4s r6�test_negv_kvzTestBessel.test_negv_kv:
s0���W�Z��S�)�)�7�:�d�C�+@�+@�A�A�A�A�Ar9c�R�tjdd��}t|dd��dS)Nrrr!r`�r r!r)r5�kv0s  r6�test_kv0zTestBessel.test_kv0=
s,���j��2�����C�!3�R�8�8�8�8�8r9c�R�tjdd��}t|dd��dS)NrNrgK�ދ�@r`r()r5�kv1s  r6�test_kv1zTestBessel.test_kv1A
�,���j��3�����C�!2�B�7�7�7�7�7r9c�R�tjdd��}t|dd��dS)Nr@rg�)lH��H@r`r()r5�kv2s  r6�test_kv2zTestBessel.test_kv2E
r.r9c�L�ttjdd��d��dS)N� rNg�.�Ք"�H)rr r
r4s r6�test_kn_largeorderzTestBessel.test_kn_largeorderI
s%����
�2�q�)�)�+A�B�B�B�B�Br9c�L�ttjdd��d��dS)Nrg=�`�X�Cr%r4s r6�test_kv_largeargzTestBessel.test_kv_largeargL
s$���W�Z��4�(�(�!�,�,�,�,�,r9c�r�ttjdd��tjdd����dSr$)rr r$r4s r6�
test_negv_kvezTestBessel.test_negv_kveO
s0���W�[��c�*�*�G�K��c�,B�,B�C�C�C�C�Cr9c�6�tjdd��}tjdd��td��z}t	||d��d}tjd|��}tjd|��t|��z}t	||d��dS)Nrrr>r�)r r$r!rr)r5�kve1r,rZ�kve2r0s      r6�test_kvezTestBessel.test_kveR
s����{�1�R� � ���j��2���s�2�w�w�&���D��Q�'�'�'����{�1�Q�����j��1�o�o�c�!�f�f�$���D��Q�'�'�'�'�'r9c�~�d}ttjd|��tjd|d���d��dS)NrrNr�r\r`)rr r!�kvp)r5rZs  r6�
test_kvp_v0n1zTestBessel.test_kvp_v0n1[
s=�����W�Z��!�_�_�,�g�k�!�A��.C�.C�.C�R�H�H�H�H�Hr9c���d}d}tj|dz|��||ztj||��zz}tj||d���}t||d��dS)Nr�rrNr>r`�r r!r?r�r5rjrZ�xcr!s     r6�test_kvp_n1zTestBessel.test_kvp_n1_
sj�������j��1��Q���
�!�A�#�g�j��1�o�o�"5�
5���K��!�q�!�!�!���B��2�&�&�&�&�&r9c���d}d}|dz|dzz|z
|dzztj||��ztj|dz|��|zz}tj||d���}t||d��dS)Nr�rr@rNr>r`rBrCs     r6�test_kvp_n2zTestBessel.test_kvp_n2f
s���������d�1�a�4�i��k�1�a�4�
�'�*�Q�q�/�/�
1�G�J�q��s�1�4E�4E�a�4G�
G���K��1��"�"�"���B��2�&�&�&�&�&r9c�z�tjd��}tjdd��}t||d��dSr�)r rArFrr�s   r6rBzTestBessel.test_y0m
r�r9c�z�tjd��}tjdd��}t||d��dSr�)r rYrFrr�s   r6rDzTestBessel.test_y1r
r�r9c�l�tjd��\}}tjdd���\}}t||f}t||f}tt	tjd|����dd��tt	tjd|��|z
��dd��dS)Nr@rN�rOr�rV)r �y0_zerosrrrcrI)r5�yo�ypo�zo�zpor��allvals       r6�
test_y0_zeroszTestBessel.test_y0_zerosw
s����!�!�$�$���3��!�!�A�.�.�.���3���B��i���C��G���!�#�g�j��S�&9�&9�":�":�3�r�B�B�B�!�#�g�j��3�&7�&7��&>�"?�"?��B�G�G�G�G�Gr9c��tjd��}t|tdg��tdg��fd��dS)NrNrgѮB�O��?r�)r �y1_zerosrr)r5rYs  r6�
test_y1_zeroszTestBessel.test_y1_zeros
sC��
�
�a�
 �
 ��!�"�e�W�I�&6�&6�u�g�Y�7G�7G�%H��K�K�K�K�Kr9c��tjdd���}t|tdg��tdg��fd��dS)NrNrKyL�
F%u�?!�rh���?y;�O��n�гY����?r)r �	y1p_zerosrr)r5�y1ps  r6�test_y1p_zeroszTestBessel.test_y1p_zeros�
sJ�����!�,�,�,��!�#�u�m�_�'=�'=�u�o�EV�?W�?W�&X�YZ�[�[�[�[�[r9c���tjdd��}t|tddg��d��tjdd��}t	|gd�d�	��dS)
Nr>r@g��3��@g�(�A&�"@r�r�)g]E.�+"|@g�H�(��|@gff�|�}@g&�b`~@g�HO_��~@rrG)r �yn_zerosrrr)r5�ans  r6�
test_yn_zeroszTestBessel.test_yn_zeros�
s���
�
�a��
"�
"��!�"�U�G�W�+=�%>�%>�q�A�A�A�
�
�c�!�
$�
$����5�5�5�;@�	B�	B�	B�	B�	B�	Br9c�X�tjdd��}t|tddg��d��tjdd��}t	tjd|��dd�	��tjd
d��}t	tjd
|��dd�	��dS)Nrr@g�Qhվ�@g�zN��@rD�+r�rr�r�r)r �	ynp_zerosrrrr��r5�aos  r6�test_ynp_zeroszTestBessel.test_ynp_zeros�
s���
�
�q��
#�
#��!�"�U�J�
�+C�%D�%D�Q�G�G�G�
�
�r�!�
$�
$�����B��+�+�Q�U�;�;�;�;�
�
�s�1�
%�
%�����C��,�,�a�d�;�;�;�;�;�;r9c�z�tjdd��}ttjd|��dd���dS)Nr�r�rr�r�)r r`rr�ras  r6�test_ynp_zeros_large_orderz%TestBessel.test_ynp_zeros_large_order�
s;��
�
�s�1�
%�
%�����C��,�,�a�e�<�<�<�<�<�<r9c�R�tjdd��}t|dd��dS�NrNr�5�,�1�
�r>)r rFr)r5�yn2ns  r6rGzTestBessel.test_yn�
s,���z�!�B�����D�!4�Q�7�7�7�7�7r9c�v�ttjdd��tjdd��d��dSrh)rr rIr4s r6�test_negv_yvzTestBessel.test_negv_yv�
r�r9c�R�tjdd��}t|dd��dSrg)r rIr)r5�yv2s  r6rJzTestBessel.test_yv�
s,���j��2�����C� 3�A�6�6�6�6�6r9c�v�ttjdd��tjdd��d��dSrh)rr rLr4s r6�
test_negv_yvezTestBessel.test_negv_yve�
r�r9c���tjdd��}t|dd��tjdd��t	d��z}tjdd��}t||d��dS)NrNrrhr>r�rC)r rLrrIr)r5�yve2�yve2r�yve22s    r6�test_yvezTestBessel.test_yve�
sk���{�1�R� � ���D�!4�Q�7�7�7��
�1�U�#�#�C��G�G�+����A�e�$�$���E�%��*�*�*�*�*r9c��tjdd��tjdd��z
dz}tjdd��}t||d��dS)NrNrrr�r@r`)r rIr�r)r5�yvpr�yvp1s   r6�test_yvpzTestBessel.test_yvp�
sR���
�1�R� � �7�:�a��#3�#3�3�S�8���{�1�R� � ��!�$�t�B�/�/�/�/�/r9c#�K�gd�}gd�}tj||��Ed{V��tjdtdd��zdg��Ed{V��dS)z>Yield points at which to compare Cephes implementation to AMOS)i����r��4�r�rrr�rz�{�G�(@r�r�)i�����rirCrzr��i@gy@gĂ@g������@�i'Nryi���rhr)�	itertools�productr)r5rjrZs   r6�_cephes_vs_amos_pointsz!TestBessel._cephes_vs_amos_points�
s�����
K�J�J��
�
�
���$�Q��*�*�*�*�*�*�*�*�*��$�S�6�#�r�?�?�%:�S�E�B�B�B�B�B�B�B�B�B�B�Br9�dy���=rNc��|���D]�\}}|�
|||��r�|||��|||dz��|t|��|��}
}	}tj|��r)t	tj|	��dk||f����tj|��rt	|	jdk||f����t||	||f||���|t|��krt|
|	||f||�����dS)NrN�u�<�7~r)r�rHrR)	r�rirSr�rrcrrXr)r5rz�f2rHrR�skiprjrZ�c1�c2�c3s           r6�check_cephes_vs_amoszTestBessel.check_cephes_vs_amos�
s,���/�/�1�1�	;�	;�D�A�q���D�D��A�J�J�����A�q���2�2�a��"��:�:�r�r�#�a�&�&�!�}�}�B��B��x��|�|�
;����r�
�
�e�+�a��V�4�4�4�4���"���
;����1��q�!�f�-�-�-�-���B��A��T��M�M�M�M���A���;�;�#�B��Q��F�*.�T�;�;�;�;��	;�	;r9�ppc64lezfails on ppc64lerQc�`�|�tjtjdd���dS)NrP�u5%���r�)r�r r�r�r4s r6�test_jv_cephes_vs_amosz!TestBessel.test_jv_cephes_vs_amos�
�+��	
�!�!�'�*�g�j�u�6�!�R�R�R�R�Rr9c�`�|�tjtjdd���dS)Nr�r�r��r�r rIrFr4s r6�test_yv_cephes_vs_amosz!TestBessel.test_yv_cephes_vs_amos�
r�r9c�h�d�}|�tjtjdd|���dS)Nc�(�t|��dkS)Nr�)rc)rjrZs  r6r�zETestBessel.test_yv_cephes_vs_amos_only_small_orders.<locals>.<lambda>�
s���A�����r9r�r�)rHrRr�r�)r5�skippers  r6�(test_yv_cephes_vs_amos_only_small_ordersz3TestBessel.test_yv_cephes_vs_amos_only_small_orders�
s4��,�,���!�!�'�*�g�j�u�6�X_�!�`�`�`�`�`r9c��tjd���5|�tjtjdd���ddd��dS#1swxYwYdS)Nr�r�g:�0�y5>r�r�)rSr�r�r r�r4s r6�test_iv_cephes_vs_amosz!TestBessel.test_iv_cephes_vs_amos�
s���
�[�X�
&�
&�
&�	V�	V��%�%�g�j�'�*�4�f�%�U�U�U�	V�	V�	V�	V�	V�	V�	V�	V�	V�	V�	V�	V����	V�	V�	V�	V�	V�	Vs�.A�A�Ac���d}tj�d��tj�d|��dtj�d|���zz}tj�d|��dtj�d|���zz}tj�d|���d	k}||�t��||<tjd
���5tj	||��}tj	||dz��}tj
|t|��d
k<tj
|t|��d
k<d	|t|��dk<d	|t|��dk<t||zdz
��}d	|tj|��<ddd��n#1swxYwYtj
|��}t||dk||||tj	||||��tj	||||dz��f��dS)Ni@BrNryrCr@)r(rr>rr�r�rNr�gY��n�gH����׊>)rSrYrZr�r�rrir�r r�rrcr�argmaxr)	r5rrjr!�imskr�r��dcr]s	         r6� test_iv_cephes_vs_amos_mass_testz+TestBessel.test_iv_cephes_vs_amos_mass_test�
s<����
�	���q�����I���S�!�$�$��R�Y�->�->�q�q�->�-I�-I�'I�I���I���S�!�$�$��R�Y�->�->�q�q�->�-I�-I�'I�I���	�!�!�!�!�!�,�,��1���D�'�.�.��%�%��$��
�[�X�
&�
&�
&�	!�	!���A�q�!�!�B���A�q��t�$�$�B�#%�&�B�s�2�w�w����"$�&�B�s�2�w�w����#$�B�s�2�w�w��� �#$�B�s�2�w�w��� ��R��U�Q�Y���B� �B�r�x��|�|��	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�I�b�M�M��	��1����q��t�Q�q�T�7�:�a��d�A�a�D�+A�+A�7�:�a�PQ�d�TU�VW�TX�Y[�T[�C\�C\�]�^�^�^�^�^s�	CG�G�"Gc��|�tjtjdd���|�tjtjdd���dS)Nrr�r�)r�r r!r
r4s r6�test_kv_cephes_vs_amosz!TestBessel.test_kv_cephes_vs_amos�
sJ���!�!�'�*�g�j�t�&�!�Q�Q�Q��!�!�'�*�g�j�t�&�!�Q�Q�Q�Q�Qr9c���ttjdd��d��ttjdd��d��ttjdd��d��dS)	Nrr>gP����?r�r~g�~Omʒ?gY�8�E@�@gK�Sn��)rr r�r4s r6�test_ticket_623zTestBessel.test_ticket_623s_����
�1�a�(�(�*=�>�>�>���
�3��-�-�/A�B�B�B���
�3�	�2�2�4G�H�H�H�H�Hr9c	��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d	��ttjdd��d
��ttjdd��d��ttjdd��d
��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d	��ttjdd��d
��ttjdd��d��ttjdd��d
��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��d��ttjdd��tjdd��td��z��ttjdd��tjdd��td��z��ttj	dd��tjdd��td��z��ttj
dd��tjdd��td��z��ttjdd��tjdd��dtjdd��zz��ttjdd��tjdd��dtjdd��zz
��dS)zNegative-order BesselsrCrNgl���)ܿr(g��Pj�?g�k����?g%�E*2i��g敋��?gw-�-`�?gÉ���B�?g��W��?rg��޴��?g�z�|�?�a����?gp�x%��?y�?��?�?yY��D��?`{��1w�y6�x��?B��]#Ӯ?y������?�b�>��?y�.}9d��?���8�kؿy�?333333�?g333333ӿy333333�?�?rWN)
rr r�rIr�r!r�rrLr�r$r�r�r4s r6�test_ticket_853zTestBessel.test_ticket_853s���	��
�2�q�)�)�+>�?�?�?���
�2�q�)�)�+=�>�>�>���
�2�q�)�)�+=�>�>�>���
�2�q�)�)�+=�>�>�>���
�2�q�)�)�+=�>�>�>���
�2�q�)�)�+=�>�>�>���
�2�q�)�)�+=�>�>�>���
�2�q�)�)�+<�=�=�=���
�4��+�+�-C�D�D�D���
�4��+�+�-?�@�@�@���
�4��+�+�->�?�?�?���
�4��+�+�-?�@�@�@���
�2�t�,�,�.A�B�B�B���
�2�t�,�,�.@�A�A�A���
�2�t�,�,�.@�A�A�A���
�2�t�,�,�.@�A�A�A���
�2�t�,�,�.@�A�A�A���
�2�t�,�,�.@�A�A�A���
�2�t�,�,�.@�A�A�A���
�2�t�,�,�.?�@�@�@���
�4��.�.�0F�G�G�G���
�4��.�.�0U�V�V�V���
�4��.�.�0B�C�C�C���
�4��.�.�0U�V�V�V���
�4��.�.�0A�B�B�B���
�4��.�.�0R�S�S�S���
�4��.�.�0B�C�C�C���
�4��.�.�0R�S�S�S����D��0�0�'�*�T�6�2J�2J�3�t�9�9�2T�U�U�U����D��0�0�'�*�T�6�2J�2J�3�t�9�9�2T�U�U�U����D��0�0�'�*�T�6�2J�2J�3�t�9�9�2T�U�U�U����D��0�0�'�*�T�6�2J�2J�3�v�;�;�2V�W�W�W�����d�3�3�W�Z��d�5K�5K�b�QX�Q[�\`�ae�Qf�Qf�Nf�5f�g�g�g�����d�3�3�W�Z��d�5K�5K�b�QX�Q[�\`�ae�Qf�Qf�Nf�5f�g�g�g�g�gr9c���tttjdd������tttjdd������tttjdd������tttjdd������tttjdd������tttjdd������tttjdd������tttjdd������tttj	dd������tttj	dd������tttj
dd������tttj
dd������tttjd��dd������tjd����tttjd��dd����
��tjd����dS)zReal-valued Bessel domainsryrCrNrr@r>N)rrr r�r�rIr!r�r�rLr$r;r��anyr4s r6�test_ticket_854zTestBessel.test_ticket_8544s%����g�j��b�)�)�*�*�+�+�+���g�j��b�)�)�*�*�+�+�+���g�j��b�)�)�*�*�+�+�+���g�j��B�'�'�(�(�)�)�)���g�j��b�)�)�*�*�+�+�+���g�j��B�'�'�(�(�)�)�)���g�k�#�r�*�*�+�+�,�,�,���g�k�#�r�*�*�+�+�,�,�,���g�k�#�r�*�*�+�+�,�,�,���g�k�!�R�(�(�)�)�*�*�*���g�k�#�r�*�*�+�+�,�,�,���g�k�!�R�(�(�)�)�*�*�*���g�m�B�'�'��!��,�-�-�1�1�3�3�W�]�2�5F�5F�G�G�G��E�'�-��+�+�A�a�C�0�1�1�5�5�7�7�7���r�9J�9J�K�K�K�K�Kr9c���ttjdd��tjk��ttjdd��tjk��dS)Nrer)rr r!rSrr$r4s r6�test_gh_7909zTestBessel.test_gh_7909EsJ����
�3��"�"�b�f�,�-�-�-����C��#�#�r�v�-�.�.�.�.�.r9c��ttjdd��d��ttjdd��d��dS)zReal-valued Bessel I overflowrNi�g�����~rKi`g �
?los~N�rr r�r4s r6�test_ticket_503zTestBessel.test_ticket_503IsB����
�1�c�*�*�,A�B�B�B���
�4��.�.�0E�F�F�F�F�Fr9c�L�ttjdd��d��dS)NrrNr�r�r4s r6�test_iv_hyperg_poleszTestBessel.test_iv_hyperg_polesNs%����
�4��+�+�->�?�?�?�?�?r9��c��td|���t��}|d|zztd|z��zt	j|dz��z
t	j||zdz��z
}t|t|��<t|��}t|���
��tt��jz|zt|d��dzz}|�
��|fS)Nrr@ryrNrCr`)rrrr
r r�rrrrcr�r�eps�sum�r5rjrZr\r]�rr�s       r6�	iv_serieszTestBessel.iv_seriesQs����1�a�L�L����'�'��
�q��s�U�C��1��I�I�����!�� 4� 4�4�w��q��s�1�u�7M�7M�M����%��(�(����F�F���!�f�f�j�j�l�l�U�6�]�]�.�.��2�S��2��Z�Z��]�B���u�u�w�w��|�r9c��dD]@}|�d|��\}}ttj|��|||����AdS)N�rzr�r}r�rRr�)r�rr r��r5rZ�valuer�s    r6�test_i0_serieszTestBessel.test_i0_seriesY�X��!�	G�	G�A�����1�-�-�J�E�3��G�J�q�M�M�5�s�A�F�F�F�F�F�	G�	Gr9c��dD]@}|�d|��\}}ttj|��|||����AdS)Nr�rNr�)r�rr r�r�s    r6�test_i1_serieszTestBessel.test_i1_series^r�r9c	��dD]H}dD]C}|�||��\}}ttj||��||||f����D�IdS)N)rzr�rr�rzr{r�)rzr�r}y�@r�)r�rr r��r5rjrZr�r�s     r6�test_iv_serieszTestBessel.test_iv_seriescsw��7�	S�	S�A�,�
S�
S��!�^�^�A�q�1�1�
��s���
�1�a� 0� 0�%�c�A�q�6�R�R�R�R�R�
S�	S�	Sr9c	���ddgddgddgddgddgd	d
gddgd
dgg}t|��D]C\}\}}tj|��t|��z}t	||dd|z����DdS)Nr�rzrPrTg0oO���?ryg��!��?gr��b��?r	g���pH�?r�g���C~�?r�g�go���?r>r�r�)r�r r�rr�r5r�rnr!rjr�s      r6r�zTestBessel.test_i0is�����*��#�,���%���%���%���%���%���&���#�6�*�*�	B�	B�I�A�v��1���A����a�R���(�B���A�q�*�q�.�A�A�A�A�A�	B�	Br9c�z�tjd��}tjdd��}t||d��dSr�)r r�r�r)r5�oize�oizers   r6r�zTestBessel.test_i0ewrr9c���ddgddgddgddgdd	gd
dgdd
gg}t|��D]C\}\}}tj|��t|��z}t	||dd|z����DdS)Nr�rPgj����|�=rTgȕ!�[1�?ryg;͘�?rzg�R�Μ�?r�g|����?r�g}����f�?r>r�r�)r�r r�rrr�s      r6r�zTestBessel.test_i1|s�����*��0�1���%���%���%���%���&�
��#�6�*�*�	B�	B�I�A�v��1���A����a�R���(�B���A�q�*�q�.�A�A�A�A�A�	B�	Br9c�z�tjd��}tjdd��}t||d��dSr�)r r�r�r)r5�oi1e�oi1ers   r6r�zTestBessel.test_i1e�rr9c��ttjd����}t|tddg��d��dS)Nr�gїJB�?@g*u���?)rr r�r)r5�iti0s  r6r�zTestBessel.test_iti0k0�sA���W�^�A�&�&�'�'��!�$�u�.@�BT�-U�'V�'V�WX�Y�Y�Y�Y�Yr9c�n�tjd��}t|tddg��d��dS)NrTgݳ�Ʉ|T?gV�ƥ
@rD)r r�rr)r5�it2ks  r6r�zTestBessel.test_it2i0k0�s9����r�"�"��!�$�u�.C�EW�-X�'Y�'Y�Z[�\�\�\�\�\r9c�r�tjdd��td��z}t|dd��dS)NrrT皙������gvM���?r`)r r�rr)r5�iv1s  r6r�zTestBessel.test_iv�s7���j��2���s�3�x�x�'���C� 3�B�7�7�7�7�7r9c�r�ttjdd��tjdd����dSr�)rr r�r4s r6�
test_negv_ivezTestBessel.test_negv_ive�s0���W�[��1�%�%�w�{�2�a�'8�'8�9�9�9�9�9r9c��tjdd��}tjdd��td��z}t	||d��dS)NrrTr�r`)r r�r�rr)r5�ive1r�s   r6�test_ivezTestBessel.test_ive�sG���{�1�R� � ���j��2���s�3�x�x�'���D��R�(�(�(�(�(r9c�t�ttjdd��tjdd��d��dS)NrNr@rr`)rr r��ivpr4s r6�	test_ivp0zTestBessel.test_ivp0�s0���G�J�q��O�O�W�[��1�-=�-=�r�B�B�B�B�Br9c��tjdd��tjdd��zdz}tjdd��}t||d��dS)Nrr@rNr`)r r�r�rrZs   r6�test_ivpzTestBessel.test_ivp�sN��
�Z��!�_�_�w�z�!�A���
.��1���K��!�����A�a��#�#�#�#�#r9)r�rN)r�)UrUrVrWr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�r�rrr&r*r-r1r4r6r8r<r@rErGrBrDrRrUrYr]rcrerGrkrJrortrxr�r�rXrYrZ�platform�machiner�r�r�r��slowr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r]r9r6r�r�z	s�������\�\�\�^�^�^�8�8�8�&�&�&�
&�&�&�
9�9�9�D�D�D�	B�	B�	B�F�F�F�-�-�-�L�L�L�8G�G�G�$
L�
L�
L�>�>�>�?�?�?�.+�+�+�
(�(�(�
*�*�*�
(�(�(�
*�*�*�
;�;�;�$6�6�6�B�B�B�9�9�9�8�8�8�8�8�8�C�C�C�-�-�-�D�D�D�(�(�(�I�I�I�'�'�'�'�'�'�&�&�&�
&�&�&�
H�H�H�L�L�L�\�\�\�B�B�B�<�<�<�=�=�=�8�8�8�D�D�D�7�7�7�F�F�F�+�+�+�0�0�0�

C�
C�
C�
;�
;�
;�
;��[���'�x�'�)�)�Y�6�0��2�2�S�S�2�2�S��[���'�x�'�)�)�Y�6�0��2�2�S�S�2�2�S�a�a�a�V�V�V��[��_�_���_�8R�R�R�I�I�I�
*h�*h�*h�XL�L�L�"/�/�/�G�G�G�
@�@�@�����G�G�G�
G�G�G�
S�S�S�B�B�B�*�*�*�
B�B�B�*�*�*�
Z�Z�Z�]�]�]�8�8�8�:�:�:�)�)�)�
C�C�C�$�$�$�$�$r9r�c��eZdZd�Zd�ZdS)�TestLaguerrec��tjd��}tjd��}tjd��}tjd��}tjd��}tjd��}t|jdgd��t|jddgd��t|jt	gd	���d
zd��t|jt	gd���dzd��t|jt	gd
���dzd��t|jt	gd���dzd��dS)NrrNr@rr>r�rerC)rNr~r@r�)rCr�i��rDr.)rNi��Hi����rrv)rCri8���iXi����r�r�)r �laguerrerr.r)r5�lag0�lag1�lag2�lag3�lag4�lag5s       r6�
test_laguerrezTestLaguerre.test_laguerre�s/�����"�"�����"�"�����"�"�����"�"�����"�"�����"�"��!�$�&�!��R�0�0�0�!�$�&�"�Q���3�3�3�!�$�&��x�x�x����)<�R�@�@�@�!�$�&��|�|�|�)<�)<�S�)@��D�D�D�!�$�&��/@�/@�/@�)A�)A�$�)F�r�J�J�J�!�$�&��/H�/H�/H�)I�)I�%�)O�PR�S�S�S�S�Sr9c�X�dtj���zdz
}tjd|��}tjd|��}tjd|��}tjd|��}t	|jdg��t	|jd|dzg��t
|jtdd|dzz|d	z|d
zzg��d
z��t
|jtdd|dzzd|dzz|dzz|dz|dzz|dzzg��dz��dS)
Nr�rrrNr@rrCr(rzr�rr.)rSrYr r�rr.rr)r5r]r�r�r�r�s      r6�test_genlaguerrezTestLaguerre.test_genlaguerre�s.��
�b�i��� � � �3�&���"�1�Q�'�'���"�1�Q�'�'���"�1�Q�'�'���"�1�Q�'�'���T�V�Q�C� � � ��T�V�R��!��H�%�%�%��D�F�5�!�B��!��H�a��d�Q�r�T�]�)C�#D�#D�S�#H�I�I�I��D�F�5�"�Q��!��W�R��1��X�q��s�^�Q�q�S�1�Q�3�K�QR�ST�QT�DU�)V�#W�#W�X[�#[�\�\�\�\�\r9N)rUrVrWr�r�r]r9r6r�r��s:������T�T�T�	]�	]�	]�	]�	]r9r�c��eZdZd�ZdS)�TestLegendrec��tjd��}tjd��}tjd��}tjd��}tjd��}tjd��}t|jdg��t|jddg��t	|jtgd���dzd	�
��t	|jtgd���dz��t	|jtgd���d
z��t	|jtgd���d
z��dS)NrrNr@rr>r�)rrrCr�rer)r�rrr)r�rrErrr�)�?ri����rrpr)r �legendrerr.rr)r5�leg0�leg1�leg2�leg3�leg4�leg5s       r6�
test_legendrezTestLegendre.test_legendre�s$�����"�"�����"�"�����"�"�����"�"�����"�"�����"�"���T�V�a�S�!�!�!��T�V�a��U�#�#�#��D�F�E�(�(�(�O�O�C�$7��D�D�D�D��D�F�E�*�*�*�$5�$5�c�$9�:�:�:��D�F�E�.�.�.�$9�$9�#�$=�>�>�>��D�F�E�*;�*;�*;�$<�$<�S�$@�A�A�A�A�Ar9N)rUrVrWr�r]r9r6r�r��s(������B�B�B�B�Br9r�c��eZdZd�ZdS)�
TestLambdac
�~�tjdd��}ttjdd��dtjdd��zdzg��ttjdd��dtjdd��zdzdtjdd��zdzzg��f}t
||d��dS)NrNrTrr@r(r�r>)r �lmbdarr�r�r�r)r5�lam�lamrs   r6�
test_lmbdazTestLambda.test_lmbda�s����m�A�b�!�!���w�z�!�B�'�'��7�:�a��+;�+;�);�B�)>�?�@�@��w�{�1�R�(�(�"�W�Z��"�-=�-=�*=�c�*A�A�g�k�RS�TV�FW�FW�DW�XZ�DZ�*Z�[�\�\�^��!�#�d�1�-�-�-�-�-r9N)rUrVrWrr]r9r6r�r��s#������.�.�.�.�.r9r�c��eZdZd�Zd�ZdS)�	TestLog1pc��tjd��tjd��tjd��f}td��td��td��f}t||d��dS)Nr`rVr?rer>�r r)r
r)r5�l1p�l1prls   r6r*zTestLog1p.test_log1p�sb���}�R� � �'�-��"3�"3�W�]�2�5F�5F�G���R���#�b�'�'�3�r�7�7�+��!�#�e�A�.�.�.�.�.r9c��tjd��tjd��tjd��f}td��td��td��f}t||d��dS)NrN皙�����?r�r@rrr>r)r5�l1pm�l1pmrls   r6�test_log1pmorezTestLog1p.test_log1pmore�sb���
�a� � �'�-��"4�"4�g�m�C�6H�6H�I���a�&�&��S���#�c�(�(�+��!�$�v�a�0�0�0�0�0r9N)rUrVrWr*rr]r9r6rr�s2������/�/�/�
1�1�1�1�1r9rc�\�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�TestLegendreFunctionsc��d}tjdd|d��}t|td|dd|z|zdz
zgdt	||zdz
��d|zt	||zdz
��zgddd||zdz
zgg��tddd|zgd|t	||zdz
��zdd|z|zdz
zt	||zdz
��zgddd|zgg��fd	��dS)
Ny�?333333�?r@rrzryrNr�rDrB)r �clpmnrrr)r5rZ�clps   r6�
test_clpmnz TestLegendreFunctions.test_clpmn�s!�����m�A�q�!�Q�'�'��!�#��F�A�s�A�a�C��E�!�G�}�5�"�D��1��Q��K�K��1��T�!�A�#�a�%�[�[��A�"�F�A�q��s�1�u�I�6�8�9�9��F�F�A�a�C�0�"�A�d�1�Q�3�q�5�k�k�M�1�a��c�!�e�A�g�;�t�A�a�C��E�{�{�3J�K�"�F�A�a�C�0�2�3�3�4��	�	�	�	�	r9c�p�d}d}d}d}tj|||d|zzd��d||f}tj|||d|zz
d��d||f}tt||g��ttj|||��tj|||��g��d��dS)	NrPrNrryrWr@rrB)r rrrr2�r5r�rAr\r!�clp_plus�	clp_minuss       r6�test_clpmn_close_to_real_2z0TestLegendreFunctions.test_clpmn_close_to_real_2�s�����
��
�����=��A�q��C��x��3�3�A�6�q�!�t�<���M�!�Q��"�S�&��!�4�4�Q�7��1��=�	�!�%��9�(=�">�">�"'���a��A�)>�)>�)0��a��A�)>�)>�)@�#A�#A�"#�	%�	%�	%�	%�	%r9c��d}d}d}d}tj|||d|zzd��d||f}tj|||d|zz
d��d||f}tt||g��ttj|||��tjd|zt
jz��ztj|||��tjd|zt
jz��zg��d	��dS)
NrPrNrryrWry��y�?rB)r rrrr2rSrrrs       r6�test_clpmn_close_to_real_3z0TestLegendreFunctions.test_clpmn_close_to_real_3s����
��
�����=��A�q��C��x��3�3�A�6�q�!�t�<���M�!�Q��"�S�&��!�4�4�Q�7��1��=�	�!�%��9�(=�">�">�"'���a��A�)>�)>�r�v�e�A�g�b�e�m�?T�?T�)T�)0��a��A�)>�)>�r�v�d�1�f�R�U�l�?S�?S�)S�)U�#V�#V�"#�	%�	%�	%�	%�	%r9c���d}d}d}d}dD]e}ttj|||d|zz|��d||ftj|||d|zz
|��d||fd���fdS)N�H�����z>rNrW�r@rrrD)rr r)r5r�rAr\r!�types      r6�test_clpmn_across_unit_circlez3TestLegendreFunctions.test_clpmn_across_unit_circles�����
��
�����	M�	M�D���
�a��A�b��f�H�d� C� C�A� F�q�!�t� L�#�M�!�Q��"�S�&��$�?�?��B�1�a�4�H�!�
M�
M�
M�
M�	M�	Mr9c��dD]�}td��D]�}td|��D]�}tj|||��}tt	j|dddd�f�������tj|||��}tt	j|dddd�f����������Ȍ�dS)N)rNrCr>rN)rjr rrrSr�r��lpmn)r5rZr\rA�lps     r6�test_infzTestLegendreFunctions.test_infs����	9�	9�A��1�X�X�
9�
9���q�!���9�9�A� ��q�!�Q�/�/�B��B�H�R��U�1�Q�R�R�4�[�1�1�5�5�7�7�8�8�8� ��a��A�.�.�B��B�H�R��U�1�Q�R�R�4�[�1�1�5�5�7�7�8�8�8�8�	9�
9�	9�	9r9c�"�gd�}d}d}dD]�}|D]~}dD]y}tj|||d|zz|��dtj|||d|zz
|��dz
|z}ttj||||��d|d	�
���z���dS)N)r�y��?y��y�?�r�r�r�r�r@rr)r�y����MbP?ryrrNrirG)r rr)r5�zvalsrAr\rrZ�h�approx_derivatives        r6�test_deriv_clpmnz&TestLegendreFunctions.test_deriv_clpmn"s���+�+�+��
��
���	/�	/�D��
/�
/��&�/�/�A�)0��q�!�Q�s�1�u�W�d�)K�)K�A�)N�+2�=��A�q��Q��w��+M�+M�a�+P�*Q�RS�)T�%�#�G�M�!�Q��4�$@�$@��$C�$5�)-�/�/�/�/�/�/�
/�	/�	/r9c��tjddd��}t|tgd�g��tgd�g��fd��dS)Nrr@ry�rzry����r�rzrer>)r rrr�r5r s  r6�	test_lpmnzTestLegendreFunctions.test_lpmn1s���
�\�!�A�b�
!�
!��!�"�e�.@�.@�.@�-A�'B�'B�',�.?�.?�.?�-@�'A�'A�&B�
CD�	E�	E�	E�	E�	Er9c��tjdd��}t|tgd���tgd���fd��dS)Nr@ryr(r*r>)r �lpnrr)r5�lpnfs  r6�test_lpnzTestLegendreFunctions.test_lpn:s����{�1�R� � ��!�$��/B�/B�/B�)C�)C�',�-?�-?�-?�'@�'@�(A�
BC�	D�	D�	D�	D�	Dr9c�v�tjddd��}t|dd��tjddd��}t|dd��tjd	�
��5tjddd��}ddd��n#1swxYwYt|dkptj|����dS)Nrr@ryr)rB�(r�g���I��?r�r�rC)r r2rrSr�rrr+s  r6r3zTestLegendreFunctions.test_lpmvCs���
�\�!�A�b�
!�
!���B�v�a�(�(�(�
�\�!�B�t�
$�
$���B�1�!�4�4�4��[�X�
&�
&�
&�	*�	*���b��D�)�)�B�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*���a��'�2�8�B�<�<�(�(�(�(�(s�$B�B�Bc���tjddd��}tjdd��}t|dd|dd��t|dd|dd��dS)Nrr@ryr>rN)r �lqmn�lqnr)r5�lqmnf�lqfs   r6�	test_lqmnzTestLegendreFunctions.test_lqmnOsh����Q�q��$�$���k�!�B����!�%��(�1�+�c�!�f�Q�7�7�7�!�%��(�1�+�c�!�f�Q�7�7�7�7�7r9c��d}d}||z
||zfD]?}tjdd|��dd}d||zdz
z}t||���@dS)znalgorithm for real arguments changes at 1.0001
           test against analytical result for m=2, n=1
        gq���h�?g�h㈵��>r@rNr)rCrCN)r r4r)r5�x0�deltar!�lqr[s      r6�
test_lqmn_gt1z#TestLegendreFunctions.test_lqmn_gt1Usu�������U�(�B�u�H�%�	.�	.�A���a��A�&�&�q�)�&�1�B��!�A�#�a�%�y�H���H�-�-�-�-�	.�	.r9c��tjddd��\}}t|jd��t|jd��tjddd��\}}t|jd��t|jd��dS)Nr>r)r�r�r)r�rN)r r4rr')r5rdres   r6�test_lqmn_shapez%TestLegendreFunctions.test_lqmn_shape`s~���|�A�q�#�&�&���1��Q�W�f�%�%�%��Q�W�f�%�%�%��|�A�q�#�&�&���1��Q�W�f�%�%�%��Q�W�f�%�%�%�%�%r9c��tjdd��}t|tgd���tgd���fd��dS)Nr@ry)gk+��ݓ�?g�=yX�5�g†�W�2�)g�|a2U�?g�~j�t�?g�ڊ�e��r>)r r5rr)r5r7s  r6�test_lqnzTestLegendreFunctions.test_lqnisb���k�!�B����!�#�u�-G�-G�-G�'H�'H�',�-E�-E�-E�'F�'F�'H�HI�	K�	K�	K�	K�	Kr9N)rUrVrWrrrrr!r&r,r0r3r8r=r?rAr]r9r6r
r
�s�������
�
�
�
%�
%�
%�
%�
%�
%�M�M�M�9�9�9�
/�
/�
/�E�E�E�D�D�D�
)�
)�
)�8�8�8�	.�	.�	.�&�&�&�K�K�K�K�Kr9r
c� �eZdZd�Zd�Zd�ZdS)�TestMathieuc��dSr�r]r4s r6r6zTestMathieu.test_mathieu_aqr�r9c�0�tjdd��dS)Nr@r�)r r*r4s r6�test_mathieu_even_coefz"TestMathieu.test_mathieu_even_coefts���!�!�A�&�&�&�&�&r9c��dSr�r]r4s r6�test_mathieu_odd_coefz!TestMathieu.test_mathieu_odd_coefxs���r9N)rUrVrWr6rFrHr]r9r6rCrCosA������
�
�
�'�'�'�
�
�
�
�
r9rCc��eZdZd�Zd�ZdS)�TestFresnelIntegralc��dSr�r]r4s r6rrz$TestFresnelIntegral.test_modfresnelpr�r9c��dSr�r]r4s r6rnz$TestFresnelIntegral.test_modfresnelm�r�r9N)rUrVrWrrrnr]r9r6rJrJ}s2������
�
�
�
�
�
�
�
r9rJc��eZdZd�ZdS)�TestOblCvSeqc�r�tjddd��}t|tgd���d��dS)NrrrN)g~T�~Oֿg�t�_�J�?gm��{�@g@j'��&@r�)r �
obl_cv_seqrr)r5�obls  r6�test_obl_cv_seqzTestOblCvSeq.test_obl_cv_seq�sT��� ��1�Q�'�'��!�#�e�-9�-9�-9�':�':�;<�	=�	=�	=�	=�	=r9N)rUrVrWrRr]r9r6rNrN�s#������=�=�=�=�=r9rNc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestParabolicCylinderc��tjdd��}t|tddg��tddg��fd��dS)NrNrTg�Q����?gx$(~��?gx$(~���g�(\���?r>)r �pbdn_seqrr)r5�pbs  r6�
test_pbdn_seqz#TestParabolicCylinder.test_pbdn_seq�si��
�
�a��
#�
#��!�"�e�V�.4�-6�'7�'7�&+�W�-3�-5�'6�'6�&7�89�	:�	:�	:�	:�	:r9c��tjdd��dtjdd��dztjdd��dz
dS)NrNrrTr)r r�r4s r6r�zTestParabolicCylinder.test_pbdv�sL����Q�r�������a��#�#�A�&�&���a��);�);�A�)>�>�>�>�>r9c���tjdd��}tjdd��}t|t	|d��t	|d��fd��dS)NrNrTrr>)r rV�pbdv_seqrr)r5�pbn�pbvs   r6�
test_pbdv_seqz#TestParabolicCylinder.test_pbdv_seq�sW����q��$�$����q��$�$��!�#�t�C��F�|�|�D��Q��L�L�&A�!�D�D�D�D�Dr9c��tjddd��}d|dzztjtj��zt	jdd|zz
��z}t
t	j|d��d|dd�	��t
t	jd
d��ddd
���t
t	jdd��ddd
���dS)Nrir`r�r@ryr�rr�r�g�G�z�$@gq=
ףp4@g��H��Q9rtrGg��(\#�g��Q��@g��k�Sa>)rSrWrrr r�rr�)r5�etarZs   r6�test_pbdv_pointsz&TestParabolicCylinder.test_pbdv_points�s����k�#�r�1�%�%��
��A��J�r�w�r�u�~�~�%�g�m�B�r�#�v�I�&>�&>�>�����S�"�-�-�a�0�!�%�e�L�L�L�L�	���U�E�2�2�1�5�7J�QV�W�W�W�W����U�D�1�1�!�4�6J�QV�W�W�W�W�W�Wr9c��tjddd��dd�df}tjddd��ddd�f}tj||��}ddt	|��zz}tj|||z��dtj|||z
��dz
|zd	z}t|d
|dd���dS�
Nr~r>r>rir`r�rrr�rNr_r�)rSrWr r�rcr�r5r!r`rhr��dps      r6�test_pbdv_gradientz(TestParabolicCylinder.test_pbdv_gradient������K��A�q�!�!�!�!�!�D�&�)���k�#�r�1�%�%�d�1�1�1�f�-���L��a� � ���T�#�a�&�&�[� ���l�3��C��(�(��+�g�l�3��C��.H�.H��.K�K�s�
R�UW�
W����!��b�t�$�7�7�7�7�7�7r9c��tjddd��dd�df}tjddd��ddd�f}tj||��}ddt	|��zz}tj|||z��dtj|||z
��dz
|zd	z}t|d
|dd���dSrc)rSrWr r�rcrrds      r6�test_pbvv_gradientz(TestParabolicCylinder.test_pbvv_gradient�rgr9N)	rUrVrWrXr�r^rarfrir]r9r6rTrT�st������:�:�:�?�?�?�E�E�E�
X�X�X�8�8�8�8�8�8�8�8r9rTc��eZdZd�ZdS)�
TestPolygammac	��tjdd��}tjdd��}t|dd��t|dd��gd�}ttjd|��tj|����gd	�}gd
�}gd�}ttj||��|��t	j|gdz��}ttj|t	j|gdz����|��ttjt	j|gdz��|��|��dS)Nr@rNrgX]��;�r`gOV,@�@)r@rg8���Brr�r�)g�2}�j��g�.�M���?g��}2�;ο)r �	polygammarr�rSr�)r5�poly2�poly3r!r\r[s      r6�test_polygammazTestPolygamma.test_polygamma�sC���!�!�A�&�&���!�!�A�&�&���E�-��3�3�3��E�,�r�2�2�2�
�N�N���G�-�a��3�3�W�[��^�^�D�D�D�
�I�I���O�O��*�*�*���G�-�a��3�3�X�>�>�>��<��
�1��-�-���G�-�a���q�c�!�e�1D�1D�E�E�$�	&�	&�	&��G�-�b�l�A�3�q�5�.A�.A�1�E�E�$�	&�	&�	&�	&�	&r9N)rUrVrWrpr]r9r6rkrk�s#������&�&�&�&�&r9rkc��eZdZd�ZdS)�TestProCvSeqc�r�tjddd��}t|tgd���d��dS)NrrrN)g�"�~j�?g6?�Ң�@g)u�8F"@g�2�g)@r�)r �
pro_cv_seqrr)r5�prols  r6�test_pro_cv_seqzTestProCvSeq.test_pro_cv_seq�sT���!�!�A�a�(�(��!�$�u�.:�.:�.:�(;�(;�<=�	>�	>�	>�	>�	>r9N)rUrVrWrvr]r9r6rrrr�s#������>�>�>�>�>r9rrc��eZdZd�ZdS)�TestPsic�P�tjd��}t|dd��dS)NrNg�o��x�r>)r r�r)r5�pss  r6r�zTestPsi.test_psi�s(��
�[��^�^���B�3�A�6�6�6�6�6r9N)rUrVrWr�r]r9r6rxrx�s#������7�7�7�7�7r9rxc��eZdZd�Zd�ZdS)�
TestRadianc�d�tjddd��}t|tdzd��dS)Nrrr�r��r r�rr)r5�rads  r6r�zTestRadian.test_radian�s1���n�R��!�$�$���C��3��q�)�)�)�)�)r9c�j�tjddd��}t|tdzdzd��dS)NrrNrhr@g���C?r�r~)r5�rad1s  r6�test_radianmorezTestRadian.test_radianmore�s7���~�b��2�&�&���D��A��&;�!;�A�>�>�>�>�>r9N)rUrVrWr�r�r]r9r6r|r|�s2������*�*�*�?�?�?�?�?r9r|c��eZdZd�Zd�ZdS)�TestRiccatic�.�d\}}tj||f��}t|��D]E}tj||��}tj||d���}||z|d|f<||z|z|d|f<�Ft|tj||��d��dS�N)r@rT)�
derivativerrNr>)rS�emptyrjr �spherical_jnr�
riccati_jn)r5rr!�Sr\ry�jps       r6�test_riccati_jnzTestRiccati.test_riccati_jn�������1��H�a��V�����q���	�	�A��$�Q��*�*�A��%�a��t�<�<�<�B��q�S�A�a��c�F��r�T�A�X�A�a��c�F�F�!�!�W�%7��1�%=�%=�q�A�A�A�A�Ar9c�.�d\}}tj||f��}t|��D]E}tj||��}tj||d���}||z|d|f<||z|z|d|f<�Ft|tj||��d��dSr�)rSr�rjr �spherical_ynr�
riccati_yn)r5rr!�Cr\rY�yps       r6�test_riccati_ynzTestRiccati.test_riccati_yn�r�r9N)rUrVrWr�r�r]r9r6r�r��s:������B�B�B�B�B�B�B�Br9r�c��eZdZd�ZdS)�	TestRoundc��ttttjd��tjd��tjd��tjd��f����}d}t||��dS)Ng333333$@g������$@r�g333333%@)r`r`r`rV)r��maprir rr)r5�rnd�rndrls   r6rzTestRound.test_round
sk���3�s�G�M�$�/�/��
�d�0C�0C�G�M�RV�DW�DW�X_�Xe�fj�Xk�Xk�l�m�m�n�n�����3�u�%�%�%�%�%r9N)rUrVrWrr]r9r6r�r�
s#������	&�	&�	&�	&�	&r9r�c	�&�tj}tj}tj}tj}tj}tj}t|dddd��d||��z��t|ddd|dz��d|dd	|zz��z||dz��d	zz��t|ddd|dz��d|dd	|zz��z��t|dd||dz��d|d
d	|zz��z|dd	|zdzz��z||d	z��d	zz��t|dd|dz|d
z��d|dd	|zz��z|dd	|zdzdzz��z||d
z��d	zzd||d
z��d	zzdz
z��t|dd|dz|dz��d|dd	|zz��z|dd|zdzdzz��z||dz��dzz��dS)Nrryr(r@r�r>r�g.@r�rprWrGr�g�?r�g@rNr�r.g�?g�A@)	r �sph_harmrSrrrr	r
r)�shrrrr	r
s      r6�
test_sph_harmr�
s���
�	�B�	��B�
�&�C�
�7�D�
�&�C�
�&�C��b�b��1�Q�q�k�k��t�t�B�x�x�<�����b�b��A�b��A��.�.����S�"�R�%�[�!�!�!��C��1��I�I��?������b�b��A�b��A��.�.����S�"�R�%�[�!�!�!�#�#�#��b�b��1�R��1��o�o����R��B��Z� � � ��3�q��B��r��z�?�?���3�r�"�u�:�:�r�>�*�+�+�+��b�b��1�R��U�2�b�5�1�1��4�4��B�r�E�
�#�#�#��3�q��B��r��"��}�����3�r�"�u�:�:�r�>��
�s�s�2�b�5�z�z�2�~��a��!�"�"�"�
�b�b��1�R��U�2�b�5�1�1��D�D��b��e��%�%�%��3�q��B��r��"��}����!�c�"�R�%�j�j�"�n�-�.�.�.�.�.r9c�J�tjtj��}tt	jdddd��j|��tt	jdgddd��j|��tt	jddgdd��j|��tt	jdddgd��j|��tt	jddddg��j|��tt	jdgdgdgdg��j|��dSr1)rS�dtype�
complex128rr r�)�dts r6�"test_sph_harm_ufunc_loop_selectionr�/
s��	��"�-�	 �	 �B���!�!�Q��1�-�-�3�R�8�8�8���!�1�#�q�!�Q�/�/�5�r�:�:�:���!�!�a�S�!�Q�/�/�5�r�:�:�:���!�!�Q���Q�/�/�5�r�:�:�:���!�!�Q��A�3�/�/�5�r�:�:�:���!�1�#��s�Q�C�!��5�5�;�R�@�@�@�@�@r9c�(�eZdZdd�Zd�Zd�Zd�ZdS)�
TestStruverDc�^�td|��}d|zd|zd|z|zdzzztj|dz��ztj||zdz��z}t|�����tt��jz|z}|���|fS)z?Compute Struve function & error estimate from its power series.rrCryr@rNre)	rr r�rcr�rrr�r�r�s       r6�_serieszTestStruve._series;
s����1�a�L�L��
�!�G�r�!�t�q��s�1�u�Q�w�'�'��
�a��e�(<�(<�<�W�]�1�Q�3�s�7�=S�=S�S���!�f�f�j�j�l�l�U�6�]�]�.�.��2���u�u�w�w��|�r9c��dD]J}dD]E}|�||��\}}ttj||��|d|���||ff�F�KdS)z-Check Struve function versus its power series)
i��ri�(\���rrCrrNr�r{�)rNr`rrPrJrr�N)r�rr r8r�s     r6�test_vs_serieszTestStruve.test_vs_seriesB
s��B�	W�	W�A�(�
W�
W��!�\�\�!�Q�/�/�
��s����q�!� 4� 4�e�!�#�N�N�N�QR�TU�PV�V�V�V�
W�	W�	Wr9c��ttjdd��dd���ttjdd��dd���ttjd	d
��dd���ttjd
d��dd���ttjdd��tjdd����ttjdd��tjdd����ttjdd��tjdd��
��ttjdd��tjdd��
��t	ttjdd������t	ttjdd������dS)Nr�rPg�;cv=�?rrGg��Q� �g�<j�?r�rr�g�����?rtg �i���g���zz��?r�i��)r?r|rVgffffff�rCg333333$�)rr r8rrrr4s r6�test_some_valueszTestStruve.test_some_valuesI
s|�����u�b�1�1�?��N�N�N�N����u�b�1�1�?��N�N�N�N����t�S�1�1�?��O�O�O�O����t�S�1�1�?��O�O�O�O��W�^�C��-�-���s�B�0G�0G�/G�H�H�H��W�^�C��-�-���s�B�0G�0G�/G�H�H�H��W�^�C��-�-���s�B�0G�0G�/G�H�H�H��W�^�C��-�-���s�B�0G�0G�/G�H�H�H���g�n�T�2�.�.�/�/�0�0�0���g�n�U�B�/�/�0�0�1�1�1�1�1r9c�J�ttjdd��tjdd����ttjdd��tjdd����ttjdd��tjdd����dS)zRegression test for #679rg����3@g�*4@r�g333333�N)rr r8r4s r6�test_regression_679zTestStruve.test_regression_679V
s������t�Y�7�7����i�9X�9X�Y�Y�Y����t�Y�7�7����i�9X�9X�Y�Y�Y����t�Y�7�7����i�9X�9X�Y�Y�Y�Y�Yr9N)rD)rUrVrWr�r�r�r�r]r9r6r�r�:
s]����������W�W�W�2�2�2�Z�Z�Z�Z�Zr9r�c�L�ttjdd��d��dS)Nr$rgdX	
��?)rr r�r]r9r6�test_chi2_smalldfr�]
s%����
�c�!�,�,�.?�@�@�@�@�@r9c�`�ttjdtj��d��dS)Nr1rz)rr r�rSrr]r9r6�test_ch2_infr�a
s&�����s�2�6�*�*�C�0�0�0�0�0r9c�L�ttjdd��d��dS)Nr$r�yj_��?)rr r�r]r9r6�test_chi2c_smalldfr�e
s%�����s�1�-�-�/B�C�C�C�C�Cr9c�L�ttjdd��d��dS)Nr$r�r)rr r�r]r9r6�test_chi2_inv_smalldfr�i
s%�����s�+>�?�?��C�C�C�C�Cr9c	�n�d}tdtjdtjd����zd|���d}d}d}ttjdgd	gggd
���d||g|d	|gg|���d}ttjdd��||���ttjdd��||���ttjdd
��||���ttjdd��d|���ttjdd��d|���ttjdd��d|���ttjdd��d|���ttjdd��d|���ttjdd��d|���ttjdd��d|���tjd��}ttj|j|j��d |���ttjd!|jz|j��d"|���ttj|jd	|jz��d#|���ttjd$d$��d$��ttjd%d$��d$��ttjdd&��tj	��ttjd$tj
��tj	��ttjtj
d$��tj	��ttjd$tj
��tj	��ttjtj
d$��tj	��ttjtj
tj
��tj	��ttjtj
tj
��tj	��ttjdtj	��tj	��ttjtj	d��tj	��ttjdtj
��tj
��ttjtj
d��tj
��ttjdtj
��tj
��ttjtj
d��tj
��dS)'NrFrNr@gDS�YC��?rGgQ�_�?g��?�@g>;,
i}@r)rNrr�g�=�O�?rCr(rrDgX��s��*@regV4o�Ag���O�1eAgꌠ9Y>)Fg�����Eg�^ 9^;g�d��-�?g��P.5�_gsTN��Neg��6�dgu�?j�/� g]�XC}K�dg��ѧ�R�g"!�x{�{ rzg�][#!Rrg�ٍS1��gN�_�r�cr`)rr �agmrSrrr�r�rr�r)rH�agm13�agm15�agm35�agm12�fis      r6�test_agm_simpler�m
s����D��A�g�k�!�R�W�Q�Z�Z�0�0�0�2F������

�E��E��E��G�K�!��q�c�
�I�I�I�6�6����&��Q��&�(�.2�4�4�4�4�
�E��G�K��1�%�%�u�4�8�8�8�8��G�K��1�%�%�u�4�8�8�8�8��G�K��B�'�'�%��d�;�;�;�;��G�K��A�&�&�(:��F�F�F�F��G�K��K�0�0�2D�������G�K��a�(�(�*?�d�K�K�K�K��G�K��q�)�)�+?�d�K�K�K�K��G�K��u�-�-�/E�������G�K��v�.�.�0G�������G�K���/�/�1H������	��#���B��G�K�����0�0�2I�������G�K��R�V��R�V�4�4�6L�������G�K����2�7��3�3�5L���������Q��"�"�A�&�&�&����R��#�#�Q�'�'�'����R��$�$�b�f�-�-�-����Q���'�'���0�0�0����R�V�Q�'�'���0�0�0����Q����(�(�"�&�1�1�1����b�f�W�a�(�(�"�&�1�1�1����R�V�b�f�W�-�-�r�v�6�6�6����b�f�W�b�f�-�-�r�v�6�6�6����Q���'�'���0�0�0����R�V�R�(�(�"�&�1�1�1����Q���'�'���0�0�0����R�V�Q�'�'���0�0�0����R�"�&��)�)�B�F�7�3�3�3����b�f�W�b�)�)�B�F�7�3�3�3�3�3r9c	�b�t��5}|�td��tt	jdd��t	jdd����tt	jddd��t	jddd����tt	jddd��t	jddd����tt	jddd��t	jddd����tt	j	dd��t	j	dd����tt	j
dd��t	j
dd����tt	jdd��t	jdd����tt	jdd��t	jdd����tt	j
dd��t	j
dd����ddd��dS#1swxYwYdS)Nr�rNrUg������?r@gffffff@)rr,r-rr �expnrzrwr}r�r
rFrr%)r/s r6�test_legacyr��
s
��	�	�	�
K���
�
�>�#R�S�S�S��W�\�!�S�)�)�7�<��S�+A�+A�B�B�B��W�^�A�q�#�.�.���s�C��0M�0M�N�N�N��W�]�1�a��-�-�w�}�S�#�s�/K�/K�L�L�L��W�^�A�q�#�.�.���s�C��0M�0M�N�N�N��W�]�1�c�*�*�G�M�#�s�,C�,C�D�D�D��W�Z��3�'�'���C��)=�)=�>�>�>��W�Z��3�'�'���C��)=�)=�>�>�>��W�_�Q��,�,�g�o�c�3�.G�.G�H�H�H��W�%�a��-�-�w�/?��S�/I�/I�J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K�
K�
Ks�HH$�$H(�+H(c�R�ttjtjdd��dS)NrNy.����B}T)r�r �SpecialFunctionErrorr�r]r9r6�test_error_raisingr��
s!���'�.��
�A�u�E�E�E�E�Er9c���d�}tjddtjfdtjfdgt���}tj|ddgf}tj|��|dd�df|dd�df��}ttj	||d	d	�
��tj|��|dd�df|dd�df��}ttj	||d	d	�
��dS)Nc���tjd���5|dkr"tj|��s|cddd��S|tj|��zcddd��S#1swxYwYdS�Nr�)�invalidr)rSr�rr
�r!rYs  r6�xfuncztest_xlogy.<locals>.xfunc�
s���
�[��
*�
*�
*�	#�	#��A�v�v�b�h�q�k�k�v��	#�	#�	#�	#�	#�	#�	#�	#�������{�		#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#��A"�A"�"A&�)A&�rrr�rzr��r�)rrW)rNrWrNrFr�)
rSrr�rrkrrqr,r �xlogy)r��z1�z2�w1�w2s     r6�
test_xlogyr��
s���#�#�#�
��U�Q���K�!�R�V��j�A��	O�	O�	O�B�	��r�G�W�%�%�	&�B�	���e�	�	�R����!��W�b����1��g�	.�	.�B��g�m�R��%�e�D�D�D�D�	���e�	�	�R����!��W�b����1��g�	.�	.�B��g�m�R��%�e�D�D�D�D�D�Dr9c��d�}tjddtjfdtjfddgt���}tj|��|dd�df|dd�df��}t
tj||dd�	��dS)
Nc���tjd���5|dkr"tj|��s|cddd��S|tj|��zcddd��S#1swxYwYdSr�)rSr�rr)r�s  r6r�ztest_xlog1py.<locals>.xfunc�
s���
�[��
*�
*�
*�	'�	'��A�v�v�b�h�q�k�k�v��	'�	'�	'�	'�	'�	'�	'�	'��2�8�A�;�;��		'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	'r�r�rr�)rNg���KH�9r�rNrFr�)	rSrr�rrkrqr,r �xlog1py)r�r�r�s   r6�test_xlog1pyr��
s���'�'�'�
��U�Q���K�!�R�V��j��!�(-�
/�
/�
/�B�	���e�	�	�R����!��W�b����1��g�	.�	.�B��g�o�r�2�E��F�F�F�F�F�Fr9c�d�d�}dddtjf}ddg}g}tj||��D]\}}|�||z���tj|t���}tj|tjg���|��}ttj||d	d	�
��dS)Nc�T�|dkr
tjStj||��Sr1)rSrr r�)r!s r6r�ztest_entr.<locals>.xfunc�
s)���q�5�5��F�7�N��M�!�Q�'�'�'�'r9rryrzrCrNr���otypesrFr�)rSrrr�rtrrkrqrr,r �entr)r�r��signsr��sgnrjrZrSs        r6�	test_entrr��
s���(�(�(�
��c�2�6�
"�F�
��G�E�
�C��#�E�6�2�2�����Q��
�
�3��7�����
���E�"�"�"�A�0���U�B�J�<�0�0�0��3�3�A��g�l�A�q�u�5�A�A�A�A�A�Ar9c��d�}d}ddg}g}tj||||��D]$\}}}}|�||z||zf���%tj|t
���}tj|tjg���|dd�df|dd�df��}	ttj
|	|dd�	��dS)
Nc��|dks|dks|dkr|dkrtjStj|��stj|��rtjS|dkr|Stj|||z��|z
|zSr1)rSr�isposinfr r�r�s  r6r�ztest_kl_div.<locals>.xfunc�
s~���q�5�5�A��E�E�a�1�f�f��a����6�M�
�[��^�^�	1�r�{�1�~�~�	1��6�M�
�!�V�V��H��=��A�a�C�(�(�1�,�q�0�0r9�rryrzrCrNr�r�rrFr�)rr�rtrSrrkrqrr,r �kl_div�
r�r�r�r��sgna�va�sgnb�vbrZrSs
          r6�test_kl_divr��
s���
1�
1�
1��F�
��G�E�
�C�'�/��v�u�f�M�M�'�'���b�$���
�
�D��G�T�"�W�%�&�&�&�&�
���E�"�"�"�A�0���U�B�J�<�0�0�0��1�1�1�Q�3���1�1�1�Q�3��@�@�A��g�n�a���U�C�C�C�C�C�Cr9c��d�}d}ddg}g}tj||||��D]$\}}}}|�||z||zf���%tj|t
���}tj|tjg���|dd�df|dd�df��}	ttj
|	|dd�	��dS)
Nc�~�|dkr|dkrtj|||z��S|dkr|dkrdStjSr1)r r�rSrr�s  r6r�ztest_rel_entr.<locals>.xfuncsF���q�5�5�Q��U�U��=��A�a�C�(�(�(�
�!�V�V��Q����1��6�Mr9r�rCrNr�r�rrFr�)rr�rtrSrrkrqrr,r �rel_entrr�s
          r6�
test_rel_entrr�s�������F�
��G�E�
�C�'�/��v�u�f�M�M�'�'���b�$���
�
�D��G�T�"�W�%�&�&�&�&�
���E�"�"�"�A�0���U�B�J�<�0�0�0��1�1�1�Q�3���1�1�1�Q�3��@�@�A��g�&��1�5�u�E�E�E�E�E�Er9c��ttjdd��tj��ttjdd��dtjd��z��ttjdd��d��d�}tj�dd��}tj	|tj
g�	��|dd�d
f|dd�df��}ttj||dd�
��dS)NrCrer@ryr	r�c��|dkrtjStj|��|krdtj|��zS|tj|��d|zz
zS)Nrry)rSrrc�square�r;r�s  r6r�ztest_huber.<locals>.xfuncsT���1�9�9��6�M�
�V�A�Y�Y��
�
����1���%�%��B�F�1�I�I��e��3�4�4r9r`r�rrNrFr�)rr �huberrSrrr�rY�randnrqrr,�r�rZrSs   r6�
test_huberr�s������r�3�'�'���0�0�0��G�M�!�S�)�)�3���3���+?�@�@�@��G�M�!�S�)�)�+>�?�?�?�5�5�5�	�	����A���A�0���U�B�J�<�0�0�0��1�1�1�Q�3���1�1�1�Q�3��@�@�A��g�m�Q���E�B�B�B�B�B�Br9c�`�d�}tjtj�dd�����ddgddggz��}tj|tjg���|dd�df|dd�df��}ttj	||dd�	��dS)
Nc�~�|dkrtjS|r|sdS|dztjd||zdzz��dz
zS)Nrr@rN)rSrrr�s  r6r�z test_pseudo_huber.<locals>.xfunc(sQ���1�9�9��6�M��	>��	>��1��!�8�r�w�q�A�e�G�a�<�'7�8�8�1�<�=�=r9r`r@rryr�rNrFr�)
rSrrYr��tolistrqrr,r �pseudo_huberr�s   r6�test_pseudo_huberr's���>�>�>�	�������Q�'�'�.�.�0�0�Q��H�s�A�h�3G�G�H�H�A�0���U�B�J�<�0�0�0��1�1�1�Q�3���1�1�1�Q�3��@�@�A��g�*�A�q�u�5�I�I�I�I�I�Ir9c�`�d}d}tj||��}d}t||d���dS)Nrzg�C��]r2<gs.-��De8rFrG)r r�r)r;r�rYr[s    r6�test_pseudo_huber_small_rr5s@���E�
�A���U�A�&�&�A�&�H��A�x�e�,�,�,�,�,�,r9c��tjtd���5tdd��ddd��n#1swxYwYtjtd���5t	dd��ddd��dS#1swxYwYdS)NzToo many predicted coefficientsrrK)rXrr-r)r*r]r9r6�test_runtime_warningrBs��	��n�>�
@�
@�
@�%�%���t�$�$�$�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�
��n�>�
@�
@�
@�&�&��$��%�%�%�&�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&�&�&s�9�=�=�A=�=B�B)srr�r3�numpyrSrrrrrrr	r
rrr
rrrrrrrrrXrr��
numpy.testingrrrrrrrrr�scipyr �scipy.special._ufuncs�_ufuncsr2�
scipy.specialr!r"r#r$r%r&r'r(r)r*�scipy.special._testutilsr+r,r-r!r/r_r�r�r�r�r�r�rrTra�objectr�r�r�r�rrr6rNrfr�r�r�r�r�rr
rCrJrNrTrkrrrxr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr]r9r6�<module>r
s�
��(��������
�
�
�
�����J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J��
�
�
�*�*�*�*�*�*�����������������������
������&�&�&�&�&�&�&�&�&�2�2�2�2�2�2�2�2�2�2�E�E�E�E�E�E�E�E�E�E�E�E�E�E�=�=�=�=�=�=�=�=�!�!�!�!�!�!�!�!�!�!�����t9�t9�t9�t9�t9�t9�t9�t9�nkG�kG�kG�kG�kG�kG�kG�kG�\.�.�.�.�.�.�.�.�
�
�
�
�
�
�
�
�
V>�V>�V>�V>�V>�V>�V>�V>�r9�9�9�9�9�9�9�9�'�'�'�'�'�'�'�'�*J$�J$�J$�J$�J$�J$�J$�J$�ZB+�B+�B+�B+�B+�B+�B+�B+�J:�:�:�:�:�:�:�:�:DT�DT�DT�DT�DT�DT�DT�DT�NG0�G0�G0�G0�G0�v�G0�G0�G0�T)=�)=�)=�)=�)=��)=�)=�)=�V_B�_B�_B�_B�_B�_B�_B�_B�D-�-�-�-�-�-�-�-�2/�/�/�/�/�/�/�/�@eF�eF�eF�eF�eF�eF�eF�eF�PA.�A.�A.�A.�A.�A.�A.�A.�H/,�/,�/,�/,�/,�/,�/,�/,�d /� /� /� /� /� /� /� /�FU6�U6�U6�U6�U6�U6�U6�U6�pn$�n$�n$�n$�n$�n$�n$�n$�b]�]�]�]�]�]�]�]�8
B�
B�
B�
B�
B�
B�
B�
B� .�.�.�.�.�.�.�.�	1�	1�	1�	1�	1�	1�	1�	1�AK�AK�AK�AK�AK�AK�AK�AK�H
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�=�=�=�=�=�=�=�=�+8�+8�+8�+8�+8�+8�+8�+8�\&�&�&�&�&�&�&�&�2>�>�>�>�>�>�>�>�7�7�7�7�7�7�7�7�?�?�?�?�?�?�?�?�B�B�B�B�B�B�B�B�,
&�
&�
&�
&�
&�
&�
&�
&�.�.�.�:A�A�A� Z� Z� Z� Z� Z� Z� Z� Z�FA�A�A�1�1�1�D�D�D�D�D�D�:4�:4�:4�zK�K�K��F�F���F�E�E�E�"G�G�G�
B�
B�
B� D�D�D�,F�F�F�$C�C�C�$J�J�J�
-�
-�
-�&�&�&�&�&r9

Youez - 2016 - github.com/yon3zu
LinuXploit