
    Pin                        d dl Z d dl mZ d dlZd dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmc mZ  G d d          Z G d	 d
          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z	 d.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 )/    N)raises)arraysqrt)assert_equalassert_allclose)	integrategammac                   &    e Zd Zd Zd Zd Zd ZdS )	TestChebyc                    t          j        d          }t          j        d          }t          j        d          5  t          j        d          }t          j        d          }t          j        d          }t          j        d          }d d d            n# 1 swxY w Y   t	          |j        dgd	d
           t	          |j        ddgd	d
           t	          |j        g dd	d
           t	          |j        g dd	d
           t	          |j        g dd	d
           t	          |j        g dd	d
           d S )Nr      ignoreall            7QE=atolrtol)r   r   )r   r   r   )r   r   r   r   )r   r   r   r   r   )orthchebycnperrstater   c)selfC0C1C2C3C4C5s          w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/special/tests/test_orthogonal.pytest_chebyczTestCheby.test_chebyc   sr   [^^[^^[X&&& 	  	 QBQBQBQB		  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	qca8888q!f7;;;;jjjwQ????mmm'BBBB...W1EEEE111wQGGGGGGs   ABB"Bc                 ,   t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          |j        dgdd           t          |j        ddgdd           t          |j        g d	dd           t          |j        g d
dd           t          |j        g ddd           t          |j        g ddd           d S )Nr   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   chebysr   r"   )r#   S0S1S2S3S4S5s          r*   test_chebyszTestCheby.test_chebys   s   [^^[^^[^^[^^[^^[^^qca8888q!f7;;;;jjjwQ????mmm'BBBB...W1EEEE111aHHHHHH    c                 ,   t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          |j        dgdd           t          |j        ddgdd           t          |j        g d	dd           t          |j        g d
dd           t          |j        g ddd           t          |j        g ddd           d S )Nr   r   r   r   r   r   r   r   )r   r   r-   )r   r   r   r   )   r   ir   r   )   r   r   r   r   )r   chebytr   r"   )r#   T0T1T2T3T4T5s          r*   test_chebytzTestCheby.test_chebyt-   s   [^^[^^[^^[^^[^^[^^qca8888q!f7;;;;jjjwQ????mmm'BBBB...W1EEEE333'JJJJJJr6   c                 ,   t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          |j        dgdd           t          |j        ddgdd           t          |j        g d	dd           t          |j        g d
dd           t          |j        g ddd           t          |j        g ddd           d S )Nr   r   r   r   r   r   r   r   )r   r   r-   )r8   r   r   r   )r9   r   r   r   )    r   ir      r   )r   chebyur   r"   )r#   U0U1U2U3U4U5s          r*   test_chebyuzTestCheby.test_chebyu;   s   [^^[^^[^^[^^[^^[^^qca8888q!f7;;;;jjjwQ????mmm'BBBB000wQGGGG333'JJJJJJr6   N)__name__
__module____qualname__r+   r5   rB   rN    r6   r*   r   r      s^        H H H I I IK K KK K K K Kr6   r   c                   f    e Zd Zd Zej                            dddg          d             Zd ZdS )TestGegenbauerc                    dt           j                                        z  dz
  }t          j        |dk              rd}t          j        d|          }t          j        d|          }t          j        d|          }t          j        d|          }t          j        d|          }t          j        d|          }t          |j        t          dg          d	d
           t          |j        t          d|z  dg          d	d
           t          |j        t          d|z  |dz   z  d| g          d	d
           t          |j        t          dt          j	        |d          z  dd|z  |dz   z  dg          dz  dd
           t          |j        t          dt          j	        |d          z  ddt          j	        |d          z  dd|z  |dz   z  g          dz  dd
           t          |j        t          dt          j	        |d          z  ddt          j	        |d          z  ddt          j	        |d          z  dg          dz  dd
           d S )Nr         ?r   皙ɿr   r   r   r   r   r   ig      @p~=rD   g      @r:      g      .@)
r    randomanyr   
gegenbauerr   r"   r   scpoch)r#   aCa0Ca1Ca2Ca3Ca4Ca5s           r*   test_gegenbauerzTestGegenbauer.test_gegenbauerL   sc   bi   3&6!q&>> 	Aoa""oa""oa""oa""oa""oa""uaSzza@@@@uac1XW1EEEEuac1q5k1qb%9::$1	. 	. 	. 	.ua1oqAq1uq%IJJ3N$1	. 	. 	. 	.ua1oq#bgamm:K&'1a!e&6  7  77: ;$1	. 	. 	. 	. 	ua1oq#bgamm:K&'BGAqMM)91&>  ?  ??C D$1	. 	. 	. 	. 	. 	.r6   r_   r   r   c                     t          j        d|          }t          |j        t	          j        dg                     d S )Nr         ?)r   r\   r   r"   r    asarray)r#   r_   Cn0s      r*   test_n_zero_gh8888z!TestGegenbauer.test_n_zero_gh8888d   s9     oa##SUBJt,,-----r6   c                    d}t          j        t          |          5  t          j        dt
          j                   d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        dt
          j                    d d d            d S # 1 swxY w Y   d S )Nz*`alpha` must be a finite number greater...)matchr   r         r   )pytestr   
