Ë
    âQ(hÿN  ã                   óú  — d dl Z 	 d dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZ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,d„ Z-d„ Z.d„ Z/d„ Z0d „ Z1d!„ Z2d"„ Z3d#„ Z4d$„ Z5d%„ Z6d&„ Z7d'„ Z8d(„ Z9d)„ Z:d*„ Z;d+„ Z<d,„ Z=d-„ Z>d.„ Z?d/„ Z@d0„ ZAd1„ ZBd2„ ZCd3„ ZDd4„ ZEd5„ ZFd6„ ZGej�                  j’                  d7„ «       ZJy# e$ r	 d dlmZ Y Œíw xY w)8é    N)ÚStringIO)Úassert_Úassert_array_equalÚassert_allcloseÚassert_equal)Úraises)Ú
coo_matrix)Úerf)Úmodify_meshÚestimate_fun_jacÚestimate_bc_jacÚcompute_jac_indicesÚconstruct_global_jacÚ	solve_bvpc                 ó<   — t        j                  |d   |d   f«      S ©Né   r   ©ÚnpÚvstack©ÚxÚys     ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/integrate/tests/test_bvp.pyÚexp_funr      s   € Ü�9‰9�a˜‘d˜A˜a™D�\Ó"Ð"ó    c                 óx   — t        j                  dd| j                  d   f«      }d|d<   d|d<   d|d<   d|d<   |S )Né   r   ©r   r   r   ©r   r   ©r   r   ©r   r   ©r   ÚemptyÚshape©r   r   Údf_dys      r   Úexp_fun_jacr(      sH   € Ü�H‰H�a˜˜AŸG™G A™JÐ'Ó(€EØ€Eˆ$�KØ€Eˆ$�KØ€Eˆ$�KØ€Eˆ$�KØ€Lr   c                 óB   — t        j                  | d   dz
  |d   f«      S ©Nr   r   ©r   Úhstack©ÚyaÚybs     r   Úexp_bcr0   #   s"   € Ü�9‰9�b˜‘e˜a‘i  A¡Ð'Ó(Ð(r   c                 óH   — t        j                  | d   dz
  dz
  |d   f«      S )Nr   r   y              ð?r+   r-   s     r   Úexp_bc_complexr2   '   s&   € Ü�9‰9�b˜‘e˜a‘i "‘n b¨¡eÐ,Ó-Ð-r   c                 óv   — t        j                  ddgddgg«      }t        j                  ddgddgg«      }||fS r   ©r   Úarray©r.   r/   Údbc_dyaÚdbc_dybs       r   Ú
exp_bc_jacr9   +   óS   € Ü�h‰hØ	
ˆAˆØ	
ˆAˆðó €Gô �h‰hØ	
ˆAˆØ	
ˆAˆðó €Gð �GÐÐr   c                 ó’   — t        j                  |  «      t        j                  | dz
  «      z
  dt        j                  d«      z
  z  S )Nr   r   éþÿÿÿ)r   Úexp©r   s    r   Úexp_solr?   7   s4   € Ü�F‰F�A�2‹JœŸ™  A¡›Ñ&¨1¬r¯v©v°b«z©>Ñ:Ð:r   c                 óP   — t        j                  |d   |d   dz   |d   z  f«      S )Nr   r   r   r   ©r   r   Úps      r   Úsl_funrC   ;   s,   € Ü�9‰9�a˜‘d˜Q˜q™T 1™W˜H q¨¡t™OÐ,Ó-Ð-r   c                 óê   — |j                   \  }}t        j                  |d|f«      }d|d<   d|d<   |d   dz   |d<   d|d<   t        j                  |d|f«      }d|d<   d|d   z  |d   z  |d<   ||fS )	Nr   r   r   r   r    r!   r"   r<   )r%   r   r$   ©r   r   rB   ÚnÚmr'   Údf_dps          r   Ú
sl_fun_jacrI   ?   s’   € Ø�7‰7�D€A€qÜ�H‰H�a˜˜A�YÓ€EØ€Eˆ$�KØ€Eˆ$�KØ�Q‘4˜‘7�(€Eˆ$�KØ€Eˆ$�Kä�H‰H�a˜˜A�YÓ€EØ€Eˆ$�KØ�q˜‘t‘)˜a ™dÑ"€Eˆ$�Kà�%ˆ<Ðr   c                 óP   — t        j                  | d   |d   | d   |d   z
  f«      S r*   r+   ©r.   r/   rB   s      r   Úsl_bcrL   N   s,   € Ü�9‰9�b˜‘e˜R ™U B q¡E¨A¨a©D¡LÐ1Ó2Ð2r   c                 ó²   — t        j                  d«      }d|d<   d|d<   t        j                  d«      }d|d<   t        j                  d«      }d|d<   |||fS )	N)é   r   r   r   )r   r   r!   )rN   r   éÿÿÿÿ)r   r   ©r   Úzeros)r.   r/   rB   r7   r8   Údbc_dps         r   Ú	sl_bc_jacrS   R   s]   € Ü�h‰h�vÓ€GØ€GˆD�MØ€GˆD�Mä�h‰h�vÓ€GØ€GˆD�Mä�X‰X�fÓ€FØ€Fˆ4�Là�G˜VÐ#Ð#r   c                 ó8   — t        j                  |d   | z  «      S )Nr   )r   Úsin©r   rB   s     r   Úsl_solrW   `   s   € Ü�6‰6�!�A‘$˜‘(ÓÐr   c                 óD   — t        j                  |d   |d   dz   f«      S )Nr   r   é   r   r   s     r   Ú	emden_funrZ   d   s$   € Ü�9‰9�a˜‘d˜Q˜q™T 1™W˜HÐ%Ó&Ð&r   c                 óŠ   — t        j                  dd| j                  d   f«      }d|d<   d|d<   d|d   dz  z  |d<   d|d	<   |S )
Nr   r   r   r   r    éûÿÿÿé   r!   r"   r#   r&   s      r   Úemden_fun_jacr^   h   sT   € Ü�H‰H�a˜˜AŸG™G A™JÐ'Ó(€EØ€Eˆ$�KØ€Eˆ$�KØ�q˜‘t˜Q‘w‘,€Eˆ$�KØ€Eˆ$�KØ€Lr   c                 óB   — t        j                  | d   |d   dz
  g«      S )Nr   r   çªLXèz¶ë?r4   r-   s     r   Úemden_bcra   q   s#   € Ü�8‰8�R˜‘U˜B˜q™E JÑ.Ð/Ó0Ð0r   c                 óv   — t        j                  ddgddgg«      }t        j                  ddgddgg«      }||fS r*   r4   r6   s       r   Úemden_bc_jacrc   u   r:   r   c                 ó   — d| dz  dz  z   dz  S )Nr   r   rN   ç      à¿© r>   s    r   Ú	emden_solrg   �   s   € Ø��1‘�Q‘‰J˜ÑÐr   c                 ó,   — t        j                  |«      S ©N©r   Ú
