§
    µ³Ùg–J  ã                   ób  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZ d dlmZ d dlmZ d	„ Zd
„ Zd„ Zd„ Zej                             d ee¦  «        ¦  «        d„ ¦   «         Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z!dS )é    N)ÚLinAlgError)Úxp_assert_close)ÚHalton)ÚcKDTree)Ú
_AVAILABLEÚ_SCALE_INVARIANTÚ_NAME_TO_MIN_DEGREEÚ_monomial_powersÚRBFInterpolator)Ú_rbfinterp_pythran)Ú_run_concurrent_barrierc                 ób   — t          | j        d         |¦  «        }t          j        | |¦  «        S )Né   )r
   Úshaper   Ú_polynomial_matrix)ÚxÚdegreeÚpowerss      ú\/granary/edev/quantum/lib/python3.11/site-packages/scipy/interpolate/tests/test_rbfinterp.pyÚ_vandermonder      s,   € õ ˜aœg aœj¨&Ñ1Ô1€FÝÔ0°°FÑ;Ô;Ð;ó    c                 óº   — | d d …df         } dt          j        |  ¦  «        dt          j        d| z  ¦  «        z  z
  dt          j        d| z  ¦  «        z  z   z  }|S )Nr   g
×£p=
@é   éþÿÿÿé   éýÿÿÿ©ÚnpÚexp)r   Úys     r   Ú_1d_test_functionr!      sX   € ð 	
ˆ!ˆ!ˆ!ˆQˆ$Œ€AØ�bŒf�a�R‰jŒj˜1�RœV B q¡D™\œ\™>Ñ)¨A­b¬f°R¸±T©l¬l©NÑ:Ñ;€AØ€Hr   c                 óÒ  — | d d …df         | d d …df         }}dt          j        d|z  dz
  dz   dz  d|z  dz
  dz  dz  z
  ¦  «        z  }dt          j        d|z  dz   dz   dz  d|z  dz   dz  z
  ¦  «        z  }d	t          j        d|z  d
z
  dz   dz  d|z  dz
  dz  dz  z
  ¦  «        z  }dt          j        d|z  dz
  dz   d|z  d
z
  dz  z
  ¦  «        z  }||z   |z   |z   }|S )Nr   r   g      è?é	   é   r   é1   é
   g      à?é   r   gš™™™™™É¿r   )r   Úx1Úx2Úterm1Úterm2Úterm3Úterm4r    s           r   Ú_2d_test_functionr.      s  € ð ˆqˆqˆq�!ˆtŒW�a˜˜˜˜1˜”gˆ€BØ•2”6˜A˜b™D ™F Q™;˜, q™.¨A¨b©D°©F°Q©;°q©=Ñ8Ñ9Ô9Ñ9€EØ•2”6˜A˜b™D ™F Q™;˜, r™/¨Q¨r©T°!©V°R©KÑ7Ñ8Ô8Ñ8€EØ•"”&˜1˜R™4 ™6 A™+˜ a™¨1¨R©4°©6°A©+°a©-Ñ7Ñ8Ô8Ñ8€EØ•2”6˜A˜b™D ™F Q™;˜,¨!¨B©$¨q©&°1©Ñ4Ñ5Ô5Ñ5€EØ�‰˜Ñ Ñ%€AØ€Hr   c                 óp  — d}d}dD �]-}t          |dt          j                             ¦   «         ¬¦  «        }t	          |¦  «        D ]ì}d|                     |¦  «        z  dz
  }t          j        || ¦  «        }t          ||dz
  ¦  «        }	t          j         	                    |	d¬	¦  «        \  }
}|
d d …|	j
        d         d …f         }|j                             |¦  «                             |¦  «        }	 t          j                             |¦  «         ŒÐ# t          j        j        $ r Y   dS w xY w�Œ/d
S )Nr&   éd   )r   r$   r   r   é   F©ÚscrambleÚseedr$   r   Úcomplete)ÚmodeT)r   r   ÚrandomÚRandomStateÚranger   Ú_kernel_matrixr   ÚlinalgÚqrr   ÚTÚdotÚcholeskyr   )ÚkernelÚmÚnxÚntestsÚndimÚseqÚ_r   ÚAÚPÚQÚRÚQ2ÚBs                 r   Ú#_is_conditionally_positive_definiterM   +   s?  € ð 
€BØ€FØð ñ ˆõ �T Eµ´	×0EÒ0EÑ0GÔ0GÐHÑHÔHˆÝ�v‘”ð 	ð 	ˆAØ�#—*’*˜R‘.”.Ñ  1Ñ$ˆAÝ"Ô1°!°VÑ<Ô<ˆAÝ˜Q  A¡Ñ&Ô&ˆAÝ”9—<’< ¨
�<Ñ3Ô3‰DˆAˆqð
 �1�1�1�a”g˜a”j�k�k�>Ô"ˆBØ”—’˜‘”—’ Ñ#Ô#ˆAðÝ”	×"Ò" 1Ñ%Ô%Ð%Ð%øÝ”9Ô(ð ð ð Ø�u�u�u�uðøøøñ	ð  ˆ4s   Ã7DÄD1Ä0D1r@   c                 óZ   — t          j        | d¦  «        dz   }t          | |¦  «        sJ ‚d S )Néÿÿÿÿr   )r	   ÚgetrM   )r@   rA   s     r   Ú$test_conditionally_positive_definiterQ   J   s7   € õ
 	Ô ¨Ñ+Ô+¨aÑ/€AÝ.¨v°qÑ9Ô9Ð9Ð9Ð9Ð9Ð9r   c                   óÞ  — e Zd Zej                             d ee¦  «        ¦  «        d„ ¦   «         Zej                             d ee¦  «        ¦  «        d„ ¦   «         Z	ej                             d ee