ValueErrorr   r\   r    naninf)r#   messages     r*   test_valid_alphazTestGegenbauer.test_valid_alphaj   s   >]:W555 	' 	'OArv&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	']:W555 	% 	%OAt$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]:W555 	( 	(OAw'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s5    A

AA0BBB8!C&&C*-C*N)	rO   rP   rQ   rf   ro   markparametrizerk   rt   rR   r6   r*   rT   rT   J   sd        . . .0 [S1a&)). . *).
( ( ( ( (r6   rT   c                       e Zd Zd Zd ZdS )TestHermitec                 ,   t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          |j        dgdd           t          |j        ddgdd           t          |j        g d	dd           t          |j        g d
dd           t          |j        g ddd           t          |j        g ddd           d S )Nr   r   r   r   r   r   r   r   )r   r   r   )r8   r   rD   r   )r9   r   ir      Afcz=)rE   r   i`r   x   r   )r   hermiter   r"   )r#   H0H1H2H3H4H5s          r*   test_hermitezTestHermite.test_hermitev   s   \!__\!__\!__\!__\!__\!__qca8888q!f7;;;;jjjwQ????nnn7CCCC111aHHHH666W1MMMMMMr6   c                 r   t          j        dt          d          z  dg          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          } t          j        d          |          } t          j        d          |          t          d          z  }	 t          j        d          |          dz  }
 t          j        d          |          dt          d          z  z  } t          j        d          |          d	z  } t          j        d          |          d	t          d          z  z  }t          |j        |j        d
d           t          |j        |	j        d
d           t          |j        |
j        d
d           t          |j        |j        d
d           t          |j        |j        d
d           t          |j        |j        d
d           d S )Nrh   r   r   r   r   r   r          @      @r   r   )r    poly1dr   r   hermitenormr}   r   r"   )r#   psubr~   r   r   r   r   r   he0he1he2he3he4he5s                 r*   test_hermitenormzTestHermite.test_hermitenorm   s   y#d1gg+a))a  a  a  a  a  a  dl1ood##dl1ood##d1gg-dl1ood##c)dl1ood##qay1dl1ood##c)dl1ood##s477{3ce'::::ce'::::ce'::::ce'::::ce'::::ce'::::::r6   N)rO   rP   rQ   r   r   rR   r6   r*   rx   rx   u   s5        N N N; ; ; ; ;r6   rx   c                       e Zd Zd ZdS )TestShLegendrec                    t          j        ddg          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          } t          j        d          |          } t          j        d          |          }	 t          j        d          |          }
 t          j        d          |          } t          j        d          |          } t          j        d          |          }t          |j        |j        dd	           t          |j        |	j        dd	           t          |j        |
j        dd	           t          |j        |j        dd	           t          |j        |j        d
d	           t          |j        |j        d
d	           d S Nr   r-   r   r   r   r   r   r   r   r{   )r    r   r   sh_legendrelegendrer   r"   )r#   r   Ps0Ps1Ps2Ps3Ps4Ps5pse0pse1pse2pse3pse4pse5s                 r*   test_sh_legendrezTestShLegendre.test_sh_legendre   s   y!B  q!!q!!q!!q!!q!!q!!t}Q%%t}Q%%t}Q%%t}Q%%t}Q%%t}Q%%tvG!<<<<tvG!<<<<tvG!<<<<tvG!<<<<tvG!<<<<tvG!<<<<<<r6   N)rO   rP   rQ   r   rR   r6   r*   r   r      #        = = = = =r6   r   c                       e Zd Zd ZdS )TestShChebytc                    t          j        ddg          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          } t          j        d          |          } t          j        d          |          }	 t          j        d          |          }
 t          j        d          |          } t          j        d          |          } t          j        d          |          }t          |j        |j        dd	           t          |j        |	j        dd	           t          |j        |
j        dd	           t          |j        |j        dd	           t          |j        |j        d
d	           t          |j        |j        d
d	           d S r   )r    r   r   	sh_chebytr;   r   r"   )r#   r   Ts0Ts1Ts2Ts3Ts4Ts5tse0tse1tse2tse3tse4tse5s                 r*   test_sh_chebytzTestShChebyt.test_sh_chebyt      y!B  nQnQnQnQnQnQt{1~~d##t{1~~d##t{1~~d##t{1~~d##t{1~~d##t{1~~d##tvG!<<<<tvG!<<<<tvG!<<<<tvG!<<<<tvG!<<<<tvG!<<<<<<r6   N)rO   rP   rQ   r   rR   r6   r*   r   r      r   r6   r   c                       e Zd Zd ZdS )TestShChebyuc                    t          j        ddg          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          }t          j        d          } t          j        d          |          } t          j        d          |          }	 t          j        d          |          }
 t          j        d          |          } t          j        d          |          } t          j        d          |          }t          |j        |j        dd	           t          |j        |	j        dd	           t          |j        |
j        dd	           t          |j        |j        dd	           t          |j        |j        d
d	           t          |j        |j        dd	           d S )Nr   r-   r   r   r   r   r   r   r   r{   rX   )r    r   r   	sh_chebyurG   r   r"   )r#   r   Us0Us1Us2Us3Us4Us5use0use1use2use3use4use5s                 r*   test_sh_chebyuzTestShChebyu.test_sh_chebyu   r   r6   N)rO   rP   rQ   r   rR   r6   r*   r   r      r   r6   r   c                       e Zd Zd ZdS )TestShJacobic                    d }t          j        ddg          }dt           j                                        z  }|dz
  dt           j                                        z  z   }t          j        d||          }t          j        d||          }t          j        d||          }t          j        d||          }t          j        d||          }	t          j        d||          }
 t          j        d||z
  |dz
            |           |d|          z  } t          j        d||z
  |dz
            |           |d|          z  } t          j        d||z
  |dz
            |           |d|          z  } t          j        d||z
  |dz
            |           |d|          z  } t          j        d||z
  |dz
            |           |d|          z  } t          j        d||z
  |dz
            |           |d|          z  }t          |j        |j        d	d
           t          |j        |j        d	d
           t          |j        |j        d	d
           t          |j        |j        d	d
           t          |	j        |j        d	d
           t          |
j        |j        d	d
           d S )Nc                 x    t          | dz             t          | |z             z  t          d| z  |z             z  S )Nr   r   r	   )nps     r*   convz)TestShJacobi.test_sh_jacobi.<locals>.conv   s6    Q<<%A,,.q1uqy1A1AAAr6   r   r-   r   r   r   r   r   r   r   )r    r   rZ   r   	sh_jacobijacobir   r"   )r#   r   r   qr   G0G1G2G3G4G5ge0ge1ge2ge3ge4ge5s                    r*   test_sh_jacobizTestShJacobi.test_sh_jacobi   s   	B 	B 	By!B  	  """aC!BI$$&&&&^Aa""^Aa""^Aa""^Aa""^Aa""^Aa""$dk!AaC!$$T**TT!AYY6$dk!AaC!$$T**TT!AYY6$dk!AaC!$$T**TT!AYY6$dk!AaC!$$T**TT!AYY6$dk!AaC!$$T**TT!AYY6$dk!AaC!$$T**TT!AYY6ce'::::ce'::::ce'::::ce'::::ce'::::ce'::::::r6   N)rO   rP   rQ   r   rR   r6   r*   r   r      s#        ; ; ; ; ;r6   r   c                       e Zd Zd ZdS )TestCallc           	      P   g }t          d          D ]}|                    d d                    g d| d| d| d| d| d	| d
| d| d| d| d| d| d| d| d| d                                          D                        t	          j        d          5  |D ]N}t          |          }t           |d           t	          j        |j	                  d          dd|           O	 d d d            d S # 1 swxY w Y   d S )Nr   c                 6    g | ]}|                                 S rR   )strip).0xs     r*   
<listcomp>z&TestCall.test_call.<locals>.<listcomp>  s,       q   r6    z
                orth.jacobi(z),0.3,0.9)
                orth.sh_jacobi(z+,0.3,0.9)
                orth.genlaguerre(z$,0.3)
                orth.laguerre(z)
                orth.hermite(z#)
                orth.hermitenorm(z")
                orth.gegenbauer(z",0.3)
                orth.chebyt(z)
                orth.chebyu(z)
                orth.chebyc(z)
                orth.chebys(z!)
                orth.sh_chebyt(z!)
                orth.sh_chebyu(z )
                orth.legendre(z#)
                orth.sh_legendre(z)
                r   r   g)\(?gv!>r   )r   r   err_msg)
rangeextendjoinsplitr    r!   evalr   r   coef)r#   polyr   pstrr   s        r*   	test_callzTestCall.test_call  s   q 	 	AKK           !    #$     !	   
      #$    "#                    !"    !"     !    #$       UWW#      $ [X&&& 	C 	C C CJJ%*;")AF*;*;E*B*B%+!TC C C C CC	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   ;ADD"DN)rO   rP   rQ   r   rR   r6   r*   r   r     s(        C C C C Cr6   r   c                       e Zd Zd ZdS )TestGenlaguerrec                    t           t          j        ddd          d          d           t           t          j        ddd          d          d           t          t          j        ddd          t          j        dd	g                     t          t          j        ddd          t          j        dd
g                     d S )Nr   F)monicr   r   T       r-   r   r   )r   r   genlaguerrer    r   )r#   s    r*   test_regressionzTestGenlaguerre.test_regression   s    8T%a%888;;R@@@7T%a$777::C@@@T%a%888")RG:L:LMMMT%a$777Ar79K9KLLLLLr6   N)rO   rP   rQ   r   rR   r6   r*   r   r     s(        M M M M Mr6   r   V瞯<vIh%,=c                     | |d          \  }}	}
t          j        |t          j        d                    } ||d d t           j        f         |          }t          j        ||	z  |j                  }dt          j        |                                          z  }|d d t           j        f         |z  |z  }t          |t          j	        |          ||           t          |	
                                |
||           d t          j        fd||          }t          j         |          |	          }d|d         k     rdn
|d         dz  }t          |d	         ||
           d S )NTlong)dtyper   c                 *    | dz  d| dz  z  z
  | z   dz
  S )Nr   r   rR   )r   s    r*   fzverify_gauss_quad.<locals>.f7  s#    AvAF
"Q&**r6   c                 2     |            |           z  S NrR   )r   r   weight_funcs    r*   <lambda>z#verify_gauss_quad.<locals>.<lambda>9  s    AAaDDQ$7 r6   gư>
   r   r   )r    aranger   newaxisdotTr   diagonalr   eyesumr   quadvdot)	root_func	eval_funcr  r_   bNr   r   r   wmur   vvvvdresIresGr   s     `              @r*   verify_gauss_quadr  '  si    yD!!HAq"
	!28F++,,,A	!AAAbjL/1%%A	!QS		B	