zeros_liker   s     r   Úundefined_funrl   …   s   € Ü�=‰=˜ÓÐr   c                 óB   — t        j                  | d   |d   dz
  g«      S r*   r4   r-   s     r   Úundefined_bcrn   ‰   s"   € Ü�8‰8�R˜‘U˜B˜q™E A™IÐ&Ó'Ð'r   c                 óL   — t        j                  |«      }|dd d…   |d d d…<   |S )Nr   r   rj   )r   r   Úfs      r   Úbig_funrq   �   s,   € Ü
�‰�aÓ€AØˆqˆt�!ˆt‰W€A�cˆ€c�FØ€Hr   c                 óN   — t        j                  | d d d…   |d d d…   dz
  f«      S )Nr   r   r+   r-   s     r   Úbig_bcrs   “   s*   € Ü�9‰9�b™˜1˜‘g˜r¡# A #™w¨™{Ð+Ó,Ð,r   c                 ó^   — t        j                  d|z  | j                  f«      }| |d d d…<   | S )Nr   )r   ÚonesÚsize)r   rF   r   s      r   Úbig_solrw   —   s.   € Ü
�‰��Q‘˜Ÿ™�Ó €AØ€A�cˆ€c�FØ€Hr   c                 ó¬   — t        j                  |«      }|ddd…   |ddd…<   |d   dz   |ddd…   z  |ddd…<   |d   dz   |ddd…   z  |ddd…<   |S )aý   Big version of sl_fun, with two parameters.

    The two differential equations represented by sl_fun are broadcast to the
    number of rows of y, rotating between the parameters p[0] and p[1].
    Here are the differential equations:

        dy[0]/dt = y[1]
        dy[1]/dt = -p[0]**2 * y[0]
        dy[2]/dt = y[3]
        dy[3]/dt = -p[1]**2 * y[2]
        dy[4]/dt = y[5]
        dy[5]/dt = -p[0]**2 * y[4]
        dy[6]/dt = y[7]
        dy[7]/dt = -p[1]**2 * y[6]
        .
        .
        .

    r   Nr   r   r]   rN   rj   )r   r   rB   rp   s       r   Úbig_fun_with_parametersry   �   s|   € ô( 	�‰�aÓ€AØˆqˆt�!ˆt‰W€A�cˆ€c�FØ�‰t�Q‰wˆh˜™3˜Q˜3™Ñ€A€a€dˆ€d�GØ�‰t�Q‰wˆh˜˜1˜4˜a˜4™Ñ €A€a€dˆ€d�GØ€Hr   c                 óö  — |j                   \  }}t        j                  |||f«      }d|t        d|d«      t        d|d«      f<   |d   dz   |t        d|d«      t        d|d«      f<   |d   dz   |t        d|d«      t        d|d«      f<   t        j                  |d|f«      }d|d   z  |t        d|d«         z  |t        d|d«      df<   d|d   z  |t        d|d«         z  |t        d|d«      df<   ||fS )Nr   r   r   r]   rN   r<   ©r%   r   rQ   ÚrangerE   s          r   Úbig_fun_with_parameters_jacr}   ¸   s  € à�7‰7�D€A€qÜ�H‰H�a˜˜A�YÓ€EØ,-€EŒ%��1�a‹.œ%  1 a›.Ð
(Ñ)Ø-.¨q©T°1©W¨H€EŒ%��1�a‹.œ%  1 a›.Ð
(Ñ)Ø-.¨q©T°1©W¨H€EŒ%��1�a‹.œ%  1 a›.Ð
(Ñ)ä�H‰H�a˜˜A�YÓ€EØ! A a¡D™y¨1¬U°1°a¸«^Ñ+<Ñ<€EŒ%��1�a‹.˜!Ð
ÑØ! A a¡D™y¨1¬U°1°a¸«^Ñ+<Ñ<€EŒ%��1�a‹.˜!Ð
Ñà�%ˆ<Ðr   c                 óp   — t        j                  | d d d…   |d d d…   | d   |d   z
  | d   |d   z
  f«      S )Nr   r   r   rN   r+   rK   s      r   Úbig_bc_with_parametersr   Ç   sB   € ä�9‰9�b™˜1˜‘g˜r¡# A #™w¨¨1©°°!±©°b¸±e¸aÀ¹d±lÐCÓDÐDr   c                 ó„  — | j                   d   }t        j                  |dz   |f«      }t        j                  |dz   |f«      }d|t        |dz  «      t        d|d«      f<   d|t        |dz  |«      t        d|d«      f<   t        j                  |dz   df«      }d||df<   d||df<   d||dz   df<   d||dz   df<   |||fS )Nr   r   r   rO   rN   r{   )r.   r/   rB   rF   r7   r8   rR   s          r   Úbig_bc_with_parameters_jacr�   Ì   sÝ   € à
�‰�‰€AÜ�h‰h˜˜A™˜q�zÓ"€GÜ�h‰h˜˜A™˜q�zÓ"€Gà-.€GŒE�!�q‘&‹Mœ5  A q›>Ð)Ñ*Ø01€GŒE�!�q‘&˜!Óœe A q¨!›nÐ,Ñ-ä�X‰X�q˜1‘u˜a�jÓ!€FØ€Fˆ1ˆaˆ4�LØ€GˆAˆqˆD�MØ€Fˆ1ˆq‰5�!ˆ8ÑØ€GˆA�‰E�1ˆHÑà�G˜VÐ#Ð#r   c                 ó”   — t        j                  t        j                  |d   | z  «      t        j                  |d   | z  «      f«      S r*   )r   r   rU   rV   s     r   Úbig_sol_with_parametersrƒ   Þ   s8   € ä�9‰9”b—f‘f˜Q˜q™T A™XÓ&¬¯©¨q°©t°a©xÓ(8Ð9Ó:Ð:r   c           	      ó@  — d}t        j                  |d   | |d   z  |t         j                  dz  z  t        j                  t         j                  | z  «      z  z   t         j                  | z  t        j                  t         j                  | z  «      z  z    |z  f«      S )Nçü©ñÒMbP?r   r   )r   r   ÚpiÚcosrU   )r   r   Úepss      r   Ú	shock_funr‰   ã   s‰   € Ø
€CÜ�9‰9Ø	ˆ!‰Ø
ˆa�‰d‰(�Sœ2Ÿ5™5 !™8‘^¤b§f¡f¬R¯U©U°Q©YÓ&7Ñ7Ñ
7Ü
�%‰%�!‰)”b—f‘fœRŸU™U Q™YÓ'Ñ
'ñ(ð 	)Ø+.ñ	/ðó ð r   c                 óB   — t        j                  | d   dz   |d   g«      S )Nr   r   r4   r-   s     r   Úshock_bcr‹   ì   s"   € Ü�8‰8�R˜‘U˜Q‘Y  1¡Ð&Ó'Ð'r   c                 ó¾   — d}t        j                  d|z  «      }t        j                  t         j                  | z  «      t	        | |z  «      t	        d|z  «      z  z   S )Nr…   r   r   )r   Úsqrtr‡   r†   r
   )r   rˆ   Úks      r   Ú	shock_solr�   ð   sJ   € Ø
