Ë
    7^(hA
  ã                   ó@   — d Z ddlmZ ddlmZ ddlmZ d	d„Zd„ Zd„ Z	y)
z)Numerical Methods for Holonomic Functionsé    )Úsympify)ÚDMFsubs)Úmpc           
      ó²  — | j                   }|j                  }|j                  j                  }|j	                  «       }|dk(  rt
        }nt        }|j                  D �	cg c]!  }	|j                  |	j                  «       «      ‘Œ# }
}	t        |«      D �cg c]  }|
|    |
|   z  ‘Œ }}| j                  }t        |«      |k  rt        d«      ‚| j                  } ||||d   ||«      g}t        |dd «      D ]&  \  }}	|j!                   ||||   |	|d   |«      «       Œ( |s|D �cg c]  }t#        |d   «      ‘Œ c}S t#        |«      S c c}	w c c}w c c}w )zk
    Numerical methods for numerical integration along a given set of
    points in the complex plane.
    ÚEulerzNot Enough Initial Conditionsr   é   Néÿÿÿÿ)ÚannihilatorÚorderÚparentÚbaseÚ	get_fieldÚ_eulerÚ_rk4Ú
listofpolyÚnewÚto_listÚrangeÚy0ÚlenÚ	TypeErrorÚx0Ú	enumerateÚappendr   )ÚfuncÚpointsÚderivativesÚmethodÚannÚaÚRÚKÚmethÚjÚdmfÚiÚredr   r   Úsols                   úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/holonomic/numerical.pyÚ_evalfr*   	   sD  € ð ×
Ñ
€CØ�	‰	€AØ�
‰
�‰€AØ	�‰‹€Aà�ÒÜ‰äˆà'*§~¡~Ö
6 !ˆ1�5‰5�—‘“ÕÐ
6€CÐ
6Ü%*¨1£XÖ
. ˆC�‰Fˆ7�S˜‘VÓÐ
.€CÐ
.à	�‰€BÜ
ˆ2ƒw�‚{ÜÐ7Ó8Ð8Ø	�‰€BÙ��R˜ ™ B¨Ó*Ð
+€Cä˜&  ˜*Ó%ò 8‰ˆˆ1Ø�
‰
‘4˜˜V A™Y¨¨3¨r©7°AÓ6Õ7ð8ñ Ø'*Ö+ !”˜˜!™•Ò+Ð+ä�s‹|Ðùò 7ùÚ
.ùò ,s   Á&E
ÂEÄ'Ec           	      óD  — t        |«      j                  t        j                  «      }t        |«      j                  t        j                  «      }|D �cg c]*  }t        |«      j                  t        j                  «      ‘Œ, }}||z
  }	|dd }
d}t	        |«      D ]B  }|t        t        | |   |d¬«      «      j                  t        j                  «      ||   z  z  }ŒD |
j                  |«       t	        |«      D �cg c]  }||   |	|
|   z  z   ‘Œ c}S c c}w c c}w )zs
    Euler's method for numerical integration.
    From x0 to x1 with initial values given at x0 as vector y0.
    r   Nr   T©Úmpm©r   Ú
_to_mpmathr   Úprecr   r   r   )r'   r   Úx1r   r    ÚAÚBr&   Úy_0ÚhÚf_0Úf_0_ns               r)   r   r   +   sù   € ô 	�‹×ÑœrŸw™wÓ'€AÜ�‹×ÑœrŸw™wÓ'€AØ35Ö
6¨aŒ7�1‹:× Ñ ¤§¡Õ)Ð
6€CÐ
6Ø	ˆA‰€AØ
ˆaˆbˆ'€CØ€Eä�1‹Xò TˆØ”œ  Q¡¨°Ô5Ó6×AÑAÄ"Ç'Á'ÓJÈSÐQRÉVÑSÑS‰ðTà‡J�JˆuÔä).¨q«Ö2 AˆC�‰F�Q˜˜Q™‘ZÓÒ2Ð2ùò 7ùò 3s   Á/DÄ Dc           
      ó4  — t        |«      j                  t        j                  «      }t        |«      j                  t        j                  «      }|D �cg c]*  }t        |«      j                  t        j                  «      ‘Œ, }}||z
  }	d}
