§
    ¢éUgŸ  ã                   óÈ   — d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZmZ ddlmZ dZd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"dS )z Test functions for rbf module é    N)Úassert_Úassert_array_almost_equalÚassert_almost_equal)ÚlinspaceÚsinÚcosÚrandomÚexpÚallclose)ÚRbf©Úmultiquadriczinverse multiquadricÚgaussianÚcubicÚquinticz
thin-plateÚlinearc                 ó  — t          ddd¦  «        }t          |¦  «        }t          ||| ¬¦  «        } ||¦  «        }t          ||¦  «         t	           |t          |d         ¦  «        ¦  «        |d         ¦  «         d S )Nr   é
   é	   ©Úfunction)r   r   r   r   r   Úfloat)r   ÚxÚyÚrbfÚyis        ú_/var/www/surfInsights/venv3-11/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                 ó(  — t          j        dd¦  «        dz  dz
  }t          j        dd¦  «        dz  dz
  }|t          |dz   d|dz  z  z
  ¦  «        z  }t          |||d| ¬¦  «        } |||¦  «        }|j        |_        t          ||¦  «         d S )Né2   é   é   é   ù              ð?©Úepsilonr   ©r	   Úrandr
   r   Úshaper   )r   r   r   Úzr   Úzis         r   Úcheck_rbf2d_interpolationr-      s¢   € åŒ�B�qÑÔ˜!Ñ˜AÑ€AÝŒ�B�qÑÔ˜!Ñ˜AÑ€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z  dz
  }t          j        dd¦  «        dz  dz
  }t          j        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+   Údr   Údis          r   Úcheck_rbf3d_interpolationr1   #   s½   € åŒ�B˜ÑÔ˜1Ñ˜qÑ €AÝŒ�B˜ÑÔ˜1Ñ˜qÑ €AÝŒ�B˜ÑÔ˜1Ñ˜qÑ €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   r-   r1   r   s    r   Útest_rbf_interpolationr5   /   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   ÚnpÚvstackÚTr   r   r   r   )r   r   Úy0Úy1r   r   r   s          r   Úcheck_2drbf1d_interpolationr?   6   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z  dz
  }t          j        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%   r7   ©r'   r   r9   ©	r	   r)   r
   r:   r;   r<   r   r*   r   )r   r   r   Úz0Úz1r+   r   r,   s           r   Úcheck_2drbf2d_interpolationrE   B   sÜ   € åŒ�BÑÔ˜AÑ Ñ!€AÝŒ�BÑÔ˜AÑ Ñ!€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z  dz
  }t          j        d¦  «        dz  dz
  }t          j        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$   r7   rA   rB   )	r   r   r   r+   Úd0Úd1r/   r   r0   s	            r   Úcheck_2drbf3d_interpolationrI   O   sñ   € åŒ�BÑÔ˜AÑ Ñ!€AÝŒ�BÑÔ˜AÑ Ñ!€AÝŒ�BÑÔ˜AÑ Ñ!€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 r3   )r4   r?   rE   rI   r   s    r   Útest_2drbf_interpolationrK   ]   sH   € Ýð .ð .ˆÝ# HÑ-Ô-Ð-Ý# HÑ-Ô-Ð-Ý# HÑ-Ô-Ð-Ð-ð.ð .r   c                 ód  — t          ddd¦  «        }t          |¦  «        }t          ||| ¬¦  «        }t          ddd¦  «        } ||¦  «        }dt          |t          |¦  «        z
  ¦  «                             ¦   «         z  }t          t          |t          |¦  «        |¬¦  «        |¦  «         d S )Nr   r   r   r   éd   úabs-diff: %f©Úatol)r   r   r   ÚabsÚmaxr   r   )r   rP   r   r   r   Úxir   Úmsgs           r   Úcheck_rbf1d_regularityrU   d   s¥   € õ 	��B˜ÑÔ€AÝˆA‰Œ€AÝ
ˆa�˜XÐ
&Ñ
&Ô
&€CÝ	�!�R˜Ñ	Ô	€BØ	ˆˆR‰Œ€BØ
�3˜r¥C¨¡G¤G™|Ñ,Ô,×0Ò0Ñ2Ô2Ñ
2€CÝ�H�R�˜R™œ tÐ,Ñ,Ô,¨cÑ2Ô2Ð2Ð2Ð2r   c                  óv   — ddddddddœ} t           D ]&}t          ||                      |d¦  «        ¦  «         Œ'd S ©Ngš™™™™™¹?g333333Ã?gš™™™™™É?r   g{®Gáz„?)r4   rU   Úget©Ú
tolerancesr   s     r   Útest_rbf_regularityr[   p   sc   € àØ $ØØØØØðð €Jõ ð Ið IˆÝ˜x¨¯ª¸À$Ñ)GÔ)GÑHÔHÐHÐHðIð Ir   c                 óR  — 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
  ¦  «                             ¦   «         z  }	t          t          |t          j        t          |¦  «        t          |¦  «        g¦  «        j        |¬¦  «        |	¦  «         d S )	Nr   r   r   r7   r8   rM   rN   rO   )r   r   r   r:   r;   r<   r   rQ   rR   r   r   )