€CÜ
�‰��C‘Ó€AÜ�6‰6”"—%‘%˜!‘)Óœs 1 q¡5›z¬C°°A±«JÑ6Ñ6Ð6r   c                 ó\   — t        j                  |d   t        j                  | «      g«      S )Nr   )r   Ústackrk   r   s     r   Únonlin_bc_funr’   ö   s#   € ä�8‰8�Q�q‘Tœ2Ÿ=™=¨Ó+Ð,Ó-Ð-r   c                 óh  — | \  }}|\  }}d\  }}}}	}
d|z
  dz
  }|t        j                  |
|z  «      t        j                  |
 |z  «      z
  z  }|||z  z   }|	|z
  dz
  }|t        j                  |
|z  «      t        j                  |
 |z  «      z
  z  }|||z  z
  }t        j                  ||g«      S )N)g=
×£p=ú?ç{®Gáz„?ç-Cëâ6?ç      à?g33333sC@ç        ç      ð?)r   r=   r5   )r.   r/   ÚphiAÚphipAÚphiCÚphipCÚkappaÚioAÚioCÚVrp   ÚhAÚiAÚres0ÚhCÚiCÚres1s                    r   Únonlin_bc_bcr§   û   sÃ   € Ø�K€Dˆ%Ø�K€Dˆ%à9Ñ€Eˆ3��Q˜ð 
ˆT‰�#‰€BØ	”—‘�q˜‘t“œrŸv™v q b¨¡e›}Ñ,Ñ	-€BØ�˜‘Ñ€Dð 
ˆT‰�C‰€BØ	”—‘�q˜‘t“œrŸv™v q b¨¡e›}Ñ,Ñ	-€BØ��e‘Ñ€Dä�8‰8�T˜4�LÓ!Ð!r   c                 ó   — dd| z  z
  S )NgÝ“/Á¿g)ø·ò?rf   r>   s    r   Únonlin_bc_solr©     s   € Ø )¨a¡-Ñ/Ð/r   c                  ó¸  — t        j                  g d¢t        ¬«      } t        | t        j                  dg«      t        j                  dg«      «      }t	        |t        j                  g d¢«      «       t        j                  g d¢t        ¬«      } t        | t        j                  dgt
        ¬«      t        j                  g d¢«      «      }t	        |g d	¢«       y )