RWR[[]]##	#B	AAArzM	R	"	$BBq		4... AEEGGRt,,,+ + +>77777A>>D711Q44D$q'>>44tAw|DDGT------r6   c            	         d } d }d }t           } | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d
            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd
            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd	d
            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd
            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd            |dd            |dd           dddd
            | | dd            |dd            |dd           ddd	d            | | dd            |dd            |dd           dddd            | | d!d"           |d!d"           |d!d"          dddd
            | | d!d"           |d!d"           |d!d"          ddd	d            | | d!d"           |d!d"           |d!d"          dddd            | | d#d$           |d#d$           |d#d$          ddd            | | d#d$           |d#d$           |d#d$          ddd	d            | | d#d$           |d#d$           |d#d$          dddd           t          j        d%d&d&          \  }}t          j        d%          \  }}t	          ||d'd'           t	          ||d'd'           t          j        d%d(d(          \  }}t          j        d%d)          \  }}	t	          ||d'd'           t	          ||	d'd'           t          j        ddd*d+          \  }
}t          j        ddd*d,          \  }}}t	          |
|d'd'           t	          ||d'd'           t          j         |dd*          d-d          \  }}t	          |||.           t          t          t          j        d/dd           t          t          t          j        d0dd           t          t          t          j        d*d1d           t          t          t          j        d*dd1           t          t          t          j        d*d1d1           d S )2Nc                       fdS )Nc                 2    t          j        | |          S r  )r]   roots_jacobir   r  r_   r  s     r*   r  z/test_roots_jacobi.<locals>.rf.<locals>.<lambda>@  s    R_Q1b99 r6   rR   r_   r  s   ``r*   rfztest_roots_jacobi.<locals>.rf?      999999r6   c                       fdS )Nc                 2    t          j        | |          S r  )r]   eval_jacobir   r   r_   r  s     r*   r  z/test_roots_jacobi.<locals>.ef.<locals>.<lambda>B  s    BN1aA66 r6   rR   r!  s   ``r*   efztest_roots_jacobi.<locals>.efA  s    666666r6   c                       fdS )Nc                 &    d| z
  z  d| z   z  z  S )Nr   rR   r   r_   r  s    r*   r  z/test_roots_jacobi.<locals>.wf.<locals>.<lambda>D  s    !a%AQ14 r6   rR   r!  s   ``r*   wfztest_roots_jacobi.<locals>.wfC  s    444444r6   rn               rh   r      -q=r   d   dy=rV   r   -=r   vIh%L=?r   vIh%<=g7QU==
