Ë
    7Š·j/K  ã            
       óÆ  — d Z ddlmZ ddlZddlmc mZ ddl	m
Z
 ddlmZmZmZmZ  ej                   dg«      Z ej                   ddg«      Z ej                   g d¢«      Z ej                   g d	¢«      Z ej                   g d
¢«      Z ej                   g d¢«      Z ej                   g d¢«      Z ej                   g d¢«      Z ej                   g d¢«      Z ej                   g d¢«      Zeeeeeeeeeeg
Z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$ G d!„ d"«      Z% G d#„ d$«      Z&y)%zTests for hermite module.

é    )ÚreduceN)Úpolyval)Úassert_Úassert_almost_equalÚassert_equalÚassert_raisesé   é   )éþÿÿÿr   é   )r   iôÿÿÿr   é   )é   r   iÐÿÿÿr   é   )r   éx   r   i`ÿÿÿr   é    )iˆÿÿÿr   iÐ  r   i þÿÿr   é@   )r   ipùÿÿr   i   r   iÀúÿÿr   é€   )	i�  r   i€Ëÿÿr   i€4  r   i òÿÿr   é   )
r   i v  r   i Åþÿr   i ½  r   i Üÿÿr   i   c                 ó0   — t        j                  | d¬«      S )Ng�íµ ÷Æ°>)Útol)ÚhermÚhermtrim©Úxs    úY/root/workspace/.venv/lib/python3.12/site-packages/numpy/polynomial/tests/test_hermite.pyÚtrimr      s   € Ü�=‰=˜ Ô%Ð%ó    c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestConstantsc                 ó<   — t        t        j                  ddg«       y )Néÿÿÿÿr	   )r   r   Ú
hermdomain©Úselfs    r   Útest_hermdomainzTestConstants.test_hermdomain   s   € Ü”T—_‘_ r¨1 gÕ.r   c                 ó:   — t        t        j                  dg«       y )Nr   )r   r   Úhermzeror#   s    r   Útest_hermzerozTestConstants.test_hermzero"   s   € Ü”T—]‘] Q CÕ(r   c                 ó:   — t        t        j                  dg«       y ©Nr	   )r   r   Úhermoner#   s    r   Útest_hermonezTestConstants.test_hermone%   s   € Ü”T—\‘\ A 3Õ'r   c                 ó<   — t        t        j                  ddg«       y )Nr   ç      à?)r   r   Úhermxr#   s    r   Ú
test_hermxzTestConstants.test_hermx(   s   € Ü”T—Z‘Z ! R Õ)r   N)Ú__name__Ú
__module__Ú__qualname__r%   r(   r,   r0   © r   r   r   r      s   „ ò/ò)ò(ó*r   r   c                   óX   — e Zd Z ej                  ddd«      Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestArithmeticéýÿÿÿé   éd   c                 óX  — t        d«      D ]œ  }t        d«      D ]Œ  }d|› d|› �}t        j                  t        ||«      dz   «      }||xx   dz  cc<   ||xx   dz  cc<   t	        j
                  dg|z  dgz   dg|z  dgz   «      }t        t        |«      t        |«      |¬«       ŒŽ Œž y ©Né   úAt i=ú, j=r	   r   ©Úerr_msg)ÚrangeÚnpÚzerosÚmaxr   Úhermaddr   r   ©r$   ÚiÚjÚmsgÚtgtÚress         r   Útest_hermaddzTestArithmetic.test_hermadd/   ó¬   € Ü�q“ò 	@ˆAÜ˜1“Xò @�Ø˜a˜S  Q CÐ(�Ü—h‘hœs 1 a›y¨1™}Ó-�Ø�A“˜!‘“Ø�A“˜!‘“Ü—l‘l A 3¨¡7¨a¨S¡=°1°#¸±'¸Q¸C±-Ó@�ÜœT #›Y¬¨S«	¸3Ö?ñ@ñ	@r   c                 óX  — t        d«      D ]œ  }t        d«      D ]Œ  }d|› d|› �}t        j                  t        ||«      dz   «      }||xx   dz  cc<   ||xx   dz  cc<   t	        j
                  dg|z  dgz   dg|z  dgz   «      }t        t        |«      t        |«      |¬«       ŒŽ Œž y r;   )rA   rB   rC   rD   r   Úhermsubr   r   rF   s         r   Útest_hermsubzTestArithmetic.test_hermsub9   rM   r   c                 ó  — t        t        j                  dg«      dg«       t        t        j                  dg«      ddg«       t        dd«      D ]:  }dg|z  dgz   }dg|dz
  z  |ddgz   }t        t        j                  |«      |«       Œ< y )Nr   r	   r.   r<   )r   r   ÚhermmulxrA   )r$   rG   ÚserrJ   s       r   Útest_hermmulxzTestArithmetic.test_hermmulxC   s…   € Ü”T—]‘] A 3Ó'¨!¨Ô-Ü”T—]‘] A 3Ó'¨!¨R¨Ô1Ü�q˜!“ò 	2ˆAØ�#˜‘'˜Q˜C‘-ˆCØ�#˜˜Q™‘- 1 a¨ *Ñ,ˆCÜœŸ™ sÓ+¨SÕ1ñ	2r   c                 óÆ  — t        d«      D ]Ó  }dg|z  dgz   }t        j                  | j                  |«      }t        d«      D ]™  }d|› d|› �}dg|z  dgz   }t        j                  | j                  |«      }t        j                  ||«      }t        j                  | j                  |«      }	t        t        |«      ||z   dz   k(  |«       t        |	||z  |¬«       Œ› ŒÕ y )Nr<   r   r	   r=   r>   r?   )rA   r   Úhermvalr   Úhermmulr   Úlenr   )
r$   rG   Úpol1Úval1rH   rI   Úpol2Úval2Úpol3Úval3s
             r   Útest_hermmulzTestArithmetic.test_hermmulK   s×   € ä�q“ò 
	DˆAØ�3˜‘7˜a˜S‘=ˆDÜ—<‘< §¡¨Ó-ˆDÜ˜1“Xò D�Ø˜a˜S  Q CÐ(�Ø�s˜Q‘w ! ‘}�Ü—|‘| D§F¡F¨DÓ1�Ü—|‘| D¨$Ó/�Ü—|‘| D§F¡F¨DÓ1�Üœ˜D›	 Q¨¡U¨Q¡YÑ.°Ô4Ü# D¨$°©+¸sÖCñDñ
	Dr   c                 ón  — t        d«      D ]§  }t        d«      D ]—  }d|› d|› �}dg|z  dgz   }dg|z  dgz   }t        j                  ||«      }t        j                  ||«      \  }}t        j                  t        j                  ||«      |«      }	t        t        |	«      t        |«      |¬«       Œ™ Œ© y )Nr<   r=   r>   r   r	   r?   )rA   r   rE   ÚhermdivrW   r   r   )
r$   rG   rH   rI   ÚciÚcjrJ   ÚquoÚremrK   s
             r   Útest_hermdivzTestArithmetic.test_hermdivY   s³   € Ü�q“ò 	@ˆAÜ˜1“Xò @�Ø˜a˜S  Q CÐ(�Ø�S˜1‘W ˜s‘]�Ø�S˜1‘W ˜s‘]�Ü—l‘l 2 rÓ*�ÜŸ<™<¨¨RÓ0‘��SÜ—l‘l¤4§<¡<°°RÓ#8¸#Ó>�ÜœT #›Y¬¨S«	¸3Ö?ñ@ñ	@r   c           	      óV  — t        d«      D ]›  }t        d«      D ]‹  }d|› d|› �}t        j                  |dz   «      }t        t        j
                  |g|z  t        j                  dg«      «      }t	        j                  ||«      }t        t        |«      t        |«      |¬«       Œ� Œ� y )Nr<   r=   r>   r	   r?   )
rA   rB   Úaranger   r   rW   ÚarrayÚhermpowr   r   )r$   rG   rH   rI   ÚcrJ   rK   s          r   Útest_hermpowzTestArithmetic.test_hermpowd   s–   € Ü�q“ò 	@ˆAÜ˜1“Xò @�Ø˜a˜S  Q CÐ(�Ü—I‘I˜a !™eÓ$�ÜœTŸ\™\¨A¨3°©7´B·H±H¸a¸S³MÓB�Ü—l‘l 1 aÓ(�ÜœT #›Y¬¨S«	¸3Ö?ñ@ñ	@r   N)r1   r2   r3   rB   Úlinspacer   rL   rP   rT   r_   rf   rl   r4   r   r   r6   r6   ,   s9   „ Øˆ�‰�B˜˜3Ó€Aò@ò@ò2òDò	@ó@r   r6   c                   ó  — e Zd Z ej                  g d¢«      Z ej                  dee«      Z ej                  deee«      Zej                  j                  d«      dz  dz
  Z
 ee
g d¢«      Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestEvaluation)g      @ç      ð?g      è?úi,j->ijú
i,j,k->ijk©r8   r<   r
   r	   )rp   g       @g      @c                 ó²  — t        t        j                  g dg«      j                  d«       t	        j
                  dd«      }t        D �cg c]  }t        ||«      ‘Œ }}t        d«      D ]8  }d|› �}||   }t        j                  |dg|z  dgz   «      }t        |||¬«       Œ: t        d«      D ]   }dg|z  }t	        j                  |«      }t        t        j                  |dg«      j                  |«       t        t        j                  |ddg«      j                  |«       t        t        j                  |g d	¢«      j                  |«       Œ¢ y c c}w )
Nr	   r   r!   é
   r=   r?   r8   r
   )r	   r   r   )r   r   rV   ÚsizerB   rm   ÚHlistr   rA   r   rC   Úshape)	r$   r   rk   ÚyrG   rI   rJ   rK   Údimss	            r   Útest_hermvalzTestEvaluation.test_hermvalx   s$  € ä”T—\‘\ " q cÓ*×/Ñ/°Ô3ô �K‰K˜˜AÓˆÜ$)Ö*˜qŒW�Q˜�]Ð*ˆÐ*Ü�r“ò 	7ˆAØ˜!˜�+ˆCØ�A‘$ˆCÜ—,‘,˜q 1 #¨¡'¨Q¨C¡-Ó0ˆCÜ  S°#Ö6ð		7ô �q“ò 	AˆAØ�3˜‘7ˆDÜ—‘˜“ˆAÜœŸ™ a¨!¨Ó-×3Ñ3°TÔ:ÜœŸ™ a¨!¨Q¨Ó0×6Ñ6¸Ô=ÜœŸ™ aªÓ3×9Ñ9¸4Õ@ñ	Aùò +s   Á
Ec                 ó   — | j                   \  }}}| j                  \  }}}t        t        t        j
                  ||d d | j                  «       ||z  }t	        j
                  ||| j                  «      }t        ||«       t        j                  d«      }	t	        j
                  |	|	| j                  «      }t        |j                  dk(  «       y ©Nr
   ©r
   r8   )r   ry   r   Ú
ValueErrorr   Ú	hermval2dÚc2dr   rB   Úonesr   rx   ©
r$   Úx1Úx2Úx3Úy1Úy2Úy3rJ   rK   Úzs
             r   Útest_hermval2dzTestEvaluation.test_hermval2d�   s¡   € Ø—V‘V‰
ˆˆB�Ø—V‘V‰
ˆˆB�ô 	”j¤$§.¡.°"°b¸¸!°f¸d¿h¹hÔGð �2‰gˆÜ�n‰n˜R  T§X¡XÓ.ˆÜ˜C Ô%ô �G‰G�F‹OˆÜ�n‰n˜Q  4§8¡8Ó,ˆÜ�—	‘	˜VÑ#Õ$r   c           	      ó¬  — | j                   \  }}}| j                  \  }}}t        t        t        j
                  |||d d | j                  «       ||z  |z  }t	        j
                  |||| j                  «      }t        ||«       t        j                  d«      }	t	        j
                  |	|	|	| j                  «      }t        |j                  dk(  «       y r}   )r   ry   r   r   r   Ú	hermval3dÚc3dr   rB   r‚   r   rx   rƒ   s
             r   Útest_hermval3dzTestEvaluation.test_hermval3dž   s«   € Ø—V‘V‰
ˆˆB�Ø—V‘V‰
ˆˆB�ô 	”j¤$§.¡.°"°b¸"¸R¸a¸&À$Ç(Á(ÔKð �2‰g˜‰lˆÜ�n‰n˜R  R¨¯©Ó2ˆÜ˜C Ô%ô �G‰G�F‹OˆÜ�n‰n˜Q  1 d§h¡hÓ/ˆÜ�—	‘	˜VÑ#Õ$r   c           	      ó  — | j                   \  }}}| j                  \  }}}|||f}t        t        t        j
                  |||d d f| j                  «       ||z  |z  }t	        j
                  || j                  «      }	t        |	|«       t        j                  d«      }
t	        j
                  |
|
|
f| j                  «      }	t        |	j                  dk(  «       t        t	        j
                  |f| j                  «      |«       y r}   )r   ry   r   r   r   Ú	hermvalndrŽ   r   rB   r‚   r   rx   Úc1d)r$   r„   r…   r†   r‡   rˆ   r‰   ÚptsrJ   rK   rŠ   s              r   Útest_hermvalndzTestEvaluation.test_hermvalnd¯   sÔ   € Ø—V‘V‰
ˆˆB�Ø—V‘V‰
ˆˆB�Ø�2�rˆlˆô 	”j¤$§.¡.°2°r¸2¸b¸q¸6Ð2BÀDÇHÁHÔMð �2‰g˜‰lˆÜ�n‰n˜S $§(¡(Ó+ˆÜ˜C Ô%ô �G‰G�F‹OˆÜ�n‰n˜a  A˜Y¨¯©Ó1ˆÜ�—	‘	˜VÑ#Ô$ô 	œDŸN™N¨B¨5°$·(±(Ó;¸RÕ@r   c                 óh  — | j                   \  }}}| j                  \  }}}t        j                  d||«      }t	        j
                  ||| j                  «      }t        ||«       t        j                  d«      }	t	        j
                  |	|	| j                  «      }t        |j                  dk(  «       y )Nrq   r~   )r
   r8   r
   r8   )r   ry   rB   Úeinsumr   Ú
hermgrid2dr�   r   r‚   r   rx   rƒ   s
             r   Útest_hermgrid2dzTestEvaluation.test_hermgrid2dÄ   sŠ   € Ø—V‘V‰
ˆˆB�Ø—V‘V‰
ˆˆB�ô �i‰i˜	 2 rÓ*ˆÜ�o‰o˜b " d§h¡hÓ/ˆÜ˜C Ô%ô �G‰G�F‹OˆÜ�o‰o˜a  D§H¡HÓ-ˆÜ�—	‘	˜ZÑ'Õ(r   c                 ón  — | j                   \  }}}| j                  \  }}}t        j                  d|||«      }t	        j
                  |||| j                  «      }t        ||«       t        j                  d«      }	t	        j
                  |	|	|	| j                  «      }t        |j                  dk(  «       y )Nrr   r~   )r
   r8   r
   r8   r
   r8   )r   ry   rB   r–   r   Ú
hermgrid3drŽ   r   r‚   r   rx   rƒ   s
             r   Útest_hermgrid3dzTestEvaluation.test_hermgrid3dÒ   s�   € Ø—V‘V‰
ˆˆB�Ø—V‘V‰
ˆˆB�ô �i‰i˜ b¨"¨bÓ1ˆÜ�o‰o˜b " b¨$¯(©(Ó3ˆÜ˜C Ô%ô �G‰G�F‹OˆÜ�o‰o˜a  A t§x¡xÓ0ˆÜ�—	‘	˜ZÑ'Õ(r   N)r1   r2   r3   rB   ri   r’   r–   r�   rŽ   Úrandomr   r   ry   r{   r‹   r�   r”   r˜   r›   r4   r   r   ro   ro   n   sˆ   „ à
ˆ"�(‰(’>Ó
"€CØ
ˆ"�)‰)�I˜s CÓ
(€CØ
ˆ"�)‰)�L # s¨CÓ
0€Cð 	�	‰	×Ñ˜Ó  1Ñ$ qÑ(€AÙ�’<Ó €AòAò*%ò"%ò"Aò*)ó)r   ro   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestIntegralc                 ó2
  — t        t        t        j                  dgd«       t        t        t        j                  dgd«       t        t        t        j                  dgdddg«       t        t        t        j                  dgdg¬«       t        t        t        j                  dgdg¬«       t        t        t        j                  dgd¬«       t        dd	«      D ]6  }dg|dz
  z  dgz   }t        j                  dg||¬
«      }t        |ddg«       Œ8 t        d	«      D ]ƒ  }|dz   }dg|z  dgz   }|gdg|z  z   d|z  gz   }t        j                  |«      }t        j                  |d|g¬
«      }t        j                  |«      }t        t        |«      t        |«      «       Œ… t        d	«      D ]`  }|dz   }dg|z  dgz   }t        j                  |«      }t        j                  |d|gd¬«      }t        t        j                  d|«      |«       Œb t        d	«      D ]„  }|dz   }dg|z  dgz   }|gdg|z  z   d|z  gz   }t        j                  |«      }t        j                  |d|gd¬«      }t        j                  |«      }t        t        |«      t        |«      «       Œ† t        d	«      D ]~  }t        dd	«      D ]m  }	dg|z  dgz   }|d d  }t        |	«      D ]  }t        j                  |d¬«      }Œ t        j                  ||	¬«      }t        t        |«      t        |«      «       Œo Œ€ t        d	«      D ]“  }t        dd	«      D ]‚  }	dg|z  dgz   }|d d  }t        |	«      D ]  }t        j                  |d|g¬
«      }Œ t        j                  ||	t        t        |	«      «      ¬
«      }t        t        |«      t        |«      «       Œ„ Œ• t        d	«      D ]•  }t        dd	«      D ]„  }	dg|z  dgz   }|d d  }t        |	«      D ]  }t        j                  |d|gd¬«      }Œ t        j                  ||	t        t        |	«      «      d¬«      }t        t        |«      t        |«      «       Œ† Œ— t        d	«      D ]•  }t        dd	«      D ]„  }	dg|z  dgz   }|d d  }t        |	«      D ]  }t        j                  |d|gd¬«      }Œ t        j                  ||	t        t        |	«      «      d¬«      }t        t        |«      t        |«      «       Œ† Œ— y )Nr   r.   r!   r	   )Úlbnd)Úscl©Úaxisr
   r<   )ÚmÚk)r¤   r¥   r    )r¤   r¥   r¡   ©r¤   )r   Ú	TypeErrorr   Úhermintr   rA   r   Ú	poly2hermÚ	herm2polyr   rV   Úlist)