N)r   r   rN   é	   ©Údtyper   r   )r   r–   r   rN   rY   é   r«   )éúÿÿÿéýÿÿÿr   rN   é   r   )r   r   rN   )r¯   r\   éüÿÿÿr°   g      ø¿r   r   r   rN   r]   rY   r±   )r   r5   Úfloatr   r   Úint)r   Úx_news     r   Útest_modify_meshr¶     sˆ   € Ü
�‰’¤UÔ+€AÜ˜œ2Ÿ8™8 Q C›=¬"¯(©(°A°3«-Ó8€EÜ�uœbŸh™hÒ'>Ó?Ô@ä
�‰Ò"¬%Ô0€AÜ˜œ2Ÿ8™8 Q C¬sÔ3´R·X±XºiÓ5HÓI€EÜ�uÒIÕJr   c                  óà  — t        j                  ddd«      } t        j                  d| j                  d   f«      }d|d<   d|d<   t        j                  g «      }t        d„ | ||«      \  }}t        | |«      }t        ||«       t        |d u «       t        j                  dt         j                  d«      } t        j                  d| j                  d   f«      }t        j                  | «      |d<   t        j                  | «      |d<   t        j                  dg«      }t        t        | ||«      \  }}t        | ||«      \  }}t        ||«       t        ||«       t        j                  ddd	«      } t        j                  d| j                  d   f«      }d
|d<   d|d<   t        j                  g «      }t        d„ | ||«      \  }}t        | |«      }t        ||«       t        |d u «       y )Nr   r   rY   r   r”   g{®Gáz”?c                 ó   — t        | |«      S ri   ©r   rA   s      r   ú<lambda>z&test_compute_fun_jac.<locals>.<lambda>"  s   € ´G¸A¸q³M€ r   r˜   é
   r`   r•   c                 ó   — t        | |«      S ri   )rZ   rA   s      r   rº   z&test_compute_fun_jac.<locals>.<lambda>6  s   € ´I¸aÀ³O€ r   )r   Úlinspacer$   r%   r5   r   r(   r   r   r†   rU   r‡   rC   rI   r^   )r   r   rB   r'   rH   Údf_dy_anÚdf_dp_ans          r   Útest_compute_fun_jacrÀ     s¢  € Ü
�‰�A�q˜!Ó€AÜ
�‰�!�Q—W‘W˜Q‘Z�Ó!€AØ€A€a�DØ€A€a�DÜ
�‰�‹€AÜ#Ñ$AÀ1ÀaÈÓK�L€Eˆ5Ü˜1˜aÓ €HÜ�E˜8Ô$ÜˆE�TˆMÔä
�‰�A”r—u‘u˜aÓ €AÜ
�‰�!�Q—W‘W˜Q‘Z�Ó!€AÜ�6‰6�!‹9€A€a�DÜ�6‰6�!‹9€A€a�DÜ
�‰�#�‹€AÜ#¤F¨A¨q°!Ó4�L€Eˆ5Ü# A q¨!Ó,Ñ€HˆhÜ�E˜8Ô$Ü�E˜8Ô$ä
�‰�A�q˜"Ó€AÜ
�‰�!�Q—W‘W˜Q‘Z�Ó!€AØ€A€a�DØ€A€a�DÜ
�‰�‹€AÜ#Ñ$CÀQÈÈ1ÓM�L€Eˆ5Ü˜Q Ó"€HÜ�E˜8Ô$ÜˆE�TˆMÕr   c                  óJ  — t        j                  ddg«      } t        j                  ddg«      }t        j                  g «      }t        d„ | ||«      \  }}}t        | |«      \  }}t	        ||«       t	        ||«       t        |d u «       t        j                  ddg«      } t        j                  ddg«      }t        j                  dg«      }t        t        | ||«      \  }}}t        | ||«      \  }}}t	        ||«       t	        ||«       t	        ||«       t        j                  dd	g«      } t        j                  d
dg«      }t        j                  g «      }t        d„ | ||«      \  }}}t        | |«      \  }}t	        ||«       t	        ||«       t        |d u «       y )Ng      ð¿r   r–   rN   c                 ó   — t        | |«      S ri   ©r0   rK   s      r   rº   z%test_compute_bc_jac.<locals>.<lambda>A  s   € œ&  R›.€ r   r—   r   rO   éd   iüÿÿg      %@c                 ó   — t        | |«      S ri   )ra   rK   s      r   rº   z%test_compute_bc_jac.<locals>.<lambda>T  s   € œ( 2 rÓ*€ r   )	r   r5   r   r9   r   r   rL   rS   rc   )	r.   r/   rB   r7   r8   rR   Ú
dbc_dya_anÚ
dbc_dyb_anÚ	dbc_dp_ans	            r   Útest_compute_bc_jacrÉ   <  sw  € Ü	�‰�4˜�)Ó	€BÜ	�‰�3˜�(Ó	€BÜ
�‰�‹€AÜ.Ù(¨"¨b°!ó 5Ñ€GˆW�fä'¨¨BÓ/Ñ€J�
Ü�G˜ZÔ(Ü�G˜ZÔ(ÜˆF�dˆNÔä	�‰�3˜�(Ó	€BÜ	�‰�3˜�)Ó	€BÜ
�‰�#�‹€AÜ.¬u°b¸"¸aÓ@Ñ€GˆW�fÜ(1°"°b¸!Ó(<Ñ%€J�
˜IÜ�G˜ZÔ(Ü�G˜ZÔ(Ü�F˜IÔ&ä	�‰�3˜�*Ó	€BÜ	�‰�5˜$�-Ó	 €BÜ
�‰�‹€AÜ.Ù*¨B°°Aó 7Ñ€GˆW�fä)¨"¨bÓ1Ñ€J�
Ü�G˜ZÔ(Ü�G˜ZÔ(ÜˆF�dˆNÕr   c                  ó  — d} d}d}t        | ||«      \  }}t        t        j                  |«      ||ff«      j	                  «       }t        j
                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
«      }t        ||«       y )Nr   r]   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r	   r   Ú	ones_likeÚtoarrayr5   r   )rF   rG   rŽ   ÚiÚjÚsÚs_trues          r   Útest_compute_jac_indicesrÑ   [  s„   € Ø	€AØ	€AØ	€AÜ˜q ! QÓ'�D€A€qÜ”B—L‘L “O a¨ VÐ,Ó-×5Ñ5Ó7€AÜ�X‰XÚ&Ú&Ú&Ú&Ú&Ú&Ú&Ú&Ú&Ú&ðó €Fô �q˜&Õ!r   c                  óô  — d} d}d}t        ddd«      \  }}t        j                  ddd«      }t        j                  |«      }t        j                  t        j
                  t        j                  |z  «      t        j                  t        j                  t        j                  |z  «      z  f«      }t        j                  dg«      }t        |||«      }	|d d d|z  z   }
d|d d …d d…f   |d d …dd …f   z   z  |dz  |	d d …dd …f   |	d d …d d…f   z
  z  z
  }t        |||«      \  }}t        |
||«      \  }}t        |d d …df   |d d …df   |«      \  }}}t        | ||||||||||||«      }|j                  «       }d	„ }t        j                  || z  |z   || z  |z   f«      }t        |dz
  «      D ],  } |||   |d   «      ||| z  |dz   | z  …|| z  |dz   | z  …f<   Œ. ||dz  z  d
z  |dd d…f   |ddd …f   z
  z  |d |dz
  | z  d…df<   |||dd d…f   |ddd …f   z   z  |dz  d
z  |dd d…f   |ddd …f   z
  z  z   z  |d|dz
  | z  d…df<   d|d<   d|d<   d|d<   d|d<   t!        ||d¬«       t#        t        |||«      \  }}t#        t        |
||«      \  }}t%        t&        |d d …df   |d d …df   |«      \  }}}t        | ||||||||||||«      }|j                  «       }t!        ||dd¬«       y )Nr   rY   r   r   g      @rO   r–   é   c           
      óê   — t        j                  | dz  |dz  z  dz  dz
  d| z  | dz   |dz  z  dz  dz   d| z  gd| z  |dz  z  | dz  |dz  z  dz  dz
  d| z  |dz  z  d| dz  |dz  z  dz  z
  gg«      S )Nr   é   r   re   r–   r4   )ÚhrB   s     r   ÚJ_blockz(test_compute_global_jac.<locals>.J_block‡  s¦   € Ü�x‰xØ�‰T�!�Q‘$‰Y�r‰\˜AÑ˜t A™v¨¨1© u¨Q°©T¡z°"¡}°qÑ'8¸$¸q¹&ÐAØ�‰U�1�a‘4‰Z˜˜A™˜a ™d™ 2™¨Ñ)¨3¨q©5°°A±©:°q¸1¸a¹4ÀÀ1Á¹9ÀR¹<Ñ7GÐHð
ó ð 	r   r±   )rÓ   r   )r«   rÓ   )r»   r   )r»   r»   ç»½×Ùß|Û=©Úrtolg:Œ0âŽyU>©rÚ   Úatol)r   r   r½   Údiffr   rU   r†   r‡   r5   rC   rI   rS   r   rÌ   rQ   r|   r   r   r   rL   )rF   rG   rŽ   Úi_jacÚj_jacr   rÖ   r   rB   rp   Úx_middleÚy_middler'   rH   Údf_dy_middleÚdf_dp_middler7   r8   rR   ÚJr×   ÚJ_truerÍ   s                          r   Útest_compute_global_jacræ   p  s~  € Ø	€AØ	€AØ	€AÜ& q¨!¨QÓ/�L€Eˆ5Ü
�‰�A�q˜!Ó€AÜ
�‰�‹
€AÜ
�	‰	”2—6‘6œ"Ÿ%™% !™)Ó$¤b§e¡e¬b¯f©f´R·U±U¸Q±YÓ.?Ñ&?Ð@ÓA€AÜ
�‰�#�‹€Aäˆq�!�Q‹€Aà��"ˆv˜˜a™Ñ€HØ�aš˜3˜B˜3˜‘i !¢A q¡r E¡(Ñ*Ñ+¨a°©c°Q²q¸!¹"°u±XÀÂ!ÀSÀbÀSÀ&Á	Ñ5IÑ.JÑJ€Hä˜a  AÓ&�L€Eˆ5Ü!+¨H°hÀÓ!BÑ€L�,Ü(¨ª1¨a¨4©°!²A°r°E±(¸AÓ>Ñ€GˆW�fä˜Q  1 e¨U°A°u¸lØ" L°'¸7ÀFó	L€Aà	�	‰	‹€Aòô �X‰X�q˜1‘u˜q‘y ! a¡%¨!¡)Ð,Ó-€FÜ�1�q‘5‹\ò MˆÙ9@ÀÀ1ÁÀqÈÁtÓ9Lˆˆq�1‰u�q˜1‘u ‘kÐ! 1 q¡5¨1¨q©5°A©+Ð#5Ð5Ò6ðMð "# Q¨¡T¡¨!¡¨q°°C°R°C°©y¸1¸QÀÁ¸U¹8Ñ/CÑ!D€Fˆ>ˆQ�‰U�a‰K˜ˆ>˜2ÐÑØ"# q¨A¨a°°"°¨f©I¸¸!¸Q¹R¸%¹Ñ,@Ñ'AØ'(¨!¡t¨A¡v°°1°c°r°c°6±¸Q¸qÀ!Á"¸u¹XÑ1EÑ'Fñ(Gñ #H€Fˆ1ˆa�!‰e�q‰[˜ˆ?˜BÐÑð €Fˆ4�LØ€Fˆ4�LØ€Fˆ5�MØ€Fˆ6�Nä�A�v EÕ*ä#¤F¨A¨q°!Ó4�L€Eˆ5Ü!1´&¸(ÀHÈaÓ!PÑ€L�,Ü.¬u°aº¸1¸±g¸qÂÀBÀ¹xÈÓKÑ€GˆW�fÜ˜Q  1 e¨U°A°u¸lØ" L°'¸7ÀFó	L€Aà	�	‰	‹€AÜ�A�v D¨tÖ4r   c            	      óB  — g d¢} t        j                  d«      }t        t        t        t
        t        | |«       t        j                  ddd«      } t        j                  d«      }t        t        t        t
        t        | |«       d„ }d„ }t        j                  d	| j                  d   f«      }t        t        t        ||| |dg¬
«       d„ }t        t        t        ||| |«       t        j                  ddgg«      }t        t        t        t
        t        | ||¬«       y )N)r   r   r–   )r   rN   r   r   rY   )r   r]   c                 ó   — t        | |«      S ri   r¹   rA   s      r   Úfunz&test_parameter_validation.<locals>.fun®  s   € Ü�q˜!‹}Ðr   c                 ó   — t        | |«      S ri   rÃ   rK   s      r   Úbcz%test_parameter_validation.<locals>.bc°  s   € Ü�b˜"‹~Ðr   r   )rB   c                 ó,   — t        j                  d«      S )NrN   rP   r   s     r   Úwrong_shape_funz2test_parameter_validation.<locals>.wrong_shape_fun¶  s   € Ü�x‰x˜‹{Ðr   )ÚS)
r   rQ   Úassert_raisesÚ
ValueErrorr   r   r0   r½   r%   r5   )r   r   ré   rë   rí   rî   s         r   Útest_parameter_validationrñ   ¥  sÖ   € Ú€AÜ
�‰�Ó€AÜ”*œi¬´&¸!¸QÔ?ä
�‰�A�q˜!Ó€AÜ
�‰�Ó€AÜ”*œi¬´&¸!¸QÔ?òòô 	�‰�!�Q—W‘W˜Q‘Z�Ó!€AÜ”*œi¨¨b°!°Q¸1¸#Õ>òô ”*œi¨¸"¸aÀÔCä
�‰�1�a�&�Ó€AÜ”*œi¬´&¸!¸QÀ!ÖDr   c            
      ó  — t        j                  ddd«      } t        j                  ddd«      }t        j                  d| j                  d   f«      }d t        fD �]«  }d t
        fD �]œ  }t        t        t        | |||¬«      }t        |j                  d«       t        |j                  «       t        |j                  j                  d«       |j                  |«      }t!        |d   t#        |«      d¬«       t        ||«      }|j                  |d«      |z
  }|dt        j$                  |«      z   z  }	t        j&                  |	dz  d¬	«      d
z  }
t        t        j(                  |
dk  «      «       t        t        j(                  |j*                  dk  «      «       t!        |j                  |j                  «      |j,                  dd¬«       t!        |j                  |j                  d«      |j.                  dd¬«       �ŒŸ �Œ® y )Nr   r   rY   rÄ   r   ©Úfun_jacÚbc_jacçñhãˆµøä>©rÜ   ©Úaxisr–   r…   rØ   rÛ   )r   r½   rQ   r%   r(   r9   r   r   r0   r   Ústatusr   Úsuccessr   rv   Úsolr   r?   ÚabsÚsumÚallÚrms_residualsr   Úyp©r   Úx_testr   rô   rõ   rü   Úsol_testÚf_testÚrÚrel_resÚnorm_ress              r   Útest_no_paramsr	  ¿  s“  € Ü
�‰�A�q˜!Ó€AÜ�[‰[˜˜A˜sÓ#€FÜ
�‰�!�Q—W‘W˜Q‘Z�Ó!€AØœ+Ð&ó OˆØœZÐ(ó 	OˆFÜœG¤V¨Q°¸7Ø#)ô+ˆCô ˜Ÿ™ QÔ'Ü�C—K‘KÔ ä˜Ÿ™Ÿ™ QÔ'à—w‘w˜v“ˆHä˜H Q™K¬°«¸tÕDä˜V XÓ.ˆFØ—‘˜ Ó" VÑ+ˆAØ˜1œrŸv™v f›~Ñ-Ñ.ˆGÜ—v‘v˜g q™j¨qÔ1°3Ñ6ˆHÜ”B—F‘F˜8 d™?Ó+Ô,ä”B—F‘F˜3×,Ñ,¨tÑ3Ó4Ô5Ü˜CŸG™G C§E¡E›N¨C¯E©E¸ÀEÕJÜ˜CŸG™G C§E¡E¨1Ó-¨s¯v©v¸EÈ×Nò+	OñOr   c                  ó’  — t        j                  dt         j                  d«      } t        j                  dt         j                  d«      }t        j                  d| j                  d   f«      }d t
        fD �]Í  }d t        fD �]¾  }t        t        t        | |dg||¬«      }t        |j                  d«       t        |j                  «       t        |j                  j                  dk  «       t!        |j"                  dgd	¬
«       |j%                  |«      }t!        |d   t'        |dg«      d	d	¬«       t        ||dg«      }|j%                  |d«      |z
  }|dt        j(                  |«      z   z  }	t        j*                  |	dz  d¬«      dz  }
t        t        j,                  |
dk  «      «       t        t        j,                  |j.                  dk  «      «       t!        |j%                  |j                  «      |j0                  dd¬«       t!        |j%                  |j                  d«      |j2                  dd¬«       �ŒÁ �ŒÐ y )Nr   rY   rÄ   r   r–   ©rB   rô   rõ   r»   r   r•   rÙ   rÛ   rø   r…   rØ   )r   r½   r†   ru   r%   rI   rS   r   rC   rL   r   rú   r   rû   r   rv   r   rB   rü   rW   rý   rþ   rÿ   r   r   r  r  s              r   Útest_with_paramsr  Ü  sÃ  € Ü
�‰�A”r—u‘u˜aÓ €AÜ�[‰[˜œBŸE™E 3Ó'€FÜ
�‰��A—G‘G˜A‘J�Ó €Aàœ*Ð%ó OˆØœYÐ'ó 	OˆFÜœF¤E¨1¨a°C°5À'Ø#)ô+ˆCô ˜Ÿ™ QÔ'Ü�C—K‘KÔ ä�C—E‘E—J‘J ‘OÔ$ä˜CŸE™E A 3¨TÕ2à—w‘w˜v“ˆHä˜H Q™K¬°¸¸Ó)<Ø!%¨Dõ2ô ˜F H¨q¨cÓ2ˆFØ—‘˜ Ó" VÑ+ˆAØ˜1œrŸv™v f›~Ñ-Ñ.ˆGÜ—v‘v˜g¨™l°Ô3°sÑ:ˆHÜ”B—F‘F˜8 d™?Ó+Ô,ä”B—F‘F˜3×,Ñ,¨tÑ3Ó4Ô5Ü˜CŸG™G C§E¡E›N¨C¯E©E¸ÀEÕJÜ˜CŸG™G C§E¡E¨1Ó-¨s¯v©v¸EÈ×Nò1	OñOr   c                  ó  — t        j                  ddd«      } t        j                  ddd«      }t        j                  d«      }d|d<   d|d<   t        j                  ddgdd	gg«      }d t        fD �]–  }d t
        fD �]‡  }t        t        t        | ||||¬
«      }t        |j                  d«       t        |j                  «       t        |j                  j                  d«       |j                  |«      }t!        |d   t#        |«      d¬«       t        ||«      |j%                  |«      |z  z   }|j                  |d«      |z
  }	|	dt        j&                  |«      z   z  }
t        j(                  |
dz  d¬«      dz  }t        t        j*                  |dk  «      «       t!        |j                  |j                  «      |j,                  dd¬«       t!        |j                  |j                  d«      |j.                  dd¬«       �ŒŠ �Œ™ y )Nr   r   r»   gš™™™™™©?rÄ   )r   r»   r`   r•   r<   )rî   rô   rõ   rö   r÷   r   rø   r–   r…   rØ   rÛ   )r   r½   r$   r5   r^   rc   r   rZ   ra   r   rú   r   rû   r   rv   rü   r   rg   Údotrý   rþ   rÿ   r   r  )r   r  r   rî   rô   rõ   rü   r  r  r  r  r  s               r   Útest_singular_termr  ý  s­  € Ü
�‰�A�q˜"Ó€AÜ�[‰[˜˜q #Ó&€FÜ
�‰�Ó€AØ€A€a�DØ€A€a�DÜ
�‰�1�a�&˜1˜b˜'Ð"Ó#€Aàœ-Ð(ó OˆØœ\Ð*ó 	OˆFÜœI¤x°°A¸ÀGØ#)ô+ˆCô ˜Ÿ™ QÔ'Ü�C—K‘KÔ ä˜Ÿ™Ÿ™ RÔ(à—w‘w˜v“ˆHÜ˜H Q™K¬°6Ó):ÀÕFä˜v xÓ0°1·5±5¸³?ÀVÑ3KÑKˆFØ—‘˜ Ó" VÑ+ˆAØ˜1œrŸv™v f›~Ñ-Ñ.ˆGÜ—v‘v˜g¨™l°Ô3°sÑ:ˆHä”B—F‘F˜8 d™?Ó+Ô,Ü˜CŸG™G C§E¡E›N¨C¯E©E¸ÀEÕJÜ˜CŸG™G C§E¡E¨1Ó-¨s¯v©v¸EÈ×Nò'	OñOr   c            
      óŠ  — t        j                  ddd«      } t        j                  ddd«      }t        j                  d| j                  d   ft        ¬«      }d t
        fD �]ß  }d t        fD �]Ð  }t        t        t        | |||¬«      }t        |j                  d«       t        |j                  «       |j                  |«      }t        |d   j                   t#        |«      d¬	«       t        |d   j$                  t#        |«      d¬	«       t        ||«      }|j                  |d«      |z
  }|dt        j&                  |«      z   z  }	t        j(                  t        j                   |	t        j*                  |	«      z  «      d¬
«      dz  }
t        t        j,                  |
dk  «      «       t        t        j,                  |j.                  dk  «      «       t        |j                  |j0                  «      |j2                  dd¬«       t        |j                  |j0                  d«      |j4                  dd¬«       �ŒÓ �Œâ y )Nr   r   rY   rÄ   r   r¬   ró   rö   r÷   rø   r–   r…   rØ   rÛ   )r   r½   rQ   r%   Úcomplexr(   r9   r   r   r2   r   rú   r   rû   rü   r   Úrealr?   Úimagrý   rþ   Úconjrÿ   r   r   r   r  r  s              r   Útest_complexr    s¾  € ô 	�‰�A�q˜!Ó€AÜ�[‰[˜˜A˜sÓ#€FÜ
�‰�!�Q—W‘W˜Q‘Z�¬Ô0€AØœ+Ð&ó OˆØœZÐ(ó 	OˆFÜœG¤^°Q¸À7Ø#)ô+ˆCô ˜Ÿ™ QÔ'Ü�C—K‘KÔ à—w‘w˜v“ˆHä˜H Q™K×,Ñ,¬g°f«oÀDÕIÜ˜H Q™K×,Ñ,¬g°f«oÀDÕIä˜V XÓ.ˆFØ—‘˜ Ó" VÑ+ˆAØ˜1œrŸv™v f›~Ñ-Ñ.ˆGÜ—v‘vœbŸg™g g´·±¸Ó0@Ñ&@ÓAØ#$ô&Ø),ñ-ˆHä”B—F‘F˜8 d™?Ó+Ô,ä”B—F‘F˜3×,Ñ,¨tÑ3Ó4Ô5Ü˜CŸG™G C§E¡E›N¨C¯E©E¸ÀEÕJÜ˜CŸG™G C§E¡E¨1Ó-¨s¯v©v¸EÈ×Nò+	OñOr   c                  óò  — t        j                  ddd«      } t        j                  d| j                  f«      }t	        t
        t        | |dd¬«      }t        |j                  d«       t        |j                   «       t        j                  ddd«      } t        j                  d| j                  f«      }t	        t        t        | |«      }t        |j                  d«       t        |j                   «       y )Nr   r   r   rö   rY   )ÚtolÚ	max_nodes)r   r½   rQ   rv   r   r   r0   r   rú   r   rû   rl   rn   )r   r   Úress      r   Útest_failuresr  ;  s®   € Ü