ףp=2@L;@g^~z=̌G@rW   g     @   g     @绽|=g      @g     @@g     @@      @皙9Q@rF           +=r   g      @r   FTr-   r  r   ffffff
@r   )
r  r]   r  roots_legendrer   roots_gegenbauerr   r  assert_raisesrp   )r"  r(  r,  vgqxjwjxlwlxcwcr   r  yr  mmuImuI_errs                    r*   test_roots_jacobirP  >  s
   : : :7 7 75 5 5 CC4D%""T5//3AFFFC4D%""T5//3
   C4D%""T5//3%    C3rr#t}}bbdmmS"a@@@C3rr#t}}bbdmmS"bwOOOOC3rr#t}}bbdmmS"cNNNNC1c

BBq#JJ1c

CQUCCCCC1c

BBq#JJ1c

CReDDDDC1c

BBq#JJ1c

CSuEEEEC3

BBsAJJ3

CQ777C3

BBsAJJ3

CReDDDDC3

BBsAJJ3

CSuEEEEC5$E4""UD//3AFFFC5$E4""UD//3B   C5$E4""UD//3%    C444ROOOOC444R%PPPPC444R%    C2tbbTllBBr4LL#r15IIIIC2tbbTllBBr4LL#r2EJJJJC2tbbTllBBr4LL#r3UKKKKC2tbbTllBBr4LL#r3UKKKKC444R   C444R   C444R    C444R   C444R   C444R    C5$E4""UD//3A   C5$E4""UD//3B   C5$E4""UD//3C    C444RCCCC444R   C444R    _QS))FBq!!FBBE5)))BE5))) _QS))FB C((FBBE5)))BE5)))?1aE**DAqoaAt,,GAq!Aq%'''Aq%'''>""Qq''2q11LCAs))))*boq!Q777*bosAq999*boq"a888*boq!R888*boq"b99999r6   c            	      ^
   d } d }d }t           } | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d
            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd
            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd
            | | dd           |dd           |dd          ddd            | | dd           |dd           |dd          ddd	            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd
            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          dddd            | | dd           |dd           |dd          ddd	d            | | dd           |dd           |dd          dddd
           t          j        dddd          \  }}t          j        dddd           \  }}}t          ||d!d!           t          ||d!d!           t	          j         |dd          d"d          \  }	}
