§
    µ³Ùgm  ã                   óþ   — d Z ddlZddlmZ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dlZdZd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej$        j%        d„ ¦   «         Z&dS )z Test functions for rbf module é    N)Úassert_array_almost_equalÚassert_almost_equal)ÚlinspaceÚsinÚcosÚexpÚallclose)ÚRbf)Ú_run_concurrent_barrier©Úmultiquadriczinverse multiquadricÚgaussianÚcubicÚquinticz
thin-plateÚlinearc                 ó  — t          ddd¦  «        }t          |¦  «        }t          ||| ¬¦  «        } ||¦  «        }t          ||¦  «         t	           |t          |d         ¦  «        ¦  «        |d         d¬¦  «         d S )Nr   é
   é	   ©ÚfunctionF)Úcheck_0d)r   r   r
   r   r   Úfloat)r   ÚxÚyÚrbfÚyis        úV/granary/edev/quantum/lib/python3.11/site-packages/scipy/interpolate/tests/test_rbf.pyÚcheck_rbf1d_interpolationr      s‚   € å��2�aÑÔ€AÝˆA‰Œ€AÝ
ˆa�˜XÐ
&Ñ
&Ô
&€CØ	ˆˆQ‰Œ€BÝ˜a Ñ$Ô$Ð$Ý˜˜�E ! A¤$™KœKÑ(Ô(¨!¨A¬$¸Ð?Ñ?Ô?Ð?Ð?Ð?ó    c                 ój  — t           j                             d¦  «        }|                     dd¦  «        dz  dz
  }|                     dd¦  «        dz  dz
  }|t	          |dz   d|dz  z  z
  ¦  «        z  }t          |||d| ¬¦  «        } |||¦  «        }|j        |_        t          ||¦  «         d S )NéÒ  é2   é   é   é   ù              ð?©Úepsilonr   ©ÚnpÚrandomÚRandomStateÚrandr   r
   Úshaper   )r   Úrngr   r   Úzr   Úzis          r   Úcheck_rbf2d_interpolationr2      s·   € å
Œ)×
Ò
 Ñ
%Ô
%€CØ�Š��A‰Œ�qÑ˜Ñ€AØ�Š��A‰Œ�qÑ˜Ñ€AØ	�#ˆq�!‰tˆe�B�q˜!‘t‘G‰mÑ
Ô
Ñ€AÝ
ˆa��A˜q¨8Ð
4Ñ
4Ô
4€CØ	ˆˆQ�‰Œ€BØŒw€B„HÝ˜a Ñ$Ô$Ð$Ð$Ð$r   c                 ó   — t           j                             d¦  «        }|                     dd¦  «        dz  dz
  }|                     dd¦  «        dz  dz
  }|                     dd¦  «        dz  dz
  }|t	          |dz   |dz  z
  ¦  «        z  }t          ||||d| ¬¦  «        } ||||¦  «        }|j        |_        t          ||¦  «         d S )Nr!   r"   r#   r$   r%   r'   r)   )r   r/   r   r   r0   Údr   Údis           r   Úcheck_rbf3d_interpolationr6   )   sÒ   € å
Œ)×
Ò
 Ñ
%Ô
%€CØ�Š��Q‰Œ˜Ñ˜AÑ€AØ�Š��Q‰Œ˜Ñ˜AÑ€AØ�Š��Q‰Œ˜Ñ˜AÑ€AØ	�#ˆq�!‰tˆe�a˜‘d‰lÑ
Ô
Ñ€AÝ
ˆa��A�q !¨hÐ
7Ñ
7Ô
7€CØ	ˆˆQ��1‰Œ€BØŒw€B„HÝ˜b !Ñ$Ô$Ð$Ð$Ð$r   c                  ót   — t           D ]/} t          | ¦  «         t          | ¦  «         t          | ¦  «         Œ0d S ©N)Ú	FUNCTIONSr   r2   r6   r   s    r   Útest_rbf_interpolationr:   6   sH   € Ýð ,ð ,ˆÝ! (Ñ+Ô+Ð+Ý! (Ñ+Ô+Ð+Ý! (Ñ+Ô+Ð+Ð+ð,ð ,r   c                 óZ  — t          ddd¦  «        }t          |¦  «        }t          |¦  «        }t          j        ||g¦  «        j        }t          ||| d¬¦  «        } ||¦  «        }t          ||¦  «         t           |t          |d         ¦  «        ¦  «        |d         ¦  «         d S )Nr   r   r   úN-D©r   Úmode)
r   r   r   r*   ÚvstackÚTr
   r   r   r   )r   r   Úy0Úy1r   r   r   s          r   Úcheck_2drbf1d_interpolationrC   =   s    € å��B˜ÑÔ€AÝ	ˆQ‰Œ€BÝ	ˆQ‰Œ€BÝ