�‰�A�q˜!Ó€AÜ
�‰�!�Q—V‘V�Ó€AÜ
”GœV Q¨¨t¸qÔ
A€CÜ�—‘˜QÔÜ�—‘ˆOÔä
�‰�A�q˜!Ó€AÜ
�‰�!�Q—V‘V�Ó€AÜ
”M¤<°°AÓ
6€CÜ�—‘˜QÔÜ�—‘ˆOÕr   c                  ó´  — d} t        j                  ddd«      }t        j                  d| z  |j                  f«      }t	        t
        t        ||«      }t        |j                  d«       t        |j                  «       |j                  |«      }t        |d   t        || «      «       t        ||«      }|j                  |d«      |z
  }|dt        j                  |«      z   z  }t        j                  t        j                   |t        j"                  |«      z  «      d¬«      dz  }t        t        j$                  |dk  «      «       t        t        j$                  |j&                  dk  «      «       t        |j                  |j(                  «      |j*                  d	d	¬
«       t        |j                  |j(                  d«      |j,                  d	d	¬
«       y )Né   r   r   rY   r   rø   r–   r…   rØ   rÛ   )r   r½   rQ   rv   r   rq   rs   r   rú   r   rû   rü   r   rw   rý   rþ   r  r  rÿ   r   r   r   r  )	rF   r   r   rü   r  r  r  r  r  s	            r   Útest_big_problemr  I  sQ  € Ø
€AÜ
�‰�A�q˜!Ó€AÜ
�‰�!�a‘%˜Ÿ™�Ó!€AÜ
”GœV Q¨Ó
*€Cä�—‘˜QÔÜˆC�K‰KÔà�w‰w�q‹z€Hä�H˜Q‘K¤¨¨A£Ô/ä�Q˜Ó!€FØ�‰��1‹˜Ñ€AØ�1”r—v‘v˜f“~Ñ%Ñ&€GÜ�v‰v”b—g‘g˜g¬¯©°Ó(8Ñ8Ó9ÀÔBÀcÑI€HÜŒB�F‰F�8˜d‘?Ó#Ô$äŒB�F‰F�3×$Ñ$ tÑ+Ó,Ô-Ü�C—G‘G˜CŸE™E“N C§E¡E°¸EÕBÜ�C—G‘G˜CŸE™E 1Ó% s§v¡v°EÀÖFr   c                  óÌ  — d} t        j                  dt         j                  d«      }t        j                  dt         j                  d«      }t        j                  d| z  |j                  f«      }d t
        fD �]è  }d t        fD �]Ù  }t        t        t        ||ddg||¬«      }t        |j                  d«       t        |j                  «       t        |j                  ddgd	¬