t          ||	|
#           t          t          t          j        d"dd           t          t          t          j        d$dd           t          t          t          j        ddd           t          t          t          j        ddd%           t          t          t          j        dd&d%           d S )'Nc                       fdS )Nc                 2    t          j        | |          S r  )r]   roots_sh_jacobir   s     r*   r  z2test_roots_sh_jacobi.<locals>.rf.<locals>.<lambda>  s    R/1a<< r6   rR   r!  s   ``r*   r"  z test_roots_sh_jacobi.<locals>.rf  s    <<<<<<r6   c                       fdS )Nc                 2    t          j        | |          S r  )r]   eval_sh_jacobir'  s     r*   r  z2test_roots_sh_jacobi.<locals>.ef.<locals>.<lambda>  s    B-aAq99 r6   rR   r!  s   ``r*   r(  z test_roots_sh_jacobi.<locals>.ef  r#  r6   c                       fdS )Nc                 ,    d| z
  z
  z  | dz
  z  z  S )Nrh   rR   r+  s    r*   r  z2test_roots_sh_jacobi.<locals>.wf.<locals>.<lambda>  s!    #'q1u-a#g> r6   rR   r!  s   ``r*   r,  z test_roots_sh_jacobi.<locals>.wf  s    >>>>>>r6   rn   g      ?r?  rh   r   r/  r0  r1  r2  r3  rV   r7  r   r   r4  r   r6  r9  r8  r:  皙?r<  r>  r=  g(#=r5  r   FTr@  r   r  rA  r-   r   )r  r]   rT  r   r   r  rD  rp   )r"  r(  r,  rE  r   r  rL  r  rM  rN  rO  s              r*   test_roots_sh_jacobir[    sZ   = = =: : :? ? ? CC444BBBBC444B
   C444B%    C3bbcllBBsCLL"b!<<<C3bbcllBBsCLL"b"5IIIIC3bbcllBBsCLL"b#EJJJJC1c

BBq#JJ1c

BA666C1c

BBq#JJ1c

BBWEEEEC1c

BBq#JJ1c

BCeDDDDC1c

BBq#JJ1c

BA666C1c

BBq#JJ1c

BBUCCCCC1c

BBq#JJ1c

BCeDDDDC4D%""T5//2r1EEEC4D%""T5//2r2FFFC4D%""T5//2r%    C4rr$}}bbsmmRQUKKKKC4rr$}}bbsmmRReLLLLC4rr$}}bbsmmRSuMMMMC444BPPPPC444BOOOOC444B%    aAu--DAq Aq$//GAq!Aq%'''Aq%'''>""Qq''1a00LCAs))))*b0!Q:::*b0#q!<<<*b0!Q:::*b0!Q;;;*b0!R<<<<<r6   c            	         t           j        } t           j        }t          j        d          j        }t          | ||t          j         t          j        d           t          | ||t          j         t          j        dd           t          | ||t          j         t          j        dd           t          j        dd          \  }}t          j        dd          \  }}}t          ||d	d	           t          ||d	d	           t          j        |t          j         t          j                  \  }}	t          |||	
           t          j        dd          \  }}t          j        dd          \  }}}t          ||d	d	           t          ||d	d	           t          t          |          |d	d	           t          t          t           j        d           t          t          t           j        d           d S )Nr   r/  r7  r1  r2  r0  FTr@  r     r   rA  )r]   roots_hermiteeval_hermiter   r}   r  r  r    rr   r   r   r  r  rD  rp   