r$   rG   r¥   rK   r¡   ÚpolrJ   Úhermpolr¨   rH   s
             r   Útest_hermintzTestIntegral.test_hermintã   s¯  € ä”i¤§¡°¨s°BÔ7Ü”j¤$§,¡,°°°RÔ8Ü”j¤$§,¡,°°°Q¸¸A¸Ô?Ü”j¤$§,¡,°°¸1¸#Õ>Ü”j¤$§,¡,°°¸!¸Õ=Ü”i¤§¡°¨s¸Õ<ô �q˜!“ò 	.ˆAØ��q˜1‘u‘  Ñ#ˆAÜ—,‘, ˜s a¨1Ô-ˆCÜ  a¨ WÕ-ð	.ô �q“ò 	6ˆAØ�a‘%ˆCØ�#˜‘'˜Q˜C‘-ˆCØ�#˜˜˜a™‘- 1 s¡7 )Ñ+ˆCÜ—n‘n SÓ)ˆGÜ—l‘l 7¨a°A°3Ô7ˆGÜ—.‘. Ó)ˆCÜ¤ S£	¬4°«9Õ5ð	6ô �q“ò 	>ˆAØ�a‘%ˆCØ�#˜‘'˜Q˜C‘-ˆCÜ—n‘n SÓ)ˆGÜ—l‘l 7¨a°A°3¸RÔ@ˆGÜ¤§¡¨R°Ó 9¸1Õ=ð	>ô �q“ò 	6ˆAØ�a‘%ˆCØ�#˜‘'˜Q˜C‘-ˆCØ�#˜˜˜a™‘- 1 s¡7 )Ñ+ˆCÜ—n‘n SÓ)ˆGÜ—l‘l 7¨a°A°3¸AÔ>ˆGÜ—.‘. Ó)ˆCÜ¤ S£	¬4°«9Õ5ð	6ô �q“ò 	:ˆAÜ˜1˜a“[ò :�Ø�c˜A‘g  ‘m�Ø™!�f�Ü˜q›ò 1�AÜŸ,™, s¨aÔ0‘Cð1ä—l‘l 3¨!Ô,�Ü#¤D¨£I¬t°C«yÕ9ñ:ð	:ô �q“ò 	:ˆAÜ˜1˜a“[ò :�Ø�c˜A‘g  ‘m�Ø™!�f�Ü˜q›ò 8�AÜŸ,™, s¨a°A°3Ô7‘Cð8ä—l‘l 3¨!¬t´E¸!³H«~Ô>�Ü#¤D¨£I¬t°C«yÕ9ñ:ð	:ô �q“ò 	:ˆAÜ˜1˜a“[ò :�Ø�c˜A‘g  ‘m�Ø™!�f�Ü˜q›ò A�AÜŸ,™, s¨a°A°3¸RÔ@‘CðAä—l‘l 3¨!¬t´E¸!³H«~ÀBÔG�Ü#¤D¨£I¬t°C«yÕ9ñ:ð	:ô �q“ò 	:ˆAÜ˜1˜a“[ò :�Ø�c˜A‘g  ‘m�Ø™!�f�Ü˜q›ò ?�AÜŸ,™, s¨a°A°3¸AÔ>‘Cð?ä—l‘l 3¨!¬t´E¸!³H«~À1ÔE�Ü#¤D¨£I¬t°C«yÕ9ñ:ñ	:r   c           	      ó¤  — t         j                  j                  d«      }t        j                  |j                  D �cg c]  }t	        j
                  |«      ‘Œ c}«      j                  }t	        j
                  |d¬«      }t        ||«       t        j                  |D �cg c]  }t	        j
                  |«      ‘Œ c}«      }t	        j
                  |d¬«      }t        ||«       t        j                  |D �cg c]  }t	        j
                  |d¬«      ‘Œ c}«      }t	        j
                  |dd¬«      }t        ||«       y c c}w c c}w c c}w )N©r8   r   r   r¢   r	   r8   )r¥   )r¥   r£   )rB   rœ   ÚvstackÚTr   r¨   r   ©r$   r�   rk   rJ   rK   s        r   Útest_hermint_axiszTestIntegral.test_hermint_axis6  så   € ä�i‰i×Ñ˜vÓ&ˆä�i‰i°#·%±%Ö8¨QœŸ™ a�Ò8Ó9×;Ñ;ˆÜ�l‰l˜3 QÔ'ˆÜ˜C Ô%ä�i‰i°#Ö6¨QœŸ™ a�Ò6Ó7ˆÜ�l‰l˜3 QÔ'ˆÜ˜C Ô%ä�i‰i°sÖ;°!œŸ™ a¨1Ö-Ò;Ó<ˆÜ�l‰l˜3 !¨!Ô,ˆÜ˜C Õ%ùò 9ùò 7ùò <s   ½EÂ EÃ9EN)r1   r2   r3   r®   r´   r4   r   r   rž   rž   á   s   „ òQ:óf&r   rž   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestDerivativec           	      óþ  — t        t        t        j                  dgd«       t        t        t        j                  dgd«       t        d«      D ]A  }dg|z  dgz   }t        j                  |d¬«      }t        t        |«      t        |«      «       ŒC t        d«      D ]g  }t        dd«      D ]V  }dg|z  dgz   }t        j                  t        j                  ||¬«      |¬«      }t        t        |«      t        |«      «       ŒX Œi t        d«      D ]i  }t        dd«      D ]X  }dg|z  dgz   }t        j                  t        j                  ||d¬«      |d¬«      }t        t        |«      t        |«      «       ŒZ Œk y )	Nr   r.   r!   r<   r	   r¦   r
   )r¤   r¡   )