«       |j!                  |«      }t#        d| d«      D ]G  }t        ||   t%        |ddg«      d   d	d	¬«       t        ||dz      t%        |ddg«      d   d	d	¬«       ŒI t        ||ddg«      }	|j!                  |d«      |	z
  }
|
dt        j&                  |	«      z   z  }t        j(                  |dz  d¬«      dz  }t        t        j*                  |dk  «      «       t        t        j*                  |j,                  dk  «      «       t        |j!                  |j.                  «      |j0                  dd¬«       t        |j!                  |j.                  d«      |j2                  dd¬«       �ŒÜ �Œë y )Nr  r   rY   rÄ   r   r–   r  r   r•   rÙ   r]   rÛ   rø   r…   rØ   )r   r½   r†   ru   rv   r}   r�   r   ry   r   r   rú   r   rû   r   rB   rü   r|   rƒ   rý   rþ   rÿ   r   r   r   r  )rF   r   r  r   rô   rõ   rü   r  Úisolr  r  r  r  s                r   Ú test_big_problem_with_parametersr   a  s  € Ø
€AÜ
�‰�A”r—u‘u˜aÓ €AÜ�[‰[˜œBŸE™E 3Ó'€FÜ
�‰��Q‘˜Ÿ™�Ó €AàÔ5Ð6ó OˆØÔ7Ð8ó 	OˆFÜÔ3Ô5KÈQØ # s °WÀVôMˆCô ˜Ÿ™ QÔ'Ü�C—K‘KÔ ä˜CŸE™E A q 6°Õ5à—w‘w˜v“ˆHä˜a  A›ò 6�Ü ¨¡Ü 7¸ÀÀAÀÓ GÈÑ JØ%)°õ6ô   ¨°©Ñ 2Ü 7¸ÀÀAÀÓ GÈÑ JØ%)°ö6ð	6ô -¨V°XÀÀ1¸vÓFˆFØ—‘˜ Ó" VÑ+ˆAØ˜1œrŸv™v f›~Ñ-Ñ.ˆGÜ—v‘v˜g¨™l°Ô3°sÑ:ˆHÜ”B—F‘F˜8 d™?Ó+Ô,ä”B—F‘F˜3×,Ñ,¨tÑ3Ó4Ô5Ü˜CŸG™G C§E¡E›N¨C¯E©E¸ÀEÕJÜ˜CŸG™G C§E¡E¨1Ó-¨s¯v©v¸EÈ×Nò7	OñOr   c                  ó~  — t        j                  ddd«      } t        j                  ddd«      }t        j                  d| j                  f«      }t	        t
        t        | |«      }t        |j                  d«       t        |j                  «       t        |j                  j                  dk  «       |j                  |«      }t        |d   t        |«      dd¬	«       t        ||«      }|j                  |d«      |z
  }|dt        j                  |«      z   z  }t        j                   |dz  d¬