¦  «        ¦  «        d„ ¦   «         Zd„ Zej        j        d„ ¦   «         Zd„ Zd„ Zej                             d ee
¦  «        ¦  «        d	„ ¦   «         Zej                             d ee
¦  «        ¦  «        d
„ ¦   «         Zej                             d ee
¦  «        ¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej        j        d„ ¦   «         Zd„ Zd„ Z d„ Z!d„ Z"dS )Ú_TestRBFInterpolatorr@   c                 óŒ  — t          ddt          j                             ¦   «         ¬¦  «        }d|                     d¦  «        z  }t	          |¦  «        }d|                     d¦  «        z  } |                      ||d|¬¦  «        |¦  «        } |                      ||d|¬¦  «        |¦  «        }t          ||d	¬
¦  «         d S )Nr   Fr2   r   é2   ç      ð?©Úepsilonr@   ç       @ç:Œ0âŽyE>©Úatol)r   r   r7   r8   r!   Úbuildr   ©Úselfr@   rE   r   r    ÚxitpÚyitp1Úyitp2s           r   Útest_scale_invariance_1dz-_TestRBFInterpolator.test_scale_invariance_1dT   s¼   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆØˆc�jŠj˜‰nŒnÑˆÝ˜aÑ Ô ˆØ�—’˜B‘”ÑˆØ<�—
’
˜1˜a¨°V�
Ñ<Ô<¸TÑBÔBˆØ<�—
’
˜1˜a¨°V�
Ñ<Ô<¸TÑBÔBˆÝ˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 ó€  — t          ddt          j                             ¦   «         ¬¦  «        }|                     d¦  «        }t	          |¦  «        }|                     d¦  «        } |                      ||d|¬¦  «        |¦  «        } |                      ||d|¬¦  «        |¦  «        }t          ||d¬	¦  «         d S )
Nr$   Fr2   r0   rV   rW   rY   rZ   r[   )r   r   r7   r8   r.   r]   r   r^   s           r   Útest_scale_invariance_2dz-_TestRBFInterpolator.test_scale_invariance_2d`   s²   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆØ�JŠJ�s‰OŒOˆÝ˜aÑ Ô ˆØ�zŠz˜#‰ŒˆØ<�—
’
˜1˜a¨°V�
Ñ<Ô<¸TÑBÔBˆØ<�—
’
˜1˜a¨°V�
Ñ<Ô<¸TÑBÔBˆÝ˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 óV  — t          ddt          j                             ¦   «         ¬¦  «        }d}d}|                     d¦  «        }t	          |¦  «        }|                     d¦  «        }|t
          v rO |                      |||¬¦  «        |¦  «        } |                      ||z  |z   ||¬¦  «        ||z  |z   ¦  «        }	nS |                      ||d|¬	¦  «        |¦  «        } |                      ||z  |z   |d|z  |¬	¦  «        ||z  |z   ¦  «        }	t          ||	d
¬¦  «         d S )Nr$   Fr2   gšd~ÅQJgAüjéZKr0   ©r@   ç      @rW   rZ   r[   )r   r   r7   r8   r.   r   r]   r   )
r_   r@   rE   ÚscaleÚshiftr   r    r`   ra   rb   s
             r   Útest_extreme_domainsz)_TestRBFInterpolator.test_extreme_domainsl   s\  € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆØˆØˆà�JŠJ�s‰OŒOˆÝ˜aÑ Ô ˆØ�zŠz˜#‰ŒˆàÕ%Ð%Ð%Ø3�D—J’J˜q !¨F�JÑ3Ô3°DÑ9Ô9ˆEð�D—J’JØ�%‘˜%‘ Øð ñ ô ð �u‘*˜uÑ$ñ&ô &ˆEˆEð
 A�D—J’J˜q !¨S¸�JÑ@Ô@ÀÑFÔFˆEð�D—J’JØ�%‘˜%‘ Ø˜E™	Øð ñ ô ð �u‘*˜uÑ$ñ	&ô &ˆEõ 	˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 óþ  — t           j                             d¦  «        }t          dd|¬¦  «        }d}|                     d¦  «        }|                     d¦  «        }t	          ||¦  «        }t	          ||¦  «        }|                     dd|j        d	         ¦  «        }|                     |¦  «        }	|                     |¦  «        }
 |                      ||	|¬