r   r§   r   Úhermderr   rA   r   r   r¨   r   )r$   rG   rJ   rK   rH   s        r   Útest_hermderzTestDerivative.test_hermderI  sF  € ä”i¤§¡°¨s°BÔ7Ü”j¤$§,¡,°°°RÔ8ô �q“ò 	/ˆAØ�#˜‘'˜Q˜C‘-ˆCÜ—,‘,˜s aÔ(ˆCÜœ˜c›¤D¨£IÕ.ð	/ô �q“ò 	:ˆAÜ˜1˜a“[ò :�Ø�c˜A‘g  ‘m�Ü—l‘l¤4§<¡<°°qÔ#9¸QÔ?�Ü#¤D¨£I¬t°C«yÕ9ñ:ð	:ô �q“ò 	:ˆAÜ˜1˜a“[ò :�Ø�c˜A‘g  ‘m�Ü—l‘l¤4§<¡<°°q¸aÔ#@ÀAÈ2ÔN�Ü#¤D¨£I¬t°C«yÕ9ñ:ñ	:r   c                 óâ  — t         j                  j                  d«      }t        j                  |j                  D �cg c]  }t	        j
                  |«      ‘Œ c}«      j                  }t	        j
                  |d¬«      }t        ||«       t        j                  |D �cg c]  }t	        j
                  |«      ‘Œ c}«      }t	        j
                  |d¬«      }t        ||«       y c c}w c c}w )Nr°   r   r¢   r	   )rB   rœ   r±   r²   r   r¸   r   r³   s        r   Útest_hermder_axisz TestDerivative.test_hermder_axisb  s    € ä�i‰i×Ñ˜vÓ&ˆä�i‰i°#·%±%Ö8¨QœŸ™ a�Ò8Ó9×;Ñ;ˆÜ�l‰l˜3 QÔ'ˆÜ˜C Ô%ä�i‰i°#Ö6¨QœŸ™ a�Ò6Ó7ˆÜ�l‰l˜3 QÔ'ˆÜ˜C Õ%ùò 9ùò 7s   ½C'Â C,N)r1   r2   r3   r¹   r»   r4   r   r   r¶   r¶   G  s   „ ò:ó2