«      dz  }t        t        j"                  |dk  «      «       t        |j                  |j                  «      |j$                  dd¬	«       t        |j                  |j                  d«      |j&                  dd¬	«       y )NrO   r   rY   rÄ   r   r   én   rö   rÛ   rø   r–   r…   rØ   )r   r½   rQ   rv   r   r‰   r‹   r   rú   r   rû   r   rü   r   r�   rý   rþ   rÿ   r   r  ©	r   r  r   rü   r  r  r  r  r  s	            r   Útest_shock_layerr$  †  sD  € Ü
�‰�B˜˜1Ó€AÜ�[‰[˜˜Q Ó$€FÜ
�‰�!�Q—V‘V�Ó€AÜ
”Iœx¨¨AÓ
.€Cä�—‘˜QÔÜˆC�K‰KÔäˆC�E‰E�J‰J˜ÑÔà�w‰w�v‹€HÜ�H˜Q‘K¤¨6Ó!2¸ÀDÕIä�v˜xÓ(€FØ�‰�˜Ó˜VÑ#€AØ�1”r—v‘v˜f“~Ñ%Ñ&€GÜ�v‰v�g ‘l¨Ô+¨sÑ2€HäŒB�F‰F�8˜d‘?Ó#Ô$Ü�C—G‘G˜CŸE™E“N C§E¡E°¸EÕBÜ�C—G‘G˜CŸE™E 1Ó% s§v¡v°EÀÖFr   c                  óT  — t        j                  ddd«      } | }t        j                  d| j                  g«      }t	        t
        t        | |«      }t        |j                  d«       t        |j                  «       t        |j                  j                  dk  «       |j                  |«      }t        |d   t        |«      dd¬«       t        ||«      }|j                  |d«      |z
  }|dt        j                  |«      z   z  }t        j                   |dz  d¬	«      d