¦  «        |¦  «        }t          |
|d¬¦  «         d S )Nr   r$   Fr2   r   rU   ç        rV   r   ©r   rZ   r[   )
r   r7   r8   r   r   Únormalr   r>   r]   r   )r_   ÚrngrE   r   r   r`   rH   ÚPitpÚpoly_coeffsr    ra   rb   s               r   Útest_polynomial_reproductionz1_TestRBFInterpolator.test_polynomial_reproductionˆ   sç   € õ Œi×#Ò# AÑ&Ô&ˆÝ�Q ¨SÐ1Ñ1Ô1ˆØˆà�JŠJ�r‰NŒNˆØ�zŠz˜"‰~Œ~ˆå˜˜FÑ#Ô#ˆÝ˜D &Ñ)Ô)ˆà—j’j  c¨1¬7°1¬:Ñ6Ô6ˆà�EŠE�+ÑÔˆØ—’˜Ñ%Ô%ˆØ/�—
’
˜1˜a¨�
Ñ/Ô/°Ñ5Ô5ˆå˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 óN  ‡— t           j                             d¦  «        }t          dd|¬¦  «        }d}d}|                     d¦  «        }|                     |¦  «        }t	          ||¦  «        }t	          ||¦  «        }	|                     dd	|j        d
         ¦  «        }
|                     |
¦  «        }|	                     |
¦  «        }|                      |||¬¦  «        }|j	        Šˆfd„}| 
                    |d|¦  «          ||¦  «        }t          ||d¬¦  «         d S )Nr   r$   Fr2   r   i	  rU   rm   rV   r   rn   c                  ó@   •— |                      d¬¦  «          ‰| i |¤ŽS )Nr0   )Úmemory_budget)Úupdate)ÚargsÚkwargsÚce_reals     €r   Ú_chunk_evaluatorz<_TestRBFInterpolator.test_chunking.<locals>._chunk_evaluator¶   s,   ø€ Ø�MŠM¨ˆMÑ,Ô,Ð,Ø�7˜DÐ+ FÐ+Ð+Ð+r   r{   rZ   r[   )r   r7   r8   r   r   ro   r   r>   r]   r{   Úsetattrr   )r_   Úmonkeypatchrp   rE   r   ÚlargeNr   r`   rH   rq   rr   r    ra   Úinterpr{   rb   rz   s                   @r   Útest_chunkingz"_TestRBFInterpolator.test_chunkingž   s/  ø€ õ
 Œi×#Ò# AÑ&Ô&ˆÝ�Q ¨SÐ1Ñ1Ô1ˆØˆàˆà�JŠJ�r‰NŒNˆØ�zŠz˜&Ñ!Ô!ˆå˜˜FÑ#Ô#ˆÝ˜D &Ñ)Ô)ˆà—j’j  c¨1¬7°1¬:Ñ6Ô6ˆà�EŠE�+ÑÔˆØ—’˜Ñ%Ô%ˆØ—’˜A˜q¨�Ñ0Ô0ˆØÔ)ˆð	,ð 	,ð 	,ð 	,ð 	,ð 	×Ò˜FÐ$6Ð8HÑIÔIÐIØ��t‘”ˆÝ˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c           
      ó„  — t          ddt          j                             ¦   «         ¬¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        t          |¦  «        t          |d d …d d d…f         ¦  «        g¦  «        j        } |                      ||¦  «        |¦  «        } |                      ||d d …df         ¦  «        |¦  «        } |                      ||d d …df         ¦  «        |¦  «        }t          |d d …df         |¦  «         t          |d d …df         |¦  «         d S )Nr$   Fr2   r0   rO   r   r   )	r   r   r7   r8   Úarrayr.   r=   r]   r   ©r_   rE   r   r`   r    ra   rb   Úyitp3s           r   Útest_vector_dataz%_TestRBFInterpolator.test_vector_data¾   s7  € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆà�JŠJ�s‰OŒOˆØ�zŠz˜#‰ŒˆåŒHÕ'¨Ñ*Ô*Ý'¨¨!¨!¨!¨T¨T¨r¨T¨'¬
Ñ3Ô3ð5ñ 6ô 6Ü67ð 	
ð !�—
’
˜1˜aÑ Ô  Ñ&Ô&ˆØ&�—
’
˜1˜a    1 œgÑ&Ô& tÑ,Ô,ˆØ&�—
’
˜1˜a    1 œgÑ&Ô& tÑ,Ô,ˆå˜˜a˜a˜a ˜dœ UÑ+Ô+Ð+Ý˜˜a˜a˜a ˜dœ UÑ+Ô+Ð+Ð+Ð+r   c           	      ó6  — t          ddt          j                             ¦   «         ¬¦  «        }|                     d¦  «        }|                     d¦  «        }t	          |¦  «        dt	          |d d …d d d…f         ¦  «        z  z   } |                      ||¦  «        |¦  «        } |                      ||j        ¦  «        |¦  «        } |                      ||j        ¦  «        |¦  «        }t          |j        |¦  «         t          |j        |¦  «         d S )Nr$   Fr2   r0   y              ð?rO   )	r   r   r7   r8   r.   r]   ÚrealÚimagr   rƒ   s           r   Útest_complex_dataz&_TestRBFInterpolator.test_complex_dataÐ   sû   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆà�JŠJ�s‰OŒOˆØ�zŠz˜#‰Œˆå˜aÑ Ô  2Õ&7¸¸!¸!¸!¸T¸T¸r¸T¸'¼
Ñ&CÔ&CÑ#CÑCˆà �—
’
˜1˜aÑ Ô  Ñ&Ô&ˆØ%�—
’
˜1˜aœfÑ%Ô% dÑ+Ô+ˆØ%�—
’
˜1˜aœfÑ%Ô% dÑ+Ô+ˆå˜œ
 EÑ*Ô*Ð*Ý˜œ
 EÑ*Ô*Ð*Ð*Ð*r   c                 ó†  — t          ddt          j                             ¦   «         ¬¦  «        }d|                     d¦  «        z  }d|                     d¦  «        z  }t	          |¦  «        }t	          |¦  «        } |                      ||d|¬¦  «        |¦  «        }t          j        ||z
  dz  ¦  «        }|d	k     sJ ‚d S )
Nr   Fr2   r   rU   rh   rW   r$   ç-Cëâ6?)r   r   r7   r8   r!   r]   Úmean©	r_   r@   rE   r   r`   r    ÚytrueÚyitpÚmses	            r   Útest_interpolation_misfit_1dz1_TestRBFInterpolator.test_interpolation_misfit_1dá   s´   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆàˆc�jŠj˜‰nŒnÑˆØ�—’˜B‘”Ñˆå˜aÑ Ô ˆÝ! $Ñ'Ô'ˆØ;ˆt�zŠz˜!˜Q¨°FˆzÑ;Ô;¸DÑAÔAˆåŒg�t˜e‘| aÑ'Ñ(Ô(ˆØ�VŠ|ˆ|ˆ|ˆ|ˆ|ˆ|r   c                 óz  — t          ddt          j                             ¦   «         ¬¦  «        }|                     d¦  «        }|                     d¦  «        }t	          |¦  «        }t	          |¦  «        } |                      ||d|¬¦  «        |¦  «        }t          j        ||z
  dz  ¦  «        }|dk     sJ ‚d S )Nr$   Fr2   r0   rh   rW   g-Cëâ6*?)r   r   r7   r8   r.   r]   rŒ   r�   s	            r   Útest_interpolation_misfit_2dz1_TestRBFInterpolator.test_interpolation_misfit_2dñ   sª   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆà�JŠJ�s‰OŒOˆØ�zŠz˜#‰Œˆå˜aÑ Ô ˆÝ! $Ñ'Ô'ˆØ;ˆt�zŠz˜!˜Q¨°FˆzÑ;Ô;¸DÑAÔAˆåŒg�t˜e‘| aÑ'Ñ(Ô(ˆØ�VŠ|ˆ|ˆ|ˆ|ˆ|ˆ|r   c           	      ó  — t           j                             d¦  «        }t          dd|¬¦  «        }d}d}dt          j        ddd	¦  «        z  }d