d}d}d}|dd }t	        |«      D ]B  }|
t        t        | |   |d¬«      «      j                  t        j                  «      ||   z  z  }
ŒD |j                  |
«       t	        d|«      D �cg c]  }||   ||   |	z  dz  z   ‘Œ }}t	        |«      D ]T  }|t        t        | |   ||	dz  z   d¬«      «      j                  t        j                  «      ||   ||   |	z  dz  z   z  z  }ŒV |j                  |«       t	        d|«      D �cg c]  }||   ||   |	z  dz  z   ‘Œ }}t	        |«      D ]T  }|t        t        | |   ||	dz  z   d¬«      «      j                  t        j                  «      ||   ||   |	z  dz  z   z  z  }ŒV |j                  |«       t	        d|«      D �cg c]  }||   ||   |	z  z   ‘Œ }}t	        |«      D ]N  }|t        t        | |   ||	z   d¬«      «      j                  t        j                  «      ||   ||   |	z  z   z  z  }ŒP |j                  |«       t	        |«      D �cg c]+  }||   |	||   d||   z  z   d||   z  z   ||   z   z  dz  z   ‘Œ- c}S c c}w c c}w c c}w c c}w c c}w )z1
    Runge-Kutta 4th order numerical method.
    r   r   NTr,   é   é   r.   )r'   r   r1   r   r    r2   r3   r&   r4   r5   r7   Úf_1_nÚf_2_nÚf_3_nr6   Úf_1Úf_2Úf_3s                     r)   r   r   ?   s$  € ô
 	�‹×ÑœrŸw™wÓ'€AÜ�‹×ÑœrŸw™wÓ'€AØ35Ö
6¨aŒ7�1‹:× Ñ ¤§¡Õ)Ð
6€CÐ
6Ø	ˆA‰€Aà€EØ€EØ€EØ€Eà
ˆaˆbˆ'€CÜ�1‹Xò TˆØ”œ  Q¡¨°Ô5Ó6×AÑAÄ"Ç'Á'ÓJÈSÐQRÉVÑSÑS‰ðTà‡J�JˆuÔä(-¨a°«Ö
4 1ˆ3ˆq‰6�C˜‘F˜1‘H˜Q‘JÓÐ
4€CÐ
4Ü�1‹Xò iˆØ”œ  Q¡¨¨Q¨q©S©°dÔ;Ó<×GÑGÌÏÉÓPÐTWÐXYÑTZÐ]`ÐabÑ]cÐdeÑ]eÐfgÑ]gÑTgÑhÑh‰ðià‡J�JˆuÔä(-¨a°«Ö
4 1ˆ3ˆq‰6�C˜‘F˜1‘H˜Q‘JÓÐ
4€CÐ
4Ü�1‹Xò iˆØ”œ  Q¡¨¨Q¨q©S©°dÔ;Ó<×GÑGÌÏÉÓPÐTWÐXYÑTZÐ]`ÐabÑ]cÐdeÑ]eÐfgÑ]gÑTgÑhÑh‰ðià‡J�JˆuÔä&+¨A¨q£kÖ
2 ˆ3ˆq‰6�C˜‘F˜1‘HÓÐ
2€CÐ
2Ü�1‹Xò eˆØ”œ  Q¡¨¨Q©°DÔ9Ó:×EÑEÄbÇgÁgÓNÐRUÐVWÑRXÐ[^Ð_`Ñ[aÐbcÑ[cÑRcÑdÑd‰ðeà‡J�JˆuÔäDIÈ!ÃHÖM¸qˆC�‰F�Q˜˜A™˜q  Q¡™x™¨¨#¨a©&©Ñ0°°Q±Ñ7Ñ8¸Ñ:Ó:ÒMÐMùò9 7ùò 5ùò
 5ùò
 3ùò
 Ns   Á/LÄLÆ"LÈ=LË0LN)FÚRK4)
Ú__doc__Úsympy.core.sympifyr   Úsympy.holonomic.holonomicr   Úmpmathr   r*   r   r   © ó    r)   ú<module>rH      s"   ðÙ /å &Ý -å óòD3ó(#NrG   