rootfevalfweightfr   r  rL  r  rM  rN  rO  s
             r*   test_roots_hermiterd    s   EOEl1oo)GeUGbfWbfa@@@eUGbfWbfbuMMMMeUGbfWbfcNNNN Au%%DAqq$''GAq!Aq%'''Aq%'''>'BF7BF;;LCAs)))) C''DAqsD))GAq!Aq%'''Aq%'''CFFAue,,,*b.222*b.44444r6   c                     d dfd	}  | dd            | dd            | d	d            | d
d            | dd            | dd            | dd            | dd            | dd            | dd           d S )Nc                    t          j        | |j        f          }t           j        dz  t          j        d|dz  z            z  |dd d f<   | dk    rt          d          |z  |dd d f         z  |dd d f<   t          d|           D ]T}t          d|z            |z  ||dz
  d d f         z  t          |dz
  |z            ||dz
  d d f         z  z
  ||d d f<   U|S )N      пrn   r   r   r   r   rh   )r    zerossizepiexpr   r   )r   nodesHks       r*   hermite_recursionz1test_roots_hermite_asy.<locals>.hermite_recursion  s    Ha_%%"&eQh"7"77!AAA#q55#YY&1QQQ3/AacF1a[[ U Uc!eu,q1QQQx7$#qy//AaPQcRSRSRSeH:TT!AAA#r6   r   r@  c                    t          j        |           \  }} | dz   |          }t          |dd d f         t          j        |           ||           t          t          |          t          t          j                  ||           d S )Nr   r-   )r   _roots_hermite_asyr   r    rh  r  r   rj  )r  r   r   r   r  rm  ro  s         r*   testz$test_roots_hermite_asy.<locals>.test  s}    &q))1ac1%%"QQQ$!dD999ARUT488888r6      r0  r1     i,  i-  i  i  i  i  i  i  )r   r@  rR   )rr  ro  s    @r*   test_roots_hermite_asyru    s
     9 9 9 9 9 9 	D5D5D5D5D5D5D5DEDEDEr6   c            	         t           j        } t           j        }t          j        d          j        }t          | ||t          j         t          j        d           t          | ||t          j         t          j        dd           t          | ||t          j         t          j        dd           t          j        dd          \  }}t          j        dd          \  }}}t          ||d	d	           t          ||d	d	           t          j        |t          j         t          j                  \  }}	t          |||	
           t          t          t           j        d           t          t          t           j        d           d S )Nr   r/  r7  r1  r2  r0  FTr@  r  r   rA  )r]   roots_hermitenormeval_hermitenormr   r   r  r  r    rr   r   r   r  rD  rp   r`  s
             r*   test_roots_hermitenormry    sA    EEq!!-GeUGbfWbfa@@@eUGbfWbfbuMMMMeUGbfWbfcNNNN5))DAq"1d++GAq!Aq%'''Aq%'''>'BF7BF;;LCAs))))*b2A666*b2C88888r6   c            	      |   d } d }d }t           } | | d           |d           |d          ddd            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          ddd            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          ddd            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          ddd            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd	
            | | d           |d           |d          dddd
            | | d           |d           |d          dddd
            | | d          t          j         |d          ddd            | | d          t          j         |d          ddd            | | d          t          j         |d          dddd	
           t          j        ddd          \  }}t          j        ddd          \  }}}t	          ||dd           t	          ||dd           t          j         |d          dd          \  }	}
t	          ||	|
           t          t          t          j        dd           t          t          t          j        dd           t          t          t          j        d d!           d S )"Nc                       fdS )Nc                 0    t          j        | |          S r  )r]   rC  r   r  r_   s     r*   r  z6test_roots_gegenbauer.<locals>.rootf.<locals>.<lambda>$  s    R0Ar:: r6   rR   r_   s   `r*   ra  z$test_roots_gegenbauer.<locals>.rootf#  s    :::::r6   c                       fdS )Nc                 0    t          j        | |          S r  )r]   eval_gegenbauerr   r   r_   s     r*   r  z6test_roots_gegenbauer.<locals>.evalf.<locals>.<lambda>&  s    B.q!Q77 r6   rR   r~  s   `r*   rb  z$test_roots_gegenbauer.<locals>.evalf%  s    77777r6   c                       fdS )Nc                      d| dz  z
  dz
  z  S )Nr   r   rV   rR   r   r_   s    r*   r  z8test_roots_gegenbauer.<locals>.weightf.<locals>.<lambda>(  s    !a1f*!c'2 r6   rR   r~  s   `r*   rc  z&test_roots_gegenbauer.<locals>.weightf'  s    22222r6   rg  r.  rh   r   r/  r0  r1  r2  r3  皙?r7  r   r  2      g     Pe@g-A=   g     @r<  r   r   FTr@  r-   r  rA  r   r-  )	r  r]   eval_chebytrC  r   r   r  rD  rp   ra  rb  rc  rE  r   r  rL  r  rM  rN  rO  s              r*   test_roots_gegenbauerr  "  sW   ; ; ;8 8 83 3 3 CCeeeEllGGENNCQ???CeeeEllGGENNCReLLLLCeeeEllGGENNCSuMMMMCc

EE#JJc2q999Cc

EE#JJc2rFFFFCc

EE#JJc2sGGGGCa%%((GGAJJR333Ca%%((GGAJJR%@@@@Ca%%((GGAJJR5AAAACb		5599ggbkk3A666Cb		5599ggbkk3BUCCCCCb		5599ggbkk3CeDDDDCb		5599ggbkk3AEBBBBCb		5599ggbkk3BUCCCCCb		5599ggbkk3CeDDDD Cc

EE#JJc2quEEEECc

EE#JJc2rFFFFCc

EE#JJc2sGGGGCeeeEllGGENNCQXNNNNCeeeEllGGENNCReLLLLCeeeEllGGENNCSuMMMM Cc

EE#JJc2quEEEECc

EE#JJc2rFFFFCc

EE#JJc2sGGGGCeeeEllGGENNCQUKKKKCeeeEllGGENNCReLLLLCeeeEllGGENNCSuMMMM
 Ca".''!**c2q999Ca".''!**c2r:::Ca".''!**c2sGGGGq!U++DAq!!Q--GAq!Aq%'''Aq%'''>''!**b!44LCAs))))*b11a888*b13:::*b11d;;;;;r6   c            	         t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t          t          j        t          j        | dddd           t	          j        dd          \  }}t	          j        dd	          \  }}}t          ||d
d
           t          ||d
d
           t          j	        | dd          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r.  rh   r/  r2  r0  r1  FTr@  r-   r   r  r   rA  )r   r;   r  r  r]   roots_chebytr  r   r   r  rD  rp   rc  r   r  rL  r  rM  rN  rO  s           r*   test_roots_chebytr  b  $   k!nn(Gbor~wRKKKbor~wRLLLbor~wR " " " " ?1e$$DAqoa&&GAq!Aq%'''Aq%'''>'2q11LCAs))))*boq111*bos33333r6   c                      t          j        d          \  } }| d d         | dd          }}t          ||d d d                     t          | d         d           d S )N   r     r-   r   )r]   r  r   )r   r  posnegs       r*   test_chebyt_symmetryr  t  sd    ?2DAq"vqvCs44R4yj!!!2r6   c                     t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t	          j        dd          \  }}t	          j        dd          \  }}}t          ||dd           t          ||dd           t          j	        | d	d
          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r.  rh   r/  r2  FTr@  r-   r   r  r   rA  )r   rG   r  r  r]   roots_chebyueval_chebyur   r   r  rD  rp   r  s           r*   test_roots_chebyur  z     k!nn(Gbor~wRKKKbor~wRLLLbor~wRMMM?1e$$DAqoa&&GAq!Aq%'''Aq%'''>'2q11LCAs))))*boq111*bos33333r6   c            	         t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t          t          j        t          j        | dddd           t	          j        dd          \  }}t	          j        dd	          \  }}}t          ||d
d
           t          ||d
d
           t          j	        | dd          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r   r   r/  r2  r0  r1  FTr@  r   r   r  r   rA  )r   r   r  r  r]   roots_chebyceval_chebycr   r   r  rD  rp   r  s           r*   test_roots_chebycr    r  r6   c                     t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t	          j        dd          \  }}t	          j        dd          \  }}}t          ||dd           t          ||dd           t          j	        | d	d
          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r   r   r/  r2  FTr@  r   r   r  r   rA  )r   r.   r  r  r]   roots_chebyseval_chebysr   r   r  rD  rp   r  s           r*   test_roots_chebysr    r  r6   c            	         t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t          t          j        t          j        | dddd           t	          j        dd          \  }}t	          j        dd	          \  }}}t          ||d
d
           t          ||d
d
           t          j	        | dd          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S Nr   r?  rh   r/  r2  r7  r1  FTr@  r   r   r  rA  )r   r   r  r  r]   roots_sh_chebyteval_sh_chebytr   r   r  rD  rp   r  s           r*   test_roots_sh_chebytr    0   nQ+Gb("*;Wb"aPPPb("*;Wb"bQQQb("*;Wb"' ' ' ' a''DAq D))GAq!Aq%'''Aq%'''>'1a00LCAs))))*b0!444*b0#66666r6   c            	         t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | ddd           t          t          j        t          j        | dddd           t	          j        dd          \  }}t	          j        dd	          \  }}}t          ||d
d
           t          ||d
d
           t          j	        | dd          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S r  )r   r   r  r  r]   roots_sh_chebyueval_sh_chebyur   r   r  rD  rp   r  s           r*   test_roots_sh_chebyur    r  r6   c            	         t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | dddd           t          t          j        t          j        | dddd           t	          j        dd	          \  }}t	          j        dd
          \  }}}t          ||dd           t          ||dd           t          j	        | dd          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r.  rh   r/  r7  r1  r2  r0  FTr@  r-   r   r  r   rA  )r   r   r  r  r]   rB  eval_legendrer   r   r  rD  rp   r  s           r*   test_roots_legendrer    s>   mA*Gb')97CQOOOb')97Cu& & & &b')97C' ' ' ' Q&&DAq4((GAq!Aq%'''Aq%'''>'2q11LCAs))))*b/333*b/55555r6   c            	         t          j        d          j        } t          t          j        t          j        | ddd           t          t          j        t          j        | dddd           t          t          j        t          j        | dddd           t	          j        dd	          \  }}t	          j        dd
          \  }}}t          ||dd           t          ||dd           t          j	        | dd          \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r?  rh   r/  r7  r1  r2  r0  FTr@  r   r   r  rA  )r   r   r  r  r]   roots_sh_legendreeval_sh_legendrer   r   r  rD  rp   r  s           r*   test_roots_sh_legendrer    s@   q!!-Gb*B,?"bRSTTTb*B,?"bu& & & &b*B,?"b' ' ' ' 5))DAq"1d++GAq!Aq%'''Aq%'''>'1a00LCAs))))*b2A666*b2C88888r6   c            	          t          j        d          j        } t          t          j        t          j        | dt          j        d           t          t          j        t          j        | dt          j        dd           t          t          j        t          j        | dt          j        dd           t	          j        dd          \  }}t	          j        dd	          \  }}}t          ||d
d
           t          ||d
d
           t          j        | dt          j                  \  }}t          |||           t          t          t          j        d           t          t          t          j        d           d S )Nr   r?  r/  r7  r1  r2  r0  FTr@  r   r  rA  )r   laguerrer  r  r]   roots_laguerreeval_laguerrer    rr   r   r   r  rD  rp   r  s           r*   test_roots_laguerrer    sG   mA*Gb')97BPQRRRb')97Bu& & & &b')97B' ' ' ' Q&&DAq4((GAq!Aq%'''Aq%'''>'1bf55LCAs))))*b/333*b/55555r6   c            
      v   d } d }d }t           } | | d           |d           |d          dt          j        d            | | d           |d           |d          dt          j        dd	            | | d           |d           |d          dt          j        d
d	            | | d           |d           |d          dt          j        d            | | d           |d           |d          dt          j        dd	            | | d           |d           |d          dt          j        d
d	            | | d           |d           |d          dt          j        d            | | d           |d           |d          dt          j        dd	            | | d           |d           |d          dt          j        d
d	            | | d           |d           |d          dt          j        d            | | d           |d           |d          dt          j        dd	            | | d           |d           |d          dt          j        d
d	            | | d           |d           |d          dt          j        d            | | d           |d           |d          dt          j        dd	            | | d           |d           |d          dt          j        d
dd           t          j        ddd          \  }}t          j        ddd          \  }}}t          ||dd           t          ||dd           t          j         |d          dt          j                  \  }	}
t          ||	|
           t          t          t          j        dd           t          t          t          j        dd           t          t          t          j        dd           d S )Nc                       fdS )Nc                 0    t          j        | |          S r  )r]   roots_genlaguerrer}  s     r*   r  z7test_roots_genlaguerre.<locals>.rootf.<locals>.<lambda>  s    R1!Q;; r6   rR   r~  s   `r*   ra  z%test_roots_genlaguerre.<locals>.rootf  s    ;;;;;r6   c                       fdS )Nc                 0    t          j        | |          S r  )r]   eval_genlaguerrer  s     r*   r  z7test_roots_genlaguerre.<locals>.evalf.<locals>.<lambda>  s    B/1a88 r6   rR   r~  s   `r*   rb  z%test_roots_genlaguerre.<locals>.evalf  s    88888r6   c                       fdS )Nc                 :    | z  t          j        |            z  S r  )r    rk  r  s    r*   r  z9test_roots_genlaguerre.<locals>.weightf.<locals>.<lambda>  s    a"&!**, r6   rR   r~  s   `r*   rc  z'test_roots_genlaguerre.<locals>.weightf  s    ,,,,,r6   rn   r?  r   r/  r7  r1  r2  r0  r  g+F=r   gN<=r  r  r@  r5  )r   r   r   FTr   r  r   rA  r   g)
r  r    rr   r]   r  r   r   r  rD  rp   r  s              r*   test_roots_genlaguerrer    sQ   < < <9 9 9- - - CCdUU4[[''$--RVQ???CdUU4[[''$--RVReLLLLCdUU4[[''$--RVSuMMMMCc

EE#JJb"&!<<<Cc

EE#JJb"&"5IIIICc

EE#JJb"&#GLLLLCa%%((GGAJJBFA666Ca%%((GGAJJBFBUCCCCCa%%((GGAJJBFChGGGGCb		5599ggbkk2rvq999Cb		5599ggbkk2rvrFFFFCb		5599ggbkk2rvsGGGGCb		5599ggbkk2rvq999Cb		5599ggbkk2rvrFFFFCb		5599ggbkk2rvsUSSSS1e,,DAq"1a..GAq!Aq%'''Aq%'''>''"++r26::LCAs))))*b2Aq999*b2C;;;*b2At<<<<<r6   c                  @     t          j        d          d           d S )NA   rZ  )r]   r;   rR   r6   r*   test_gh_6721r  5  s     BIbMM#r6   )r   r   )/ro   r   rD  numpyr    r   r   numpy.testingr   r   scipyr   scipy.specialspecialr]   r
   scipy.special._orthogonal_orthogonalr   r   rT   rx   r   r   r   r   r   r   r  rP  r[  rd  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  rR   r6   r*   <module>r     sh    * * * * * *             7 7 7 7 7 7 7 7                   ( ( ( ( ( ( ( ( (9K 9K 9K 9K 9K 9K 9K 9Kx(( (( (( (( (( (( (( ((V$; $; $; $; $; $; $; $;N= = = = = = = =0= = = = = = = =0= = = = = = = =0; ; ; ; ; ; ; ;<C C C C C C C C:M M M M M M M M (-. . . ..^: ^: ^:@5= 5= 5=n5 5 58  :9 9 9(>< >< ><@4 4 4$  4 4 4"4 4 4$4 4 4"7 7 7$7 7 7$6 6 6&9 9 9&6 6 6&'= '= '=T    r6   