|                     d¦  «        z  }t          |¦  «        |                     d|d¦  «        z   }t          |¦  «        }	d}
|D ][} |                      ||d||¬¦  «        |¦  «        }t          j        t          j	        ||	z
  dz  ¦  «        ¦  «        }||k     rd}
 nŒ\|
sJ ‚d S )Nr   r   Fr2   gš™™™™™É?gš™™™™™¹?r&   éüÿÿÿé   r   r0   rm   )r0   rV   )rX   Ú	smoothingr@   r$   T)
r   r7   r8   r   Úlinspacer!   ro   r]   ÚsqrtrŒ   )r_   r@   rp   rE   ÚnoiseÚrmse_tolÚsmoothing_ranger   r    rŽ   Úrmse_within_tolr—   ÚysmoothÚrmses                 r   Útest_smoothing_misfitz*_TestRBFInterpolator.test_smoothing_misfit  s/  € õ Œi×#Ò# AÑ&Ô&ˆÝ�Q ¨SÐ1Ñ1Ô1ˆàˆØˆØ�bœk¨"¨a°Ñ4Ô4Ñ4ˆàˆc�jŠj˜‰oŒoÑˆÝ˜aÑ Ô  3§:¢:¨c°5¸&Ñ#AÔ#AÑAˆÝ! !Ñ$Ô$ˆØˆØ(ð 		ð 		ˆIð�d—j’jØ�1ØØ#Øð	 !ñ ô ð  !ñ	"ô "ˆGõ
 ”7�2œ7 G¨e¡O°aÑ#7Ñ8Ô8Ñ9Ô9ˆDØ�hŠˆØ"&�Ø�ð ð ÐÐÐÐÐr   c                 ó  — t           j                             d¦  «        }t          dd|¬¦  «        }d}|                     d¦  «        }t	          ||¦  «        }|                     dd|j        d         ¦  «        }|                     |¦  «        }t          j        |¦  «        }|d	xx         dz  cc<   t          j	        d
¦  «        }	d|	d	<    |  
                    |||	¬¦  «        |¦  «        }
