Ë
    qwj\  ã                   óÐ   — 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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#y)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¬«       y )Nr   é
   é	   ©ÚfunctionF)Úcheck_0d)r   r   r
   r   r   Úfloat)r   ÚxÚyÚrbfÚyis        úe/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_rbf.pyÚcheck_rbf1d_interpolationr      sW   € ä��2�aÓ€AÜˆA‹€AÜ
ˆa�˜XÔ
&€CÙ	ˆQ‹€BÜ˜a Ô$Ü™œE ! A¡$›KÓ(¨!¨A©$¸Ö?ó    c                 óX  — t         j                  j                  d«      }|j                  dd«      dz  dz
  }|j                  dd«      dz  dz
  }|t	        |dz   d|dz  z  z
  «      z  }t        |||d| ¬«      } |||«      }|j                  |j                  «      }t        ||«       y )NéÒ  é2   é   é   é   ù              ð?©Úepsilonr   ©	ÚnpÚrandomÚRandomStateÚrandr   r
   ÚreshapeÚshaper   )r   Úrngr   r   Úzr   Úzis          r   Úcheck_rbf2d_interpolationr3      s¢   € ä
�)‰)×
Ñ
 Ó
%€CØ�‰��A‹�qÑ˜Ñ€AØ�‰��A‹�qÑ˜Ñ€AØ	Œ#ˆq�!‰tˆe�B�q˜!‘t‘G‰mÓ
Ñ€AÜ
ˆa��A˜q¨8Ô
4€CÙ	ˆQ�‹€BØ	�‰�A—G‘GÓ	€BÜ˜a Õ$r   c                 ó†  — t         j                  j                  d«      }|j                  dd«      dz  dz
  }|j                  dd«      dz  dz
  }|j                  dd«      dz  dz
  }|t	        |dz   |dz  z
  «      z  }t        ||||d| ¬«      } ||||«      }|j                  |j                  «      }t        ||«       y )Nr!   r"   r#   r$   r%   r'   r)   )r   r0   r   r   r1   Údr   Údis           r   Úcheck_rbf3d_interpolationr7   (   s»   € ä
�)‰)×
Ñ
 Ó
%€CØ�‰��Q‹˜Ñ˜AÑ€AØ�‰��Q‹˜Ñ˜AÑ€AØ�‰��Q‹˜Ñ˜AÑ€AØ	Œ#ˆq�!‰tˆe�a˜‘d‰lÓ
Ñ€AÜ
ˆa��A�q !¨hÔ
7€CÙ	ˆQ��1‹€BØ	�‰�A—G‘GÓ	€BÜ˜b !Õ$r   c                  ó\   — t         D ]#  } t        | «       t        | «       t        | «       Œ% y ©N)Ú	FUNCTIONSr   r3   r7   r   s    r   Útest_rbf_interpolationr;   5   s$   € ßˆÜ! (Ô+Ü! (Ô+Ü! (Õ+ñ r   c                 ó  — t        ddd«      }t        |«      }t        |«      }t        j                  ||g«      j
                  }t        ||| d¬«      } ||«      }t        ||«       t         |t        |d   «      «      |d   «       y )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_interpolationrD   <   sx   € ä��B˜Ó€AÜ	ˆQ‹€BÜ	ˆQ‹€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa�˜X¨EÔ
2€CÙ	ˆQ‹€BÜ˜a Ô$Ü™œE ! A¡$›KÓ(¨!¨A©$Õ/r   c                 óÎ  — t         j                  j                  d«      }|j                  d«      dz  dz
  }|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                  |j                  «      }t        ||«       y )Nr!   r"   r$   r%   r&   r=   ©r(   r   r?   ©r*   r+   r,   r-   r   r@   rA   r
   r.   r/   r   )	r   r0   r   r   Úz0Úz1r1   r   r2   s	            r   Úcheck_2drbf2d_interpolationrJ   H   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Ø	�‰�A—G‘GÓ	€BÜ˜a Õ$r   c           	      óô  — t         j                  j                  d«      }|j                  d«      dz  dz
  }|j                  d«      dz  dz
  }|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                  |j                  «      }	t        |	|«       y )Nr!   r"   r$   r%   r=   rF   rG   )