r   rP   r   r=   r>   r   r   rS   r   rT   s
             r   Úcheck_2drbf1d_regularityr]   ~   sù   € õ 	��B˜ÑÔ€AÝ	ˆQ‰Œ€BÝ	ˆQ‰Œ€BÝ
Œ	�2�r�(ÑÔÔ€AÝ
ˆa�˜X¨EÐ
2Ñ
2Ô
2€CÝ	�!�R˜Ñ	Ô	€BØ	ˆˆR‰Œ€BØ
�3˜r¥B¤I­s°2©w¬w½¸B¹¼Ð.@Ñ$AÔ$AÔ$CÑCÑDÔD×HÒHÑJÔJÑ
J€CÝ�H�R�œ¥C¨¡G¤G­S°©W¬WÐ#5Ñ6Ô6Ô8¸tÐDÑDÔDÀcÑJÔJÐJÐJÐJr   c                  óv   — ddddddddœ} t           D ]&}t          ||                      |d¦  «        ¦  «         Œ'd S rW   )r4   r]   rX   rY   s     r   Útest_2drbf_regularityr_   Œ   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           j                             t          |¦  «        ¦  «        z  z   }t          ||| ¬¦  «        }t          j        ddd¦  «        } ||¦  «        }t          t          j        ||z
  ¦  «         	                    ¦   «         t          j        ||z
  ¦  «         	                    ¦   «         z  dk     ¦  «         d S )	NiÒ  r   r   r!   g      @r   iè  gš™™™™™ñ?)
r:   r	   Úseedr   ÚrandnÚlenr   r   rQ   rR   )r   r   r+   r   rS   r   s         r   Úcheck_rbf1d_stabilityrd   š   sÐ   € õ
 „I‡N‚N�4ÑÔÐÝ
Œ�A�r˜2ÑÔ€AØ	ˆC•"”)—/’/¥# a¡&¤&Ñ)Ô)Ñ)Ñ)€Aå
ˆa�˜XÐ
&Ñ
&Ô
&€CÝ	Œ�Q˜˜DÑ	!Ô	!€BØ	ˆˆR‰Œ€Bõ �BŒF�2�b‘5‰MŒM×ÒÑÔ¥"¤&¨¨1©¡+¤+§/¢/Ñ"3Ô"3Ñ3°cÒ9Ñ:Ô:Ð:Ð:Ð:r   c                  ó8   — t           D ]} t          | ¦  «         Œd S r3   )r4   rd   r   s    r   Útest_rbf_stabilityrf   ª   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_constructionri   ¯   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 r3   © )r   s    r   Úlinfuncz*test_function_is_callable.<locals>.linfunc½   s   € Øˆr   r   rh   )r   r   rm   r   r   s        r   Útest_function_is_callablern   ¹   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 r3   ©r'   )ÚselfÚrs     r   Ú_funcz0test_two_arg_function_is_callable.<locals>._funcÇ   s   € ØŒ|˜aÑÐr   r   r   r   r   rh   )rt   r   r   r   r   s        r   Ú!test_two_arg_function_is_callableru   Ä   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   rq   )r   r   r   )r   r   s     r   Útest_rbf_epsilon_nonerw   Ñ   s9   € Ý��B˜ÑÔ€AÝˆA‰Œ€AÝˆˆ1�dÐÑÔÐÐÐr   c                  ót   — g d¢} g d¢}g d¢}t          | ||d ¬¦  «        }t          |j        dk    ¦  «         d S )N)r"   r$   é   )r#   r#   r#   )é   é   é   rq   r   )r   r   r'   )r   r   r+   r   s       r   Útest_rbf_epsilon_none_collinearr}   ×   sO   € ð 	ˆ	ˆ	€AØˆ	ˆ	€AØˆ	ˆ	€AÝ
ˆa��A˜tÐ
$Ñ
$Ô
$€CÝˆCŒK˜!ŠOÑÔÐÐÐr   )#Ú__doc__Únumpyr:   Únumpy.testingr   r   r   r   r   r   r	   r
   r   Úscipy.interpolate._rbfr   r4   r   r-   r1   r5   r?   rE   rI   rK   rU   r[   r]   r_   rd   rf   ri   rn   ru   rw   r}   rl   r   r   ú<module>r‚      sÂ  ðà %Ð %à Ð Ð Ð ð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø &Ð &Ð &Ð &Ð &Ð &ð9€	ð0ð 0ð 0ð%ð %ð %ð	%ð 	%ð 	%ð,ð ,ð ,ð	0ð 	0ð 	0ð
%ð 
%ð 
%ð%ð %ð %ð.ð .ð .ð	3ð 	3ð 	3ðIð Ið IðKð Kð KðKð Kð Kð;ð ;ð ;ð (ð (ð (ð
%ð %ð %ð%ð %ð %ð
%ð 
%ð 
%ðð ð ðð ð ð ð r   