t          |
|d¬¦  «         d S )Nr   r   Fr2   r$   rU   rm   rV   r&   )rU   g     @�@©r—   r‹   r[   )r   r7   r8   r   r   ro   r   r>   ÚcopyÚzerosr]   r   )r_   rp   rE   r   r   rH   rr   r    Úy_with_outlierr—   r�   s              r   Útest_array_smoothingz)_TestRBFInterpolator.test_array_smoothing  s÷   € õ Œi×#Ò# AÑ&Ô&ˆÝ�Q ¨SÐ1Ñ1Ô1ˆØˆà�JŠJ�r‰NŒNˆÝ˜˜FÑ#Ô#ˆØ—j’j  c¨1¬7°1¬:Ñ6Ô6ˆØ�EŠE�+ÑÔˆÝœ ™œˆØ�rÐÐÔ˜cÑ!ÐÐÑÝ”H˜U‘O”Oˆ	Øˆ	�"‰ØAˆt�zŠz˜!˜^°yˆzÑAÔAÀ!ÑDÔDˆå˜˜a dÐ+Ñ+Ô+Ð+Ð+Ð+r   c                 óÒ  — t          ddt          j                             ¦   «         ¬¦  «                             d¦  «        }t	          |¦  «        }t          ddt          j                             ¦   «         ¬¦  «                             d¦  «        }d}t          j        t          |¬¦  «        5   |                      ||¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr$   Fr2   r&   r   zExpected the second axis of `x`©Úmatch)	r   r   r7   r8   r.   ÚpytestÚraisesÚ
ValueErrorr]   )r_   r    Údr   r©   s        r   Ú$test_inconsistent_x_dimensions_errorz9_TestRBFInterpolator.test_inconsistent_x_dimensions_error0  s  € õ �1˜u­2¬9×+@Ò+@Ñ+BÔ+BÐCÑCÔC×JÒJÈ2ÑNÔNˆÝ˜aÑ Ô ˆÝ�1˜u­2¬9×+@Ò+@Ñ+BÔ+BÐCÑCÔC×JÒJÈ2ÑNÔNˆØ1ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	 ð 	 ØˆD�JŠJ�q˜!ÑÔ˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   Â/ CÃC Ã#C c                 ó  — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }d}t          j        t
          |¬¦  «        5  |                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r1   zExpected the first axis of `d`r¨   ©r   r˜   r¤   rª   r«   r¬   r]   ©r_   r    r­   r©   s       r   Ú test_inconsistent_d_length_errorz5_TestRBFInterpolator.test_inconsistent_d_length_error:  sÁ   € ÝŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆØ0ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	ð 	Ø�JŠJ�q˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA6Á6A:Á=A:c                 óò   — t          j        ddd¦  «        }t          j        d¦  «        }d}t          j        t
          |¬¦  «        5  |                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r1   z"`y` must be a 2-dimensional array.r¨   r°   r±   s       r   Útest_y_not_2d_errorz(_TestRBFInterpolator.test_y_not_2d_errorA  s´   € ÝŒK˜˜1˜aÑ Ô ˆÝŒH�Q‰KŒKˆØ4ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	ð 	Ø�JŠJ�q˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA,Á,A0Á3A0c                 ó2  — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }t          j        d¦  «        }d}t	          j        t          |¬¦  «        5  |                      |||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r1   zExpected `smoothing` to ber¨   r¢   )r   r˜   r¤   Úonesrª   r«   r¬   r]   )r_   r    r­   r—   r©   s        r   Ú(test_inconsistent_smoothing_length_errorz=_TestRBFInterpolator.test_inconsistent_smoothing_length_errorH  sÒ   € ÝŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆÝ”G˜A‘J”Jˆ	Ø,ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	2ð 	2Ø�JŠJ�q˜! yˆJÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   Á&BÂBÂBc                 ó
  — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }d}t          j        t
          |¬¦  «        5  |                      ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r1   z`kernel` must be one ofr¨   Útestrg   r°   r±   s       r   Útest_invalid_kernel_name_errorz3_TestRBFInterpolator.test_invalid_kernel_name_errorP  sÅ   € ÝŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆØ)ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	,ð 	,Ø�JŠJ�q˜! FˆJÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ó   ÁA8Á8A<Á?A<c                 ó0  — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }t          D ]Y}|t          v rŒd}t          j        t          |¬¦  «        5  |                      |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   ŒZd S )Nr   r   r1   z`epsilon` must be specifiedr¨   rg   )	r   r˜   r¤   r   r   rª   r«   r¬   r]   )r_   r    r­   r@   r©   s        r   Ú test_epsilon_not_specified_errorz5_TestRBFInterpolator.test_epsilon_not_specified_errorW  sß   € ÝŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆÝ ð 	0ð 	0ˆFØÕ)Ð)Ð)Øà1ˆEÝ”�z°Ð7Ñ7Ô7ð 0ð 0Ø—