Œ	�2�r�(ÑÔÔ€AÝ
ˆa�˜X¨EÐ
2Ñ
2Ô
2€CØ	ˆˆQ‰Œ€BÝ˜a Ñ$Ô$Ð$Ý˜˜�E ! A¤$™KœKÑ(Ô(¨!¨A¬$Ñ/Ô/Ð/Ð/Ð/r   c                 óÜ  — t           j                             d¦  «        }|                     d¦  «        dz  dz
  }|                     d¦  «        dz  dz
  }|t	          |dz   d|dz  z  z
  ¦  «        z  }|t	          |dz   d|dz  z  z
  ¦  «        z  }t          j        ||g¦  «        j        }t          |||d| d¬¦  «        } |||¦  «        }|j        |_        t          ||¦  «         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   Úz0Úz1r0   r   r1   s	            r   Úcheck_2drbf2d_interpolationrI   I   sñ   € å
Œ)×
Ò
 Ñ
%Ô
%€CØ�Š�‰Œ˜Ñ˜QÑ€AØ�Š�‰Œ˜Ñ˜QÑ€AØ	
�S�!�q‘&�˜2  Q¡™;Ñ&Ñ'Ô'Ñ	'€BØ	
�S�!�q‘&�˜2  Q¡™;Ñ&Ñ'Ô'Ñ	'€BÝ
Œ	�2�r�(ÑÔÔ€AÝ
ˆa��A˜q¨8¸%Ð
@Ñ
@Ô
@€CØ	ˆˆQ�‰Œ€BØŒw€B„HÝ˜a Ñ$Ô$Ð$Ð$Ð$r   c           	      ó
  — t           j                             d¦  «        }|                     d¦  «        dz  dz
  }|                     d¦  «        dz  dz
  }|                     d¦  «        dz  dz
  }|t	          |dz   |dz  z
  ¦  «        z  }|t	          |dz   |dz  z
  ¦  «        z  }t          j        ||g¦  «        j        }t          ||||d| d¬¦  «        } ||||¦  «        }	|j        |	_        t          |	|¦  «         d S )Nr!   r"   r$   r%   r<   rE   rF   )
r   r/   r   r   r0   Úd0Úd1r4   r   r5   s
             r   Úcheck_2drbf3d_interpolationrM   W   s  € å
Œ)×
Ò
 Ñ
%Ô
%€CØ�Š�‰Œ˜Ñ˜QÑ€AØ�Š�‰Œ˜Ñ˜QÑ€AØ�Š�‰Œ˜Ñ˜QÑ€AØ	
�S�!�q‘&�˜1 ™6Ñ!Ñ"Ô"Ñ	"€BØ	
�S�!�q‘&�˜1 ™6Ñ!Ñ"Ô"Ñ	"€BÝ
Œ	�2�r�(ÑÔÔ€AÝ
ˆa��A�q !¨h¸UÐ
CÑ
CÔ
C€CØ	ˆˆQ��1‰Œ€BØŒw€B„HÝ˜b !Ñ$Ô$Ð$Ð$Ð$r   c                  ót   — t           D ]/} t          | ¦  «         t          | ¦  «         t          | ¦  «         Œ0d S r8   )r9   rC   rI   rM   r   s    r   Útest_2drbf_interpolationrO   f   sH   € Ýð .ð .ˆÝ# HÑ-Ô-Ð-Ý# HÑ-Ô-Ð-Ý# HÑ-Ô-Ð-Ð-ð.ð .r   c                 ó^  — t          ddd¦  «        }t          |¦  «        }t          ||| ¬¦  «        }t          ddd¦  «        } ||¦  «        }dt          |t          |¦  «        z
  ¦  «                             ¦   «         d›�}t          |t          |¦  «        |¬¦  «        s
J |¦   «         ‚d S )	Nr   r   r   r   éd   ú
abs-diff: Úf©Úatol)r   r   r
   ÚabsÚmaxr	   )r   rU   r   r   r   Úxir   Úmsgs           r   Úcheck_rbf1d_regularityrZ   m   s¯   € õ 	��B˜ÑÔ€AÝˆA‰Œ€AÝ