r   r0   r   r   r1   Úd0Úd1r5   r   r6   s
             r   Úcheck_2drbf3d_interpolationrN   V   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Ù	ˆQ��1‹€BØ	�‰�A—G‘GÓ	€BÜ˜b !Õ$r   c                  ó\   — t         D ]#  } t        | «       t        | «       t        | «       Œ% y r9   )r:   rD   rJ   rN   r   s    r   Útest_2drbf_interpolationrP   e   s$   € ßˆÜ# HÔ-Ü# HÔ-Ü# HÕ-ñ r   c                 ó  — t        ddd«      }t        |«      }t        ||| ¬«      }t        ddd«      } ||«      }dt        |t        |«      z
  «      j	                  «       d›�}t        |t        |«      |¬«      sJ |«       ‚y )	Nr   r   r   r   éd   ú
abs-diff: Úf©Úatol)r   r   r
   ÚabsÚmaxr	   )r   rV   r   r   r   Úxir   Úmsgs           r   Úcheck_rbf1d_regularityr[   l   s€   € ô 	��B˜Ó€AÜˆA‹€AÜ
ˆa�˜XÔ
&€CÜ	�!�R˜Ó	€BÙ	ˆR‹€BØ”s˜2¤ B£™<Ó(×,Ñ,Ó.¨qÐ1Ð
2€CÜ�Bœ˜B› dÕ+Ð0¨SÓ0Ñ+r   c                  óf   — ddddddddœ} t         D ]  }t        || j                  |d«      «       Œ  y ©Ngš™™™™™¹?g333333Ã?gš™™™™™É?r   g{®Gáz„?)r:   r[   Úget©Ú
tolerancesr   s     r   Útest_rbf_regularityra   x   s?   € àØ $ØØØØØñ€J÷ ˆÜ˜x¨¯©¸À$Ó)GÕHñ r   c           
      ó  — 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
  «      j                  «       d›�}	t        |t        j                  t        |«      t        |«      g«      j
                  |¬	«      sJ |	«       ‚y )
Nr   r   r   r=   r>   rR   rS   rT   rU   )
r   r   r   r*   r@   rA   r
   rW   rX   r	   )
r   rV   r   rB   rC   r   r   rY   r   rZ   s
             r   Úcheck_2drbf1d_regularityrc   †   sÔ   € ô 	��B˜Ó€AÜ	ˆQ‹€BÜ	ˆQ‹€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa�˜X¨EÔ
2€CÜ	�!�R˜Ó	€BÙ	ˆR‹€BØ”s˜2¤§	¡	¬3¨r«7´C¸³GÐ*<Ó =× ?Ñ ?Ñ?Ó@×DÑDÓFÀqÐIÐ
J€CÜ�BœŸ	™	¤3 r£7¬C°«GÐ"4Ó5×7Ñ7¸dÕCÐHÀSÓHÑCr   c                  óf   — ddddddddœ} t         D ]  }t        || j                  |d«      «       Œ  y r]   )r:   rc   r^   r_   s     r   Útest_2drbf_regularityre   ”   s?   € àØ $ØØØØØñ€J÷ ˆÜ  ¨:¯>©>¸(ÀDÓ+IÕJñ r   c                 ó®  — t         j                  j                  d«      }t        j                  ddd«      }|d|j	                  t        |«      «      z  z   }t        ||| ¬«      }t        j                  ddd«      } ||«      }t        j                  ||z
  «      j                  «       t        j                  ||z
  «      j                  «       z  dk  sJ ‚y )	Nr!   r   r   r"   g      @r   iè  gš™™™™™ñ?)	r*   r+   r,   r   ÚrandnÚlenr
   rW   rX   )r   r0   r   r1   r   rY   r   s          r   Úcheck_rbf1d_stabilityri   ¢   s¬   € ô
 �)‰)×
Ñ
 Ó