’
˜1˜a¨�
Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0øð	0ð 	0s   Á%B
Â
B	ÂB	c                 óD  — t          j        ddd¦  «        d d …d f         }t          j        ddd¦  «        }t          j        d¦  «        }d}t          j        t
          |¬¦  «        5   |                      ||¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r1   z"`x` must be a 2-dimensional array.r¨   r°   )r_   r    r   r­   r©   s        r   Útest_x_not_2d_errorz(_TestRBFInterpolator.test_x_not_2d_errorb  sÞ   € ÝŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒK˜˜1˜aÑ Ô ˆÝŒH�Q‰KŒKˆØ4ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	 ð 	 ØˆD�JŠJ�q˜!ÑÔ˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   Á( BÂBÂBc                 ó
  — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }d}t          j        t
          |¬¦  «        5  |                      ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   z#At least 2 data points are requiredr¨   Úthin_plate_splinerg   r°   r±   s       r   Ú"test_not_enough_observations_errorz7_TestRBFInterpolator.test_not_enough_observations_errorj  sÆ   € ÝŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆØ5ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	9ð 	9Ø�JŠJ�q˜!Ð$7ˆJÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9r»   c           
      óV  — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }t          j        ¦   «         D ]`\  }}|dk    rUd|› �}t          j        t          |¬¦  «        5  |                      ||d||dz
  ¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œad S )Nr   r   r1   z`degree` should not be below r¨   rV   ©rX   r@   r   )	r   r˜   r¤   r	   Úitemsrª   ÚwarnsÚWarningr]   )r_   r    r­   r@   Údegr©   s         r   Útest_degree_warningz(_TestRBFInterpolator.test_degree_warningq  s  € åŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆÝ.Ô4Ñ6Ô6ð 	Oð 	O‰KˆF�Cà�aŠxˆxØ=¸Ð=Ð=�Ý”\¥'°Ð7Ñ7Ô7ð Oð OØ—J’J˜q !¨S¸ÈÈAÉ�JÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oøð		Oð 	Os   Á3BÂB!	Â$B!	c                 óÔ   — t          j        ddd¦  «        d d …d f         }t          j        d¦  «        }t          j        ¦   «         D ]\  }}|                      ||d|d¬¦  «         Œ d S )Nr   r   r1   rV   rO   rÄ   )r   r˜   r¤   r	   rÅ   r]   )r_   r    r­   r@   rF   s        r   Útest_minus_one_degreez*_TestRBFInterpolator.test_minus_one_degree|  sx   € åŒK˜˜1˜aÑ Ô     D Ô)ˆÝŒH�Q‰KŒKˆÝ,Ô2Ñ4Ô4ð 	Dð 	D‰IˆF�AØ�JŠJ�q˜! S°ÀˆJÑCÔCÐCÐCð	Dð 	Dr   c                 ó  — t          j        ddgddgddgg¦  «        }t          j        g d¢¦  «        }d}t          j        t          |¬¦  «        5   |                      ||d¬¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrY   rm   rV   )rm   rm   rm   zdoes not have full column rankr¨   rÁ   rg   )r   r‚   rª   r«   r   r]   r±   s       r   Útest_rank_errorz$_TestRBFInterpolator.test_rank_errorƒ  sÚ   € õ ŒH�s˜C�j 3¨ *¨s°C¨jÐ9Ñ:Ô:ˆÝŒH�_�_�_Ñ%Ô%ˆØ0ˆÝŒ]�;¨eÐ4Ñ4Ô4ð 	<ð 	<Ø8ˆD�JŠJ�q˜!Ð$7ˆJÑ8Ô8¸Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   Á"B Â BÂBc                 óÆ   — dD ]]}t          j        d|f¦  «        }t          j        d¦  «        } |                      ||d¬¦  «        |¦  «        }t	          ||¦  «         Œ^d S )N)r   r$   r   r   )r   Úlinearrg   )r   r¤   r¶   r]   r   )r_   Údimr    r­   Úfs        r   Útest_single_pointz&_TestRBFInterpolator.test_single_pointŒ  sq   € ð ð 	"ð 	"ˆCÝ”˜!˜S˜Ñ"Ô"ˆAÝ”˜‘”ˆAØ1�—
’
˜1˜a¨�
Ñ1Ô1°!Ñ4Ô4ˆAÝ˜A˜qÑ!Ô!Ð!Ð!ð		"ð 	"r   c                 ó¦  — t          ddt          j                             d¦  «        ¬¦  «        }d|                     d¦  «        z  }d|                     d¦  «        z  }t	          |¦  «        }|                      ||¦  «        } ||¦  «        } t          j        t          j        |¦  «        ¦  «        |¦  «        }t          ||d¬¦  «         d S )	Nr   Fl   eä r2   r   rU   g¼‰Ø—²Òœ<r[   )
r   r   r7   r8   r!   r]   ÚpickleÚloadsÚdumpsr   )r_   rE   r   r`   r    r   ra   rb   s           r   Útest_pickleablez$_TestRBFInterpolator.test_pickleable•  s»   € õ �Q ­R¬Y×-BÒ-BÀ:Ñ-NÔ-NÐOÑOÔOˆàˆc�jŠj˜‰nŒnÑˆØ�—’˜B‘”Ñˆå˜aÑ Ô ˆà—’˜A˜qÑ!Ô!ˆà��t‘”ˆØ2•”�Vœ\¨&Ñ1Ô1Ñ2Ô2°4Ñ8Ô8ˆå˜˜u¨5Ð1Ñ1Ô1Ð1Ð1Ð1r   N)#Ú__name__Ú
__module__Ú__qualname__rª   ÚmarkÚparametrizeÚsortedr   rc   re   r   rk   rs   Úslowr€   r…   r‰   r‘   r“   r    r¦   r®   r²   r´   r·   rº   r½   r¿   rÂ   Úthread_unsaferÉ   rË   rÍ   rÒ   r×   © r   r   rS   rS   S   sž  € € € € € Ø„[×Ò˜X v vÐ.>Ñ'?Ô'?Ñ@Ô@ð	1ð 	1ñ AÔ@ð	1ð „[×Ò˜X v vÐ.>Ñ'?Ô'?Ñ@Ô@ð	1ð 	1ñ AÔ@ð	1ð „[×Ò˜X v v¨jÑ'9Ô'9Ñ:Ô:ð1ð 1ñ ;Ô:ð1ð61ð 1ð 1ð, „[Ôð1ð 1ñ Ôð1ð>,ð ,ð ,ð$+ð +ð +ð" „[×Ò˜X v v¨jÑ'9Ô'9Ñ:Ô:ðð ñ ;Ô:ðð „[×Ò˜X v v¨jÑ'9Ô'9Ñ:Ô:ðð ñ ;Ô:ðð „[×Ò˜X v v¨jÑ'9Ô'9Ñ:Ô:ðð ñ ;Ô:ðð6,ð ,ð ,ð& ð  ð  ðð ð ðð ð ð2ð 2ð 2ð,ð ,ð ,ð	0ð 	0ð 	0ð ð  ð  ð9ð 9ð 9ð „[ÔðOð Oñ ÔðOðDð Dð Dð<ð <ð <ð"ð "ð "ð2ð 2ð 2ð 2ð 2r   rS   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú TestRBFInterpolatorNeighborsNonec                 ó   — t          |i |¤ŽS ©N©r   ©r_   rx   ry   s      r   r]   z&TestRBFInterpolatorNeighborsNone.build¨  s   € Ý Ð/¨Ð/Ð/Ð/r   c                 ó  — t          ddt          j                             ¦   «         ¬¦  «        }d}d}d|                     d¦  «        z  }d|                     d¦  «        z  }t	          |¦  «        } |                      ||||¬¦  «        |¦  «        }t          ||¦  «        }t          ||¦  «        }	|	                     t          j         	                    ||d ¬¦  «        d	         ¦  «        }
t          ||
d
¬¦  «         d S )Nr   Fr2   r   ç    „×—ArU   ©r   r—   ©Úrcondr   rZ   r[   )r   r   r7   r8   r!   r]   r   r>   r;   Úlstsqr   ©r_   rE   r   r—   r   r`   r    ra   rH   rq   rb   s              r   Útest_smoothing_limit_1dz8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_1d«  s   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆàˆØˆ	àˆc�jŠj˜‰nŒnÑˆØ�—’˜B‘”Ñˆå˜aÑ Ô ˆð�—
’
ØˆqØØð ñ ô ð ñ	ô ˆõ ˜˜FÑ#Ô#ˆÝ˜D &Ñ)Ô)ˆØ—’�œŸš¨¨A°T˜Ñ:Ô:¸1Ô=Ñ>Ô>ˆå˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 óú  — t          ddt          j                             ¦   «         ¬¦  «        }d}d}|                     d¦  «        }|                     d¦  «        }t	          |¦  «        } |                      ||||¬¦  «        |¦  «        }t          ||¦  «        }t          ||¦  «        }	|	                     t          j         	                    ||d ¬¦  «        d	         ¦  «        }
t          ||
d
¬¦  «         d S )Nr$   Fr2   r   rè   r0   ré   rê   r   rZ   r[   )r   r   r7   r8   r.   r]   r   r>   r;   rì   r   rí   s              r   Útest_smoothing_limit_2dz8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_2dÄ  sö   € õ �Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆàˆØˆ	à�JŠJ�s‰OŒOˆØ�zŠz˜#‰Œˆå˜aÑ Ô ˆð�—
’
ØˆqØØð ñ ô ð ñ	ô ˆõ ˜˜FÑ#Ô#ˆÝ˜D &Ñ)Ô)ˆØ—’�œŸš¨¨A°T˜Ñ:Ô:¸1Ô=Ñ>Ô>ˆå˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   N)rØ   rÙ   rÚ   r]   rî   rð   rà   r   r   râ   râ   §  sA   € € € € € ð0ð 0ð 0ð1ð 1ð 1ð21ð 1ð 1ð 1ð 1r   râ   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestRBFInterpolatorNeighbors20c                 ó"   — t          |i |¤ddi¤ŽS )NÚ	neighborsr–   rå   ræ   s      r   r]   z$TestRBFInterpolatorNeighbors20.buildà  s    € Ý Ð=¨Ð=Ð=¸"Ð=Ð=Ð=Ð=r   c           	      ó  — t          ddt          j                             ¦   «         ¬¦  «        }|                     d¦  «        }|                     d¦  «        }t	          |¦  «        } |                      ||¦  «        |¦  «        }g }t          |¦  «        }|D ]_}|                     |d¦  «        \  }	}
|                      t          ||
         ||
         ¦  «        |d          ¦  «        d         ¦  «         Œ`t          ||d¬¦  «         d S )	Nr$   Fr2   r0   r–   r   rZ   r[   )r   r   r7   r8   r.   r]   r   ÚqueryÚappendr   r   )r_   rE   r   r`   r    ra   rb   ÚtreeÚxirF   Únbrs              r   Ú#test_equivalent_to_rbf_interpolatorzBTestRBFInterpolatorNeighbors20.test_equivalent_to_rbf_interpolatorã  sú   € Ý�Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆà�JŠJ�s‰OŒOˆØ�zŠz˜#‰Œˆå˜aÑ Ô ˆà �—
’
˜1˜aÑ Ô  Ñ&Ô&ˆàˆÝ�q‰zŒzˆØð 	Gð 	GˆBØ—Z’Z  BÑ'Ô'‰FˆAˆsØ�LŠLÐ8�¨¨3¬°°3´Ñ8Ô8¸¸D¼ÑBÔBÀ1ÔEÑFÔFÐFÐFå˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 ó,  — t          ddt          j                             d¦  «        ¬¦  «        }|                     d¦  «        }|                     d¦  «        }t	          |¦  «        }|                      ||¦  «        }d„ }t          d|||¦  «         d S )Nr$   Fr   r2   r0   c                 ó   —  ||¦  «         d S rä   rà   )rF   r   Úxps      r   Ú	worker_fnzBTestRBFInterpolatorNeighbors20.test_concurrency.<locals>.worker_fn   s   € ØˆF�2‰JŒJˆJˆJˆJr   r&   )r   r   r7   r8   r.   r]   r   )r_   rE   r   r`   r    r   rÿ   s          r   Útest_concurrencyz/TestRBFInterpolatorNeighbors20.test_concurrencyõ  s‘   € õ �Q ­R¬Y×-BÒ-BÀ1Ñ-EÔ-EÐFÑFÔFˆØ�JŠJ�s‰OŒOˆØ�zŠz˜#‰Œˆå˜aÑ Ô ˆà—’˜A˜qÑ!Ô!ˆð	ð 	ð 	õ 	   I¨v°tÑ<Ô<Ð<Ð<Ð<r   N)rØ   rÙ   rÚ   r]   rû   r   rà   r   r   rò   rò   Þ  sA   € € € € € ð>ð >ð >ð1ð 1ð 1ð$=ð =ð =ð =ð =r   rò   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestRBFInterpolatorNeighborsInfc                 ó6   — t          |i |¤dt          j        i¤ŽS )Nrô   )r   r   Úinfræ   s      r   r]   z%TestRBFInterpolatorNeighborsInf.build	  s"   € Ý ÐA¨ÐAÐA½"¼&ÐAÐAÐAÐAr   c                 ót  — t          ddt          j                             ¦   «         ¬¦  «        }d|                     d¦  «        z  }d|                     d¦  «        z  }t	          |¦  «        } |                      ||¦  «        |¦  «        } t          ||¦  «        |¦  «        }t          ||d¬¦  «         d S )Nr   Fr2   r   rU   rZ   r[   )r   r   r7   r8   r!   r]   r   r   )r_   rE   r   r`   r    ra   rb   s          r   rû   zCTestRBFInterpolatorNeighborsInf.test_equivalent_to_rbf_interpolator  sª   € Ý�Q ­R¬Y×-BÒ-BÑ-DÔ-DÐEÑEÔEˆàˆc�jŠj˜‰nŒnÑˆØ�—’˜B‘”Ñˆå˜aÑ Ô ˆØ �—
’
˜1˜aÑ Ô  Ñ&Ô&ˆØ%•  1Ñ%Ô% dÑ+Ô+ˆå˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   N)rØ   rÙ   rÚ   r]   rû   rà   r   r   r  r    s5   € € € € € ðBð Bð Bð
1ð 
1ð 
1ð 
1ð 
1r   r  )"rÔ   rª   Únumpyr   Únumpy.linalgr   Úscipy._lib._array_apir   Úscipy.stats.qmcr   Úscipy.spatialr   Úscipy.interpolate._rbfinterpr   r   r	   r
   r   Úscipy.interpolater   Úscipy._lib._testutilsr   r   r!   r.   rM   rÛ   rÜ   rÝ   rQ   rS   râ   rò   r  rà   r   r   ú<module>r     s	  ðØ €€€Ø €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø "Ð "Ð "Ð "Ð "Ð "Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ð<ð <ð <ðð ð ð	ð 	ð 	ðð ð ð> „×Ò˜ 6 6¨*Ñ#5Ô#5Ñ6Ô6ð:ð :ñ 7Ô6ð:ðQ2ð Q2ð Q2ð Q2ð Q2ñ Q2ô Q2ð Q2ðh
41ð 41ð 41ð 41ð 41Ð';ñ 41ô 41ð 41ðn%=ð %=ð %=ð %=ð %=Ð%9ñ %=ô %=ð %=ðP1ð 1ð 1ð 1ð 1Ð&Fñ 1ô 1ð 1ð 1ð 1r   