ó
    Û“,j®	  ã                   óž   • S r SSKJr  SSKrSSKJrJr  SSKJ	r
  SSKr " S S\R                  5      r " S S	\R                  5      rSS
 jrg)Úmatté   )Úché    N)ÚrowÚcolc                   ó.   • \ rS rSrSrSrS rS rS rSr	g)	ÚInterp3Dé	   Ú	locationsÚimagec                 óx   • SU;   a4  [         R                  " U R                  5      u  U l        U l        U l        g g )Nr   )ÚnpÚgradientr   ÚgxÚgyÚgz)ÚselfÚwhichs     Ú›C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\chumpy/extras.pyÚ
on_changedÚInterp3D.on_changed   s.   € Ø�eÓÜ(*¯ª°D·J±JÓ(?Ñ%ˆDŒG�T”W˜d�gð ó    c                 ó"  • U R                   R                  R                  5       n[        S5       HC  n[        R
                  " US S 2U4   SU R                  R                  U   S-
  5      US S 2U4'   ME     [        R                  " U5      R                  [        R                  5      nU R                  US S 2S4   US S 2S4   US S 2S4   4   nX-
  nU R                  U R                   5      R                  UR                  5       5      nXF-   $ ©Né   r   r   é   )r   ÚrÚcopyÚranger   Úclipr   ÚshapeÚfloorÚastypeÚuint32Údr_wrtÚdotÚravel)r   r   ÚiÚlocsÚresultÚoffsetÚdrs          r   Ú	compute_rÚInterp3D.compute_r   sÛ   € Ø—N‘N×$Ñ$×)Ñ)Ó+ˆ	Ü�q–ˆAÜŸWšW Yªq°¨s¡^°Q¸¿
¹
×8HÑ8HÈÑ8KÈAÑ8MÓNˆI’a˜�c‹Nñ ä�xŠx˜	Ó"×)Ñ)¬"¯)©)Ó4ˆØ—‘˜D¢ 1 ™I tªA¨a¨C¡y°$²q¸°s±)Ð;Ñ<ˆØÑ"ˆØ�[‰[˜Ÿ™Ó(×,Ñ,¨V¯\©\«^Ó<ˆØ‰{Ðr   c                 óº  • XR                   L GaÌ  U R                   R                  R                  5       n[        S5       HC  n[        R
                  " US S 2U4   SU R                  R                  U   S-
  5      US S 2U4'   ME     UR                  [        R                  5      n[        U R                  US S 2S4   US S 2S4   US S 2S4   4   5      n[        U R                  US S 2S4   US S 2S4   US S 2S4   4   5      n[        U R                  US S 2S4   US S 2S4   US S 2S4   4   5      n[        R                  " UR                  5       UR                  5       UR                  5       /5      R                   R                  5       n[        R"                  " UR$                  5      nUS-  n	[&        R(                  " UR                  5       X˜445      $ g r   )r   r   r   r   r   r    r   r!   r#   r$   r   r   r   r   Úvstackr'   ÚTÚarangeÚsizeÚspÚ
csc_matrix)
r   Úwrtr   r(   ÚxcÚycÚzcÚdataÚJSÚISs
             r   Úcompute_dr_wrtÚInterp3D.compute_dr_wrt   s…  € Ø—.‘.Ó ØŸ™×(Ñ(×-Ñ-Ó/ˆIÜ˜1–X�Ü!#§¢¨²1°Q°3©¸¸D¿J¹J×<LÑ<LÈQÑ<OÐPQÑ<QÓ!R�	š!˜A˜#“ñ à!×(Ñ(¬¯©Ó3ˆIä�T—W‘W˜Y¢q¨ s™^¨Y²q¸°s©^¸YÂqÈÀs¹^ÐKÑLÓMˆBÜ�T—W‘W˜Y¢q¨ s™^¨Y²q¸°s©^¸YÂqÈÀs¹^ÐKÑLÓMˆBÜ�T—W‘W˜Y¢q¨ s™^¨Y²q¸°s©^¸YÂqÈÀs¹^ÐKÑLÓMˆBä—9’9˜bŸh™h›j¨"¯(©(«*°b·h±h³jÐAÓB×DÑD×IÑIÓKˆDÜ—’˜9Ÿ>™>Ó*ˆBØ�q‘ˆBä—=’= $§*¡*£,°°Ð!9Ó:Ð:ð !r   )r   r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚdtermsÚtermsr   r-   r=   Ú__static_attributes__© r   r   r	   r	   	   s   † Ø€FØ€Eò@òõ;r   r	   c                   ó$   • \ rS rSrSrS rS rSrg)Úgammaé-   )Úxc                 óh   • [         R                  R                  U R                  R                  5      $ )N)ÚscipyÚspecialrH   rJ   r   )r   s    r   r-   Úgamma.compute_r0   s   € Ü�}‰}×"Ñ" 4§6¡6§8¡8Ó,Ð,r   c                 óð   • XR                   L ah  [        R                  R                  SU R                   R                  5      U R                  -  n[
        R                  " UR                  5       /S/5      $ g )Nr   )rJ   rL   rM   Ú	polygammar   r4   Údiagsr'   )r   r6   Úds      r   r=   Úgamma.compute_dr_wrt3   sR   € Ø—&‘&Š=Ü—‘×'Ñ'¨¨4¯6©6¯8©8Ó4°T·V±VÑ;ˆAÜ—8’8˜QŸW™W›Y˜K¨!¨Ó-Ð-ð r   rF   N)r?   r@   rA   rB   rC   r-   r=   rE   rF   r   r   rH   rH   -   s   † Ø€Fò-õ.r   rH   c                 ó@  • US:X  aM  [        U R                  5      nX2	 U(       a  [        R                  " U[        S9$ [
        R                  " S5      $ [        R                  " U R                  US9U5      n[        R                  " X-
  U5      nUR                  US9$ )Nr   )Údtypeg        )Úaxis)
Úlistr!   r   ÚzerosÚfloatr   Úfloat64Úexpand_dimsÚmeanÚpower)ÚaÚmomentrV   r!   ÚmnÚss         r   r_   r_   :   s}   € Ø�ƒ{ä�Q—W‘W“ˆØˆKÞä—8’8˜E¬Ñ/Ð/ô —:’:˜c“?Ð"ä�^Š^˜AŸF™F¨˜FÐ-¨tÓ4ˆÜ�HŠH�a‘d˜VÓ$ˆØ�v‰v˜4ˆvÐ Ð r   )r   r   )Ú
__author__Ú r   Únumpyr   Úutilsr   r   Úscipy.sparseÚsparser4   Úscipy.specialrL   ÚChr	   rH   r_   rF   r   r   Ú<module>rj      s?   ðØ€
å Û ß Ý Û ô!;ˆr�u‰uô !;ôH	.ˆB�E‰Eô 	.õ!r   