%€CÜ
�‰�A�r˜2Ó€AØ	ˆC�#—)‘)œC ›FÓ#Ñ#Ñ#€Aä
ˆa�˜XÔ
&€CÜ	�‰�Q˜˜DÓ	!€BÙ	ˆR‹€Bô �6‰6�"�R‘%‹=×ÑÓ¤§¡¨¨!©£§¡Ó!2Ñ2°SÒ8Ð8Ñ8r   c                  ó0   — t         D ]  } t        | «       Œ y r9   )r:   ri   r   s    r   Útest_rbf_stabilityrk   ²   s   € ßˆÜ˜hÕ'ñ r   c                  ót   — t        ddd«      } t        | «      }t        | |«      } || «      }t        ||«       y )Nr   r   r   ©r   r   r
   r   )r   r   r   r   s       r   Útest_default_constructionrn   ·   s9   € ô 	��2�aÓ€AÜˆA‹€AÜ
ˆa�‹)€CÙ	ˆQ‹€BÜ˜a Õ$r   c                  ó~   — t        ddd«      } t        | «      }d„ }t        | ||¬«      } || «      }t        ||«       y )Nr   r   r   c                 ó   — | S r9   © )r   s    r   Úlinfuncz*test_function_is_callable.<locals>.linfuncÅ   s   € Øˆr   r   rm   )r   r   rr   r   r   s        r   Útest_function_is_callablers   Á   s?   € ä��2�aÓ€AÜˆA‹€Aòä
ˆa�˜WÔ
%€CÙ	ˆQ‹€BÜ˜a Õ$r   c                  ó~   — d„ } t        ddd«      }t        |«      }t        ||| ¬«      } ||«      }t        ||«       y )Nc                 ó    — | j                   |z   S r9   ©r(   )ÚselfÚrs     r   Ú_funcz0test_two_arg_function_is_callable.<locals>._funcÏ   s   € Ø�|‰|˜aÑÐr   r   r   r   r   rm   )ry   r   r   r   r   s        r   Ú!test_two_arg_function_is_callablerz   Ì   sA   € ò ô 	��2�aÓ€AÜˆA‹€AÜ
ˆa�˜UÔ
#€CÙ	ˆQ‹€BÜ˜a Õ$r   c                  óP   — t        ddd«      } t        | «      }t        | |d ¬«       y )Nr   r   r   rv   )r   r   r
   )r   r   s     r   Útest_rbf_epsilon_noner|   Ù   s%   € Ü��B˜Ó€AÜˆA‹€AÜˆˆ1�dÖr   c                  ó\   — g d¢} g d¢}g d¢}t        | ||d ¬«      }|j                  dkD  sJ ‚y )N)r#   r%   é   )r$   r$   r$   )é   é   é   rv   r   )r
   r(   )r   r   r1   r   s       r   Útest_rbf_epsilon_none_collinearr‚   ß   s3   € ò 	€AÚ€AÚ€AÜ
ˆa��A˜tÔ
$€CØ�;‰;˜Š?Ð‰?r   c                  óÊ   — t        ddd«      } t        | «      }t        | «      }t        j                  ||g«      j
                  }t        | |d¬«      }d„ }t        d||| «       y )Nr   r   rR   r=   )r?   c                 ó   —  ||«       y r9   rq   )Ú_ÚinterpÚxps      r   Ú	worker_fnz'test_rbf_concurrency.<locals>.worker_fnð   s	   € Ùˆr�
r   )r   r   r   r*   r@   rA   r
   r   )r   rB   rC   r   r   rˆ   s         r   Útest_rbf_concurrencyr‰   é   s]   € Ü��B˜Ó€AÜ	ˆQ‹€BÜ	ˆQ‹€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa�˜Ô
€Còô ˜B 	¨3°Õ2r   )$Ú__doc__Únumpyr*   Úscipy._lib._array_apir   r   r   r   r   r   r	   Úscipy.interpolate._rbfr
   Úscipy._lib._testutilsr   r:   r   r3   r7   r;   rD   rJ   rN   rP   r[   ra   rc   re   ri   rk   rn   rs   rz   r|   r‚   r‰   rq   r   r   Ú<module>r�      sŒ   ðá %ã ÷ Qç 3Õ 3Ý &Ý 9ð9€	ò@ò	%ò
%ò,ò	0ò%ò%ò.ò	1òIòIòKò9ò (ò
%ò%ò
%òòó
3r   