&r   r¶   c                   ó`   — e Zd Zej                  j	                  d«      dz  dz
  Zd„ Zd„ Zd„ Zy)Ú
TestVanderrs   r
   r	   c                 ó  — t        j                  d«      }t        j                  |d«      }t	        |j
                  dk(  «       t        d«      D ]1  }dg|z  dgz   }t        |d|f   t        j                  ||«      «       Œ3 t        j                  ddgddgdd	gg«      }t        j                  |d«      }t	        |j
                  d
k(  «       t        d«      D ]1  }dg|z  dgz   }t        |d|f   t        j                  ||«      «       Œ3 y )Nr8   r°   r   r   r	   .r
   r<   é   )r8   r
   r   )
rB   rh   r   Ú
hermvanderr   rx   rA   r   rV   ri   )r$   r   ÚvrG   Úcoefs        r   Útest_hermvanderzTestVander.test_hermvanders  sú   € ä�I‰I�a‹LˆÜ�O‰O˜A˜qÓ!ˆÜ�—‘˜6Ñ!Ô"Ü�q“ò 	BˆAØ�3˜‘7˜a˜S‘=ˆDÜ  # q &¡	¬4¯<©<¸¸4Ó+@ÕAð	Bô
 �H‰H�q˜!�f˜q !˜f q¨! fÐ-Ó.ˆÜ�O‰O˜A˜qÓ!ˆÜ�—‘˜9Ñ$Ô%Ü�q“ò 	BˆAØ�3˜‘7˜a˜S‘=ˆDÜ  # q &¡	¬4¯<©<¸¸4Ó+@ÕAñ	Br   c                 ó€  — | j                   \  }}}t        j                  j                  d«      }t        j                  ||ddg«      }t        j
                  |||«      }t        j                  ||j                  «      }t        ||«       t        j                  |g|gddg«      }t        |j                  dk(  «       y )Nr~   r	   r
   )r	   r<   r¿   )r   rB   rœ   r   Úhermvander2dr€   ÚdotÚflatr   r   rx   ©r$   r„   r…   r†   rk   ÚvanrJ   rK   s           r   Útest_hermvander2dzTestVander.test_hermvander2d„  sœ   € à—V‘V‰
ˆˆB�Ü�I‰I×Ñ˜VÓ$ˆÜ×Ñ  B¨¨A¨Ó/ˆÜ�n‰n˜R  QÓ'ˆÜ�f‰f�S˜!Ÿ&™&Ó!ˆÜ˜C Ô%ô ×Ñ   r d¨Q°¨FÓ3ˆÜ�—	‘	˜YÑ&Õ'r   c                 óˆ  — | j                   \  }}}t        j                  j                  d«      }t        j                  |||g d¢«      }t        j
                  ||||«      }t        j                  ||j                  «      }t        ||«       t        j                  |g|g|gg d¢«      }t        |j                  dk(  «       y )N)r
   r8   r   )r	   r
   r8   )r	   r<   é   )r   rB   rœ   r   Úhermvander3dr�   rÆ   rÇ   r   r   rx   rÈ   s           r   Útest_hermvander3dzTestVander.test_hermvander3d‘  sœ   € à—V‘V‰
ˆˆB�Ü�I‰I×Ñ˜YÓ'ˆÜ×Ñ  B¨ªIÓ6ˆÜ�n‰n˜R  R¨Ó+ˆÜ�f‰f�S˜!Ÿ&™&Ó!ˆÜ˜C Ô%ô ×Ñ   r d¨R¨D²)Ó<ˆÜ�—	‘	˜ZÑ'Õ(r   N)	r1   r2   r3   rB   rœ   r   rÃ   rÊ   rÎ   r4   r   r   r½   r½   o  s0   „ à
�	‰	×Ñ˜Ó  1Ñ$ qÑ(€AòBò"(ó)r   r½   c                   ó   — e Zd Zd„ Zy)ÚTestFittingc           	      óV  — d„ }d„ }t        t        t        j                  dgdgd«       t        t        t        j                  dggdgd«       t        t        t        j                  g dgd«       t        t        t        j                  dgdgggd«       t        t        t        j                  ddgdgd«       t        t        t        j                  dgddgd«       t        t        t        j                  dgdgddgg¬«       t        t        t        j                  dgdgdddg¬«       t        t        t        j                  dgdgdg«       t        t        t        j                  dgdgg d¢«       t        t        t        j                  dgdgg «       t        j                  dd«      } ||«      }t        j                  ||d	«      }t        t        |«      d
«       t        t        j                  ||«      |«       t        j                  ||g d¢«      }t        t        |«      d
«       t        t        j                  ||«      |«       t        j                  ||d
«      }t        t        |«      d«       t        t        j                  ||«      |«       t        j                  ||g d¢«      }t        t        |«      d«       t        t        j                  ||«      |«       t        j                  ||g d¢«      }t        t        |«      d«       t        t        j                  ||«      |«       t        j                  |t        j                  ||g«      j                  d	«      }t        |t        j                  ||g«      j                  «       t        j                  |t        j                  ||g«      j                  g d¢«      }t        |t        j                  ||g«      j                  «       t        j                  |«      }|j                  «       }	d|dd d…<   d|dd d…<   t        j                  ||	d	|¬«      }
t        |
|«       t        j                  ||	g d¢|¬«      }
t        |
|«       t        j                  |t        j                  |	|	g«      j                  d	|¬«      }t        |t        j                  ||g«      j                  «       t        j                  |t        j                  |	|	g«      j                  g d¢|¬«      }t        |t        j                  ||g«      j                  «       g d¢}t        t        j                  ||d«      ddg«       t        t        j                  ||ddg«      ddg«       t        j                  dd«      } ||«      }t        j                  ||d
«      }t        t        j                  ||«      |«       t        j                  ||g d¢«      }t        t        j                  ||«      |«       t        ||«       y )Nc                 ó   — | | dz
  z  | dz
  z  S )Nr	   r
   r4   r   s    r   Úfz#TestFitting.test_hermfit.<locals>.f¢  s   € Ø˜˜A™‘; ! a¡%Ñ(Ð(r   c                 ó   — | dz  | dz  z   dz   S )Nr   r
   r	   r4   r   s    r   Úf2z$TestFitting.test_hermfit.<locals>.f2¥  s   € Ø�a‘4˜!˜Q™$‘; ‘?Ð"r   r	   r!   r   r
   )Úw)r
   r!   r¿   r8   r   )r   r	   r
   r8   r<   )r   r	   r
   r8   r   )r
   r8   r   r	   r   )r	   y              ð?r!   y       €      ð¿r.   )r   r
   r   )r   r   r   Úhermfitr§   rB   rm   r   rX   r   rV   ri   r²   Ú
zeros_likeÚcopy)r$   rÓ   rÕ   r   ry   Úcoef3Úcoef4Úcoef2drÖ   ÚywÚwcoef3Úwcoef2dÚcoef1Úcoef2s                 r   Útest_hermfitzTestFitting.test_hermfit¡  s�  € ò	)ò	#ô 	”j¤$§,¡,°°°a°S¸"Ô=Ü”i¤§¡°°¨u°q°c¸1Ô=Ü”i¤§¡¨r°A°3¸Ô:Ü”i¤§¡°¨s°q°c°U°G¸QÔ?Ü”i¤§¡°°1¨v¸°s¸AÔ>Ü”i¤§¡°¨s°Q¸°F¸AÔ>Ü”i¤§¡°¨s°Q°C¸À¸s¸eÕDÜ”i¤§¡°¨s°Q°C¸¸qÀ!¸fÕEÜ”j¤$§,¡,°°°a°S¸2¸%Ô@Ü”j¤$§,¡,°°°a°Sº*ÔEÜ”i¤§¡°¨s°Q°C¸Ô<ô �K‰K˜˜1ÓˆÙˆa‹Dˆä—‘˜Q  1Ó%ˆÜ”S˜“Z Ô#ÜœDŸL™L¨¨EÓ2°AÔ6Ü—‘˜Q ¢<Ó0ˆÜ”S˜“Z Ô#ÜœDŸL™L¨¨EÓ2°AÔ6ä—‘˜Q  1Ó%ˆÜ”S˜“Z Ô#ÜœDŸL™L¨¨EÓ2°AÔ6Ü—‘˜Q ¢?Ó3ˆÜ”S˜“Z Ô#ÜœDŸL™L¨¨EÓ2°AÔ6ä—‘˜Q ¢?Ó3ˆÜ”S˜“Z Ô#ÜœDŸL™L¨¨EÓ2°AÔ6ä—‘˜a¤§¡¨1¨a¨&Ó!1×!3Ñ!3°QÓ7ˆÜ˜F¤B§H¡H¨e°U¨^Ó$<×$>Ñ$>Ô?Ü—‘˜a¤§¡¨1¨a¨&Ó!1×!3Ñ!3²\ÓBˆÜ˜F¤B§H¡H¨e°U¨^Ó$<×$>Ñ$>Ô?ä�M‰M˜!ÓˆØ�V‰V‹XˆØˆˆ!ˆ$ˆQˆ$‰Øˆˆ!ˆ$ˆQˆ$‰Ü—‘˜a  Q¨!Ô,ˆÜ˜F EÔ*Ü—‘˜a ¢\°QÔ7ˆÜ˜F EÔ*ä—,‘,˜q¤"§(¡(¨B°¨8Ó"4×"6Ñ"6¸¸QÔ?ˆÜ˜G¤R§X¡X¨u°e¨nÓ%=×%?Ñ%?Ô@Ü—,‘,˜q¤"§(¡(¨B°¨8Ó"4×"6Ñ"6ºÈÔJˆÜ˜G¤R§X¡X¨u°e¨nÓ%=×%?Ñ%?Ô@ò ˆÜœDŸL™L¨¨A¨qÓ1°A°r°7Ô;ÜœDŸL™L¨¨A°°1¨vÓ6¸¸B¸Ô@ä�K‰K˜˜AÓˆÙˆq‹EˆÜ—‘˜Q  1Ó%ˆÜœDŸL™L¨¨EÓ2°AÔ6Ü—‘˜Q ¢9Ó-ˆÜœDŸL™L¨¨EÓ2°AÔ6Ü˜E 5Õ)r   N)r1   r2   r3   râ   r4   r   r   rÐ   rÐ   Ÿ  s   „ óH*r   rÐ   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestCompanionc                 ó‚   — t        t        t        j                  g «       t        t        t        j                  dg«       y r*   )r   r   r   Úhermcompanionr#   s    r   Útest_raiseszTestCompanion.test_raisesî  s(   € Ü”j¤$×"4Ñ"4°bÔ9Ü”j¤$×"4Ñ"4°q°cÕ:r   c                 ó”   — t        dd«      D ]9  }dg|z  dgz   }t        t        j                  |«      j                  ||fk(  «       Œ; y )Nr	   r<   r   )rA   r   r   ræ   rx   )r$   rG   rÂ   s      r   Útest_dimensionszTestCompanion.test_dimensionsò  sJ   € Ü�q˜!“ò 	>ˆAØ�3˜‘7˜a˜S‘=ˆDÜ”D×&Ñ& tÓ,×2Ñ2°q¸!°fÑ<Õ=ñ	>r   c                 óP   — t        t        j                  ddg«      d   dk(  «       y )Nr	   r
   )r   r   g      Ð¿)r   r   ræ   r#   s    r   Útest_linear_rootzTestCompanion.test_linear_root÷  s#   € Ü”×"Ñ" A q 6Ó*¨4Ñ0°DÑ8Õ9r   N)r1   r2   r3   rç   ré   rë   r4   r   r   rä   rä   ì  s   „ ò;ò>ó
:r   rä   c                   ó   — e Zd Zd„ Zy)Ú	TestGaussc                 óÈ  — t        j                  d«      \  }}t        j                  |d«      }t        j                  |j
                  |z  |«      }dt        j                  |j                  «       «      z  }|d d …d f   |z  |z  }t        |t        j                  d«      «       t        j                  t        j                  «      }t        |j                  «       |«       y )Nr9   éc   r	   )r   Ú	hermgaussrÀ   rB   rÆ   r²   ÚsqrtÚdiagonalr   ÚeyeÚpiÚsum)r$   r   rÖ   rÁ   ÚvvÚvdrJ   s          r   Útest_100zTestGauss.test_100ý  s£   € Ü�~‰~˜cÓ"‰ˆˆ1ô
 �O‰O˜A˜rÓ"ˆÜ�V‰V�A—C‘C˜!‘G˜QÓˆØ”—‘˜Ÿ™›Ó'Ñ'ˆØ’�4�‰[˜2Ñ Ñ"ˆÜ˜B¤§¡ s£Ô,ô �g‰g”b—e‘e‹nˆÜ˜AŸE™E›G SÕ)r   N)r1   r2   r3   rø   r4   r   r   rí   rí   û  s   „ ó*r   rí   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestMiscc           	      óð  — t        j                  g «      }t        t        |«      dg«       t	        dd«      D ]¼  }t        j                  t        j                  t
        j                   dd|z  dz   «      dd d…   «      }t        j                  |«      }t        j                  ||«      }d}t        t        |«      |dz   k(  «       t        t        j                  |«      d   d«       t        ||«       Œ¾ y )Nr	   r<   r   r
   r!   )r   Úhermfromrootsr   r   rA   rB   Úcosrm   rô   rV   r   rX   rª   )r$   rK   rG   Úrootsr¬   rJ   s         r   Útest_hermfromrootszTestMisc.test_hermfromroots  sÇ   € Ü× Ñ  Ó$ˆÜœD ›I¨ sÔ+Ü�q˜!“ò 	*ˆAÜ—F‘Fœ2Ÿ;™;¬¯© v¨q°!°a±%¸!±)Ó<¸Q¸TÀ¸TÑBÓCˆEÜ×$Ñ$ UÓ+ˆCÜ—,‘,˜u cÓ*ˆCØˆCÜ”C˜“H  A¡Ñ%Ô&Ü¤§¡¨sÓ 3°BÑ 7¸Ô;Ü  SÕ)ñ	*r   c                 ód  — t        t        j                  dg«      g «       t        t        j                  ddg«      dg«       t        dd«      D ]_  }t	        j
                  dd|«      }t        j                  t        j                  |«      «      }t        t        |«      t        |«      «       Œa y )Nr	   g      à¿r
   r<   r!   )r   r   Ú	hermrootsrA   rB   rm   rü   r   )r$   rG   rJ   rK   s       r   Útest_hermrootszTestMisc.test_hermroots  s‚   € ÜœDŸN™N¨A¨3Ó/°Ô4ÜœDŸN™N¨A¨q¨6Ó2°S°EÔ:Ü�q˜!“ò 	6ˆAÜ—+‘+˜b ! QÓ'ˆCÜ—.‘.¤×!3Ñ!3°CÓ!8Ó9ˆCÜ¤ S£	¬4°«9Õ5ñ	6r   c                 ó  — g d¢}t        t        t        j                  |d«       t	        t        j                  |«      |d d «       t	        t        j                  |d«      |d d «       t	        t        j                  |d«      dg«       y )N)r
   r!   r	   r   r!   r	   r7   r
   r   )r   r   r   r   r   )r$   rÂ   s     r   Útest_hermtrimzTestMisc.test_hermtrim$  sh   € Úˆô 	”j¤$§-¡-°°rÔ:ô 	”T—]‘] 4Ó(¨$¨s°¨)Ô4Ü”T—]‘] 4¨Ó+¨T°#°2¨YÔ7Ü”T—]‘] 4¨Ó+¨a¨SÕ1r   c                 óH   — t        t        j                  dd«      ddg«       y )Nr8   r   r
   )r   r   Úhermliner#   s    r   Útest_hermlinezTestMisc.test_hermline/  s   € Ü”T—]‘] 1 aÓ(¨1¨a¨&Õ1r   c                 ó€   — t        d«      D ]0  }t        t        j                  dg|z  dgz   «      t        |   «       Œ2 y ©Nru   r   r	   )rA   r   r   rª   rw   ©r$   rG   s     r   Útest_herm2polyzTestMisc.test_herm2poly2  s:   € Ü�r“ò 	IˆAÜ¤§¡°¨s°Q©w¸!¸©}Ó =¼uÀQ¹xÕHñ	Ir   c                 ó€   — t        d«      D ]0  }t        t        j                  t        |   «      dg|z  dgz   «       Œ2 y r	  )rA   r   r   r©   rw   r
  s     r   Útest_poly2hermzTestMisc.test_poly2herm6  s:   € Ü�r“ò 	IˆAÜ¤§¡¬u°Q©xÓ 8¸1¸#À¹'ÀQÀC¹-ÕHñ	Ir   c                 ó¦   — t        j                  ddd«      }t        j                  |dz   «      }t        j                  |«      }t        ||«       y )Néûÿÿÿr<   é   r
   )rB   rm   Úexpr   Ú
hermweightr   )r$   r   rJ   rK   s       r   Útest_weightzTestMisc.test_weight:  s?   € Ü�K‰K˜˜A˜rÓ"ˆÜ�f‰f�a˜‘d�U‹mˆÜ�o‰o˜aÓ ˆÜ˜C Õ%r   N)
r1   r2   r3   rÿ   r  r  r  r  r  r  r4   r   r   rú   rú     s'   „ ò
*ò6ò	2ò2òIòIó&r   rú   )'Ú__doc__Ú	functoolsr   ÚnumpyrB   Únumpy.polynomial.hermiteÚ
polynomialÚhermiter   Únumpy.polynomial.polynomialr   Únumpy.testingr   r   r   r   ri   ÚH0ÚH1ÚH2ÚH3ÚH4ÚH5ÚH6ÚH7ÚH8ÚH9rw   r   r   r6   ro   rž   r¶   r½   rÐ   rä   rí   rú   r4   r   r   ú<module>r&     s]  ðñõ ã ß 'Ð 'Ý /ß SÓ Sà€R‡X�Xˆqˆcƒ]€Ø€R‡X�Xˆq�!ˆfÓ€Ø€R‡X�XŠjÓ€Ø€R‡X�XŠnÓ€Ø€R‡X�XÒ!Ó"€Ø€R‡X�XÒ&Ó'€Ø€R‡X�XÒ,Ó-€Ø€R‡X�XÒ3Ó4€Ø€R‡X�XÒ;Ó<€Ø€R‡X�XÒ?Ó@€à	ˆR��R˜˜R  R¨¨RÐ0€ò&÷*ñ *÷?@ñ ?@÷Dp)ñ p)÷fc&ñ c&÷L%&ñ %&÷P-)ñ -)÷`J*ñ J*÷Z:ñ :÷*ñ *÷&0&ò 0&r   