ˆa�˜XÐ
&Ñ
&Ô
&€CÝ	�!�R˜Ñ	Ô	€BØ	ˆˆR‰Œ€BØ
2•s˜2¥ B¡¤™<Ñ(Ô(×,Ò,Ñ.Ô.Ð
2Ð
2Ð
2€CÝ�B�˜B™œ dÐ+Ñ+Ô+Ð0Ð0¨SÑ0Ô0Ð0Ð0Ð0r   c                  óv   — ddddddddœ} t           D ]&}t          ||                      |d¦  «        ¦  «         Œ'd S ©Ngš™™™™™¹?g333333Ã?gš™™™™™É?r   g{®Gáz„?)r9   rZ   Úget©Ú
tolerancesr   s     r   Útest_rbf_regularityr`   y   sc   € àØ $ØØØØØðð €Jõ ð Ið IˆÝ˜x¨¯ª¸À$Ñ)GÔ)GÑHÔHÐHÐHðIð Ir   c           
      óL  — t          ddd¦  «        }t          |¦  «        }t          |¦  «        }t          j        ||g¦  «        j        }t          ||| d¬¦  «        }t          ddd¦  «        } ||¦  «        }dt          |t          j        t          |¦  «        t          |¦  «        g¦  «        j        z
  ¦  «                             ¦   «         d›�}	t          |t          j        t          |¦  «        t          |¦  «        g¦  «        j        |¬	¦  «        s
J |	¦   «         ‚d S )
Nr   r   r   r<   r=   rQ   rR   rS   rT   )
r   r   r   r*   r?   r@   r
   rV   rW   r	   )
r   rU   r   rA   rB   r   r   rX   r   rY   s
             r   Úcheck_2drbf1d_regularityrb   ‡   s  € õ 	��B˜ÑÔ€AÝ	ˆQ‰Œ€BÝ	ˆQ‰Œ€BÝ
Œ	�2�r�(ÑÔÔ€AÝ
ˆa�˜X¨EÐ
2Ñ
2Ô
2€CÝ	�!�R˜Ñ	Ô	€BØ	ˆˆR‰Œ€BØ
J•s˜2¥¤	­3¨r©7¬7µC¸±G´GÐ*<Ñ =Ô =Ô ?Ñ?Ñ@Ô@×DÒDÑFÔFÐ
JÐ
JÐ
J€CÝ�B�œ	¥3 r¡7¤7­C°©G¬GÐ"4Ñ5Ô5Ô7¸dÐCÑCÔCÐHÐHÀSÑHÔHÐHÐHÐHr   c                  óv   — ddddddddœ} t           D ]&}t          ||                      |d¦  «        ¦  «         Œ'd S r\   )r9   rb   r]   r^   s     r   Útest_2drbf_regularityrd   •   sc   € àØ $ØØØØØðð €Jõ ð Kð KˆÝ  ¨:¯>ª>¸(ÀDÑ+IÔ+IÑJÔJÐJÐJðKð Kr   c                 óØ  — t           j                             d¦  «        }t          j        ddd¦  «        }|d|                     t          |¦  «        ¦  «        z  z   }t          ||| ¬¦  «        }t          j        ddd¦  «        } ||¦  «        }t          j        ||z
  ¦  «                             ¦   «         t          j        ||z
  ¦  «                             ¦   «         z  dk     sJ ‚d S )	Nr!   r   r   r"   g      @r   iè  gš™™™™™ñ?)	r*   r+   r,   r   ÚrandnÚlenr
   rV   rW   )r   r/   r   r0   r   rX   r   s          r   Úcheck_rbf1d_stabilityrh   £   sÍ   € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ
Œ�A�r˜2ÑÔ€AØ	ˆC�#—)’)�C ™FœFÑ#Ô#Ñ#Ñ#€Aå
ˆa�˜XÐ
&Ñ
&Ô
&€CÝ	Œ�Q˜˜DÑ	!Ô	!€BØ	ˆˆR‰Œ€Bõ Œ6�"�R‘%‰=Œ=×ÒÑÔ¥¤¨¨!©¡¤§¢Ñ!2Ô!2Ñ2°SÒ8Ð8Ð8Ð8Ð8Ð8r   c                  ó8   — t           D ]} t          | ¦  «         Œd S r8   )r9   rh   r   s    r   Útest_rbf_stabilityrj   ³   s,   € Ýð (ð (ˆÝ˜hÑ'Ô'Ð'Ð'ð(ð (r   c                  óœ   — t          ddd¦  «        } t          | ¦  «        }t          | |¦  «        } || ¦  «        }t          ||¦  «         d S )Nr   r   r   ©r   r   r
   r   )r   r   r   r   s       r   Útest_default_constructionrm   ¸   sP   € õ 	��2�aÑÔ€AÝˆA‰Œ€AÝ
ˆa�‰)Œ)€CØ	ˆˆQ‰Œ€BÝ˜a Ñ$Ô$Ð$Ð$Ð$r   c                  ó¦   — t          ddd¦  «        } t          | ¦  «        }d„ }t          | ||¬¦  «        } || ¦  «        }t          ||¦  «         d S )Nr   r   r   c                 ó   — | S r8   © )r   s    r   Úlinfuncz*test_function_is_callable.<locals>.linfuncÆ   s   € Øˆr   r   rl   )r   r   rq   r   r   s        r   Útest_function_is_callablerr   Â   sd   € å��2�aÑÔ€AÝˆA‰Œ€Aðð ð å
ˆa�˜WÐ
%Ñ
%Ô
%€CØ	ˆˆQ‰Œ€BÝ˜a Ñ$Ô$Ð$Ð$Ð$r   c                  ó¦   — d„ } t          ddd¦  «        }t          |¦  «        }t          ||| ¬¦  «        } ||¦  «        }t          ||¦  «         d S )Nc                 ó   — | j         |z   S r8   ©r(   )ÚselfÚrs     r   Ú_funcz0test_two_arg_function_is_callable.<locals>._funcÐ   s   € ØŒ|˜aÑÐr   r   r   r   r   rl   )rx   r   r   r   r   s        r   Ú!test_two_arg_function_is_callablery   Í   sf   € ð ð  ð  õ 	��2�aÑÔ€AÝˆA‰Œ€AÝ
ˆa�˜UÐ
#Ñ
#Ô
#€CØ	ˆˆQ‰Œ€BÝ˜a Ñ$Ô$Ð$Ð$Ð$r   c                  ój   — t          ddd¦  «        } t          | ¦  «        }t          | |d ¬¦  «         d S )Nr   r   r   ru   )r   r   r
   )r   r   s     r   Útest_rbf_epsilon_noner{   Ú   s9   € Ý��B˜ÑÔ€AÝˆA‰Œ€AÝˆˆ1�dÐÑÔÐÐÐr   c                  ó^   — g d¢} g d¢}g d¢}t          | ||d ¬¦  «        }|j        dk    sJ ‚d S )N)r#   r%   é   )r$   r$   r$   )é   é   é   ru   r   )r
   r(   )r   r   r0   r   s       r   Útest_rbf_epsilon_none_collinearr�   à   sH   € ð 	ˆ	ˆ	€AØˆ	ˆ	€AØˆ	ˆ	€AÝ
ˆa��A˜tÐ
$Ñ
$Ô
$€CØŒ;˜Š?ˆ?ˆ?ˆ?ˆ?ˆ?r   c                  óè   — t          ddd¦  «        } t          | ¦  «        }t          | ¦  «        }t          j        ||g¦  «        j        }t          | |d¬¦  «        }d„ }t          d||| ¦  «         d S )Nr   r   rQ   r<   )r>   c                 ó   —  ||¦  «         d S r8   rp   )Ú_ÚinterpÚxps      r   Ú	worker_fnz'test_rbf_concurrency.<locals>.worker_fnò   s   € Øˆˆr‰
Œ
ˆ
ˆ
ˆ
r   )r   r   r   r*   r?   r@   r
   r   )r   rA   rB   r   r   r‡   s         r   Útest_rbf_concurrencyrˆ   ê   s~   € å��B˜ÑÔ€AÝ	ˆQ‰Œ€BÝ	ˆQ‰Œ€BÝ
Œ	�2�r�(ÑÔÔ€AÝ
ˆa�˜Ð
Ñ
Ô
€Cðð ð õ ˜B 	¨3°Ñ2Ô2Ð2Ð2Ð2r   )'Ú__doc__Únumpyr*   Úscipy._lib._array_apir   r   r   r   r   r   r	   Úscipy.interpolate._rbfr
   Úscipy._lib._testutilsr   Úpytestr9   r   r2   r6   r:   rC   rI   rM   rO   rZ   r`   rb   rd   rh   rj   rm   rr   ry   r{   r�   ÚmarkÚthread_unsaferˆ   rp   r   r   ú<module>r‘      sá  ðà %Ð %à Ð Ð Ð à PÐ PÐ PÐ PÐ PÐ PÐ PÐ Pà 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9à €€€ð9€	ð@ð @ð @ð	%ð 	%ð 	%ð
%ð 
%ð 
%ð,ð ,ð ,ð	0ð 	0ð 	0ð%ð %ð %ð%ð %ð %ð.ð .ð .ð	1ð 	1ð 	1ðIð Ið IðIð Ið IðKð Kð Kð9ð 9ð 9ð (ð (ð (ð
%ð %ð %ð%ð %ð %ð
%ð 
%ð 
%ðð ð ðð ð ð „Ôð
3ð 
3ñ Ôð
3ð 
3ð 
3r   