z  }t        t        j"                  |dk  «      «       t        |j                  |j                  «      |j$                  dd¬«       t        |j                  |j                  d«      |j&                  dd¬«       y )Nr   gš™™™™™¹?rY   r   rÓ   rö   rÛ   r   rø   r–   r…   rØ   )r   r½   rQ   rv   r   r’   r§   r   rú   r   rû   r   rü   r   r©   rý   rþ   rÿ   r   r  r#  s	            r   Útest_nonlin_bcr&  ž  s6  € Ü
�‰�A�s˜AÓ€AØ€FÜ
�‰�!�Q—V‘V�Ó€AÜ
”M¤<°°AÓ
6€Cä�—‘˜QÔÜˆC�K‰KÔäˆC�E‰E�J‰J˜‰NÔà�w‰w�v‹€HÜ�H˜Q‘K¤¨vÓ!6¸TÈÕMä˜6 8Ó,€FØ�‰�˜Ó˜VÑ#€AØ�1”r—v‘v˜f“~Ñ%Ñ&€GÜ�v‰v�g ‘l¨Ô+¨sÑ2€HäŒB�F‰F�8˜d‘?Ó#Ô$Ü�C—G‘G˜CŸE™E“N C§E¡E°¸EÕBÜ�C—G‘G˜CŸE™E 1Ó% s§v¡v°EÀÖFr   c                  ó  — t        j                  ddd«      } t        j                  d| j                  d   f«      }dD ]µ  }t        j
                  }t        «       t        _        	 t        t        t        | ||¬«      }t        j
                  j                  «       }|t        _        t        |j                  «       |dk(  rt        | |«       |dk\  rt        d|v |«       |dk\  sŒ¨t        d|v |«       Œ· y # |t        _        w xY w)	Nr   r   rY   r   )r   r   r   )Úverbosez	Solved inzMax residual)r   r½   rQ   r%   ÚsysÚstdoutr   r   r   r0   Úgetvaluer   rû   )r   r   r(  Ú
old_stdoutrü   Útexts         r   Útest_verboser.  ¶  s×   € ô 	�‰�A�q˜!Ó€AÜ
�‰�!�Q—W‘W˜Q‘Z�Ó!€AØò 2ˆÜ—Z‘Zˆ
Ü“ZŒŒ
ð	$ÜœG¤V¨Q°¸7ÔCˆCÜ—:‘:×&Ñ&Ó(ˆDà#ŒCŒJä�—‘ÔØ�aŠ<Ü˜�H˜dÔ#Ø�aŠ<Ü�K 4Ð'¨Ô.Ø�a‹<Ü�N dÐ*¨DÕ1ñ2øð $ŒC�Jús   Á%6C7Ã7D)Kr)  r   ÚImportErrorÚioÚnumpyr   Únumpy.testingr   r   r   r   Úpytestr   rï   Úscipy.sparser	   Úscipy.specialr
   Úscipy.integrate._bvpr   r   r   r   r   r   r   r(   r0   r2   r9   r?   rC   rI   rL   rS   rW   rZ   r^   ra   rc   rg   rl   rn   rq   rs   rw   ry   r}   r   r�   rƒ   r‰   r‹   r�   r’   r§   r©   r¶   rÀ   rÉ   rÑ   ræ   rñ   r	  r  r  r  r  r  r   r$  r&  ÚmarkÚthread_unsafer.  rf   r   r   ú<module>r9     sf  ðÛ 
ðÝ!ó ÷)ó )å *å #Ý ÷C÷ Có ò#òò)ò.ò	ò;ò.òò3ò$òò'òò1ò	òòò(òò-òòò6òEò
$ò$;ò
ò(ò7ò.ò
"ò&0òKòò@ò>"ò*25òjEò4Oò:OòBOò>Oò>òGò0"OòJGò0Gð0 ‡�×Ññ2ó ñ2øðe ò ßðús   †C, Ã,C:Ã9C: