§
    fŠtjý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„ Z/d „ Z0d!„ Z1d"„ Z2d#„ Z3d$„ Z4d%„ Z5d&„ Z6d'„ Z7d(„ Z8d)„ Z9d*„ Z:d+„ Z;d,„ Z<d-„ Z=d.„ Z>d/„ Z?d0„ Z@d1„ ZAd2„ ZBd3„ ZCd4„ ZDd5„ ZEd6„ ZFe
jG         H                    d7¬8¦  «        d9„ ¦   «         ZIdS ):é    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                 óF   — t          j        |d         |d         f¦  «        S ©Né   r   ©ÚnpÚvstack©ÚxÚys     ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/integrate/tests/test_bvp.pyÚexp_funr      s   € ÝŒ9�a˜”d˜A˜aœD�\Ñ"Ô"Ð"ó    c                 ór   — 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(      sG   € ÝŒH�a˜˜AœG AœJÐ'Ñ(Ô(€EØ€Eˆ$�KØ€Eˆ$�KØ€Eˆ$�KØ€Eˆ$�KØ€Lr   c                 óL   — t          j        | d         dz
  |d         f¦  «        S ©Nr   r   ©r   Úhstack©ÚyaÚybs     r   Úexp_bcr0      s#   € ÝŒ9�b˜”e˜a‘i  A¤Ð'Ñ(Ô(Ð(r   c                 óR   — t          j        | d         dz
  dz
  |d         f¦  «        S )Nr   r   y              ð?r+   r-   s     r   Úexp_bc_complexr2   #   s'   € ÝŒ9�b˜”e˜a‘i "‘n b¨¤eÐ,Ñ-Ô-Ð-r   c                 ór   — 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   '   óY   € ÝŒhØ	
ˆAˆØ	
ˆAˆðñ ô €Gõ Œ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?   3   s4   € ÝŒF�A�2‰JŒJ�œ  A¡™œÑ&¨1­r¬v°b©z¬z©>Ñ:Ð:r   c                 ó`   — t          j        |d         |d         dz   |d         z  f¦  «        S )Nr   r   r   r   ©r   r   Úps      r   Úsl_funrC   7   s-   € ÝŒ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�D€A€qÝŒH�a˜˜A�YÑÔ€EØ€Eˆ$�KØ€Eˆ$�KØ�Q”4˜‘7�(€Eˆ$�KØ€Eˆ$�KåŒH�a˜˜A�YÑÔ€EØ€Eˆ$�KØ�q˜”t‘)˜a œdÑ"€Eˆ$�Kà�%ˆ<Ðr   c                 óf   — t          j        | d         |d         | d         |d         z
  f¦  «        S r*   r+   ©r.   r/   rB   s      r   Úsl_bcrL   J   s-   € ÝŒ9�b˜”e˜R œU B q¤E¨A¨a¬D¡LÐ1Ñ2Ô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   N   s`   € ÝŒh�vÑÔ€GØ€GˆD�MØ€GˆD�MåŒh�vÑÔ€GØ€GˆD�MåŒX�fÑÔ€FØ€Fˆ4�Là�G˜VÐ#Ð#r   c                 ó<   — t          j        |d         | z  ¦  «        S )Nr   )r   Úsin©r   rB   s     r   Úsl_solrW   \   s   € ÝŒ6�!�A”$˜‘(ÑÔÐr   c                 óN   — t          j        |d         |d         dz   f¦  «        S )Nr   r   é   r   r   s     r   Ú	emden_funrZ   `   s%   € ÝŒ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^   d   sS   € ÝŒH�a˜˜AœG AœJÐ'Ñ(Ô(€EØ€Eˆ$�KØ€Eˆ$�KØ�q˜”t˜Q‘w‘,€Eˆ$�KØ€Eˆ$�KØ€Lr   c                 óL   — t          j        | d         |d         dz
  g¦  «        S )Nr   r   çªLXèz¶ë?r4   r-   s     r   Úemden_bcra   m   s$   € ÝŒ8�R˜”U˜B˜qœE JÑ.Ð/Ñ0Ô0Ð0r   c                 ór   — 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   q   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                 óL   — t          j        | d         |d         dz
  g¦  «        S r*   r4   r-   s     r   Úundefined_bcrn   …   s#   € ÝŒ8�R˜”U˜B˜qœE A™IÐ&Ñ'Ô'Ð'r   c                 óP   — 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ˆ€c�FØ€Hr   c                 óX   — t          j        | d d d…         |d d d…         dz
  f¦  «        S )Nr   r   r+   r-   s     r   Úbig_bcrs   �   s/   € ÝŒ9�b˜˜˜1˜”g˜r # # A #œw¨™{Ð+Ñ,Ô,Ð,r   c                 óR   — 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ˆ€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ˆ€c�FØ�Œt�Q‰wˆh˜˜3˜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�D€A€qÝŒ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�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                 ó’   — 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   Ã   sG   € åŒ9�b˜˜˜1˜”g˜r # # A #œw¨¨1¬°°!´©°b¸´e¸aÀ¼d±lÐCÑDÔ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˜˜A™˜q�zÑ"Ô"€GÝŒh˜˜A™˜q�zÑ"Ô"€Gà-.€G�E�!�q‘&‰MŒM�5  A q™>œ>Ð)Ñ*Ø01€G�E�!�q‘&˜!ÑÔ�e A q¨!™nœnÐ,Ñ-åŒ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ƒ   Ú   s;   € åŒ9•b”f˜Q˜qœT A™XÑ&Ô&­¬¨q°¬t°a©xÑ(8Ô(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Ø	ˆ!ŒØ
ˆa�Œd‰(�S�2œ5 !™8‘^¥b¤f­R¬U°Q©YÑ&7Ô&7Ñ7Ñ
7Ý
Œ%�!‰)•b”f�RœU Q™YÑ'Ô'Ñ
'ñ(ð 	)Ø+.ñ	/ðñ ô ð r   c                 óL   — t          j        | d         dz   |d         g¦  «        S )Nr   r   r4   r-   s     r   Úshock_bcr‹   è   s#   € ÝŒ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�   ì   sN   € Ø
€CÝ
Œ��C‘ÑÔ€AÝŒ6•"”%˜!‘)ÑÔ�s 1 q¡5™zœz­C°°A±©J¬JÑ6Ñ6Ð6r   c                 ó^   — t          j        |d         t          j        | ¦  «        g¦  «        S )Nr   )r   Ústackrk   r   s     r   Únonlin_bc_funr’   ò   s%   € åŒ8�Q�q”T�2œ=¨Ñ+Ô+Ð,Ñ-Ô-Ð-r   c                 ó^  — | \  }}|\  }}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 q b¨¡e™}œ}Ñ,Ñ	-€BØ�˜‘Ñ€Dð 
ˆT‰�C‰€BØ	•”�q˜‘t‘”�rœv q b¨¡e™}œ}Ñ,Ñ	-€BØ��e‘Ñ€DåŒ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	¢¦  «         d S )
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 Q C™=œ=­"¬(°A°3©-¬-Ñ8Ô8€EÝ�u�bœhÐ'>Ð'>Ð'>Ñ?Ô?Ñ@Ô@Ð@å
ŒÐ"Ð"Ð"­%Ð0Ñ0Ô0€AÝ˜�2œ8 Q C­sÐ3Ñ3Ô3µR´X¸i¸i¸iÑ5HÔ5HÑIÔI€EÝ�uÐIÐIÐIÑJÔJÐJÐJÐ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 ¦  «         d S )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´M€ r   r˜   é
   r`   r•   c                 ó"   — t          | |¦  «        S ri   )rZ   rA   s      r   rº   z&test_compute_fun_jac.<locals>.<lambda>2  s   € µI¸aÀ±O´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˜Q”Z�Ñ!Ô!€AØ€A€a�DØ€A€a�DÝ
Œ�‰Œ€AÝ#Ð$AÐ$AÀ1ÀaÈÑKÔK�L€Eˆ5Ý˜1˜aÑ Ô €HÝ�E˜8Ñ$Ô$Ð$ÝˆE�TˆMÑÔÐå
Œ�A•r”u˜aÑ Ô €AÝ
Œ�!�Q”W˜Q”Z�Ñ!Ô!€AÝŒ6�!‰9Œ9€A€a�DÝŒ6�!‰9Œ9€A€a�DÝ
Œ�#�‰Œ€AÝ#¥F¨A¨q°!Ñ4Ô4�L€Eˆ5Ý# A q¨!Ñ,Ô,Ñ€HˆhÝ�E˜8Ñ$Ô$Ð$Ý�E˜8Ñ$Ô$Ð$å
Œ�A�q˜"ÑÔ€AÝ
Œ�!�Q”W˜Q”Z�Ñ!Ô!€AØ€A€a�DØ€A€a�DÝ
Œ�‰Œ€AÝ#Ð$CÐ$CÀQÈÈ1ÑMÔM�L€Eˆ5Ý˜Q Ñ"Ô"€HÝ�E˜8Ñ$Ô$Ð$ÝˆE�TˆMÑÔÐÐÐr   c                  ó´  — 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 ¦  «         d S )Ng      ð¿r   r–   rN   c                 ó"   — t          | |¦  «        S ri   ©r0   rK   s      r   rº   z%test_compute_bc_jac.<locals>.<lambda>=  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>P  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É   8  sÕ  € Ý	Œ�4˜�)Ñ	Ô	€BÝ	Œ�3˜�(Ñ	Ô	€BÝ
Œ�‰Œ€AÝ.Ø(Ð(¨"¨b°!ñ 5ô  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ô  7Ñ€GˆW�få)¨"¨bÑ1Ô1Ñ€J�
Ý�G˜ZÑ(Ô(Ð(Ý�G˜ZÑ(Ô(Ð(ÝˆF�dˆNÑÔÐÐÐr   c                  ó,  — d} d}d}t          | ||¦  «        \  }}t          t          j        |¦  «        ||ff¦  «                             ¦   «         }t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
¦  «        }t          ||¦  «         d S )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Ñ   W  sØ   € Ø	€AØ	€AØ	€AÝ˜q ! QÑ'Ô'�D€A€qÝ•B”L ‘O”O a¨ VÐ,Ñ-Ô-×5Ò5Ñ7Ô7€AÝŒ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          | ||||||||||||¦  «        }|                     ¦   «         }d	„ }t          j        || z  |z   || z  |z   f¦  «        }t          |dz
  ¦  «        D ]5} |||         |d         ¦  «        ||| z  |dz   | z  …|| z  |dz   | z  …f<   Œ6||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          | ||||||||||||¦  «        }|                     ¦   «         }t!          ||dd¬¦  «         d S )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Ø�‰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æ   l  sú  € Ø	€AØ	€AØ	€AÝ& q¨!¨QÑ/Ô/�L€Eˆ5Ý
Œ�A�q˜!ÑÔ€AÝ
Œ�‰
Œ
€AÝ
Œ	•2”6�"œ% !™)Ñ$Ô$¥b¤e­b¬fµR´U¸Q±YÑ.?Ô.?Ñ&?Ð@ÑAÔA€AÝ
Œ�#�‰Œ€Aåˆq�!�Q‰Œ€Aà��"�Œv˜˜a™Ñ€HØ�a˜˜˜˜3˜B˜3˜”i ! A A A q r r E¤(Ñ*Ñ+¨a°©c°Q°q°q°q¸!¸"¸"°u´XÀÀ!À!À!ÀSÀbÀSÀ&Ä	Ñ5IÑ.JÑJ€Hå˜a  AÑ&Ô&�L€Eˆ5Ý!+¨H°hÀÑ!BÔ!BÑ€L�,Ý(¨¨1¨1¨1¨a¨4¬°!°A°A°A°r°E´(¸AÑ>Ô>Ñ€GˆW�få˜Q  1 e¨U°A°u¸lØ" L°'¸7ÀFñ	Lô 	L€Aà	�	Š	‰Œ€Aðð ð õ ŒX�q˜1‘u˜q‘y ! a¡%¨!¡)Ð,Ñ-Ô-€FÝ�1�q‘5‰\Œ\ð Mð MˆØ9@¸ÀÀ1ÄÀqÈÄtÑ9LÔ9Lˆˆq�1‰u�q˜1‘u ‘kÐ! 1 q¡5¨1¨q©5°A©+Ð#5Ð5Ñ6Ð6à!" 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¸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Ô4�L€Eˆ5Ý!1µ&¸(ÀHÈaÑ!PÔ!PÑ€L�,Ý.­u°a¸¸¸¸1¸´g¸qÀÀÀÀBÀ¼xÈÑKÔKÑ€GˆW�fÝ˜Q  1 e¨U°A°u¸lØ" L°'¸7ÀFñ	Lô 	L€Aà	�	Š	‰Œ€AÝ�A�v D¨tÐ4Ñ4Ô4Ð4Ð4Ð4r   c            	      ó~  — 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          | ||¬¦  «         d S )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˜‰{Œ{Ð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˜Q”Z�Ñ!Ô!€AÝ•*�i¨¨b°!°Q¸1¸#Ð>Ñ>Ô>Ð>ðð ð õ •*�i¨¸"¸aÀÑCÔCÐCå
Œ�1�a�&�ÑÔ€AÝ•*�i­µ&¸!¸QÀ!ÐDÑDÔDÐDÐDÐ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¦  «         |                     |¦  «        }t!          |d         t#          |¦  «        d¬¦  «         t          ||¦  «        }|                     |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        dd¬¦  «         t!          |                     |j        d¦  «        |j        dd¬¦  «         �Œ°�Œ¾d S )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˜Q”Z�Ñ!Ô!€AØ�+Ð&ð Oñ OˆØ�ZÐ(ð 	Oñ 	OˆFÝ�G¥V¨Q°¸7Ø#)ð+ñ +ô +ˆCõ ˜œ QÑ'Ô'Ð'Ý�C”KÑ Ô Ð å˜œœ QÑ'Ô'Ð'à—w’w˜v‘”ˆHå˜H QœK­°©¬¸tÐDÑDÔDÐDå˜V XÑ.Ô.ˆFØ—’˜ Ñ"Ô" VÑ+ˆAØ˜1�rœv f™~œ~Ñ-Ñ.ˆGÝ”v˜g q™j¨qÐ1Ñ1Ô1°3Ñ6ˆHÝ•B”F˜8 dš?Ñ+Ô+Ñ,Ô,Ð,å•B”F˜3Ô,¨tÒ3Ñ4Ô4Ñ5Ô5Ð5Ý˜CŸGšG C¤E™NœN¨C¬E¸ÀEÐJÑJÔJÐJÝ˜CŸGšG C¤E¨1Ñ-Ô-¨s¬v¸EÈÐNÑNÔNÐNÑNñ+	Oð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	¬
¦  «         |                     |¦  «        }t!          |d         t'          |dg¦  «        d	d	¬¦  «         t          ||dg¦  «        }|                     |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        dd¬¦  «         t!          |                     |j        d¦  «        |j        dd¬¦  «         �ŒÒ�Œàd S )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˜aÑ Ô €AÝŒ[˜�BœE 3Ñ'Ô'€FÝ
Œ��A”G˜A”J�Ñ Ô €Aà�*Ð%ð Oñ OˆØ�YÐ'ð 	Oñ 	OˆFÝ�F¥E¨1¨a°C°5À'Ø#)ð+ñ +ô +ˆCõ ˜œ QÑ'Ô'Ð'Ý�C”KÑ Ô Ð å�C”E”J ’OÑ$Ô$Ð$å˜CœE A 3¨TÐ2Ñ2Ô2Ð2à—w’w˜v‘”ˆHå˜H QœK­°¸¸Ñ)<Ô)<Ø!%¨Dð2ñ 2ô 2ð 2õ ˜F H¨q¨cÑ2Ô2ˆFØ—’˜ Ñ"Ô" VÑ+ˆAØ˜1�rœv f™~œ~Ñ-Ñ.ˆGÝ”v˜g¨™l°Ð3Ñ3Ô3°sÑ:ˆHÝ•B”F˜8 dš?Ñ+Ô+Ñ,Ô,Ð,å•B”F˜3Ô,¨tÒ3Ñ4Ô4Ñ5Ô5Ð5Ý˜CŸGšG C¤E™NœN¨C¬E¸ÀEÐJÑJÔJÐJÝ˜CŸGšG C¤E¨1Ñ-Ô-¨s¬v¸EÈÐNÑNÔNÐNÑNñ1	Oð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¦  «         |                     |¦  «        }t!          |d         t#          |¦  «        d¬¦  «         t          ||¦  «        |                     |¦  «        |z  z   }|                     |d¦  «        |z
  }	|	dt          j        |¦  «        z   z  }
t          j        |
dz  d¬¦  «        dz  }t          t          j        |dk     ¦  «        ¦  «         t!          |                     |j        ¦  «        |j        dd¬¦  «         t!          |                     |j        d¦  «        |j        dd¬¦  «         �Œ �Œ®d S )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ˆØ�\Ð*ð 	Oñ 	OˆFÝ�I¥x°°A¸ÀGØ#)ð+ñ +ô +ˆCõ ˜œ QÑ'Ô'Ð'Ý�C”KÑ Ô Ð å˜œœ RÑ(Ô(Ð(à—w’w˜v‘”ˆHÝ˜H QœK­°6Ñ):Ô):ÀÐFÑFÔFÐFå˜v xÑ0Ô0°1·5²5¸±?´?ÀVÑ3KÑKˆFØ—’˜ Ñ"Ô" VÑ+ˆAØ˜1�rœv f™~œ~Ñ-Ñ.ˆGÝ”v˜g¨™l°Ð3Ñ3Ô3°sÑ:ˆHå•B”F˜8 dš?Ñ+Ô+Ñ,Ô,Ð,Ý˜CŸGšG C¤E™NœN¨C¬E¸ÀEÐJÑJÔJÐJÝ˜CŸGšG C¤E¨1Ñ-Ô-¨s¬v¸EÈÐNÑNÔNÐNÑNñ'	Oð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        ¦  «         |                     |¦  «        }t          |d         j        t#          |¦  «        d¬	¦  «         t          |d         j        t#          |¦  «        d¬	¦  «         t          ||¦  «        }|                     |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        dd¬¦  «         t          |                     |j        d¦  «        |j        dd¬¦  «         �Œé�Œ÷d S )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˜Q”Z�­Ð0Ñ0Ô0€AØ�+Ð&ð Oñ OˆØ�ZÐ(ð 	Oñ 	OˆFÝ�G¥^°Q¸À7Ø#)ð+ñ +ô +ˆCõ ˜œ QÑ'Ô'Ð'Ý�C”KÑ Ô Ð à—w’w˜v‘”ˆHå˜H QœKÔ,­g°f©o¬oÀDÐIÑIÔIÐIÝ˜H QœKÔ,­g°f©o¬oÀDÐIÑIÔIÐIå˜V XÑ.Ô.ˆFØ—’˜ Ñ"Ô" VÑ+ˆAØ˜1�rœv f™~œ~Ñ-Ñ.ˆGÝ”v�bœg gµ´¸Ñ0@Ô0@Ñ&@ÑAÔAØ#$ð&ñ &ô &Ø),ñ-ˆHå•B”F˜8 dš?Ñ+Ô+Ñ,Ô,Ð,å•B”F˜3Ô,¨tÒ3Ñ4Ô4Ñ5Ô5Ð5Ý˜CŸGšG C¤E™NœN¨C¬E¸ÀEÐJÑJÔJÐJÝ˜CŸGšG C¤E¨1Ñ-Ô-¨s¬v¸EÈÐNÑNÔNÐNÑNñ+	Oð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
         ¦  «         d S )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  7  sÍ   € Ý
Œ�A�q˜!ÑÔ€AÝ
Œ�!�Q”V�ÑÔ€AÝ
•G�V Q¨¨t¸qÐ
AÑ
AÔ
A€CÝ�”˜QÑÔÐÝ�”ˆOÑÔÐå
Œ�A�q˜!ÑÔ€AÝ
Œ�!�Q”V�ÑÔ€AÝ
•M¥<°°AÑ
6Ô
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
        ¦  «         |                     |¦  «        }t          |d         t          || ¦  «        ¦  «         t          ||¦  «        }|                     |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        d	d	¬
¦  «         t          |                     |j        d¦  «        |j        d	d	¬
¦  «         d S )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  E  s‘  € Ø
€AÝ
Œ�A�q˜!ÑÔ€AÝ
Œ�!�a‘%˜œ�Ñ!Ô!€AÝ
•G�V Q¨Ñ
*Ô
*€Cå�”˜QÑÔÐÝˆCŒKÑÔÐà�wŠw�q‰zŒz€Hå�H˜Q”K¥¨¨A¡¤Ñ/Ô/Ð/å�Q˜Ñ!Ô!€FØ�Š��1‰Œ˜Ñ€AØ�1•r”v˜f‘~”~Ñ%Ñ&€GÝŒv•b”g˜g­¬°Ñ(8Ô(8Ñ8Ñ9Ô9ÀÐBÑBÔBÀcÑI€HÝ�BŒF�8˜d’?Ñ#Ô#Ñ$Ô$Ð$å�BŒF�3Ô$ tÒ+Ñ,Ô,Ñ-Ô-Ð-Ý�C—G’G˜CœE‘N”N C¤E°¸EÐBÑBÔBÐBÝ�C—G’G˜CœE 1Ñ%Ô% s¤v°EÀÐFÑFÔFÐFÐFÐ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	¬
¦  «         |                     |¦  «        }t#          d| d¦  «        D ]c}t          ||         t%          |ddg¦  «        d         d	d	¬¦  «         t          ||dz            t%          |ddg¦  «        d         d	d	¬¦  «         Œdt          ||ddg¦  «        }	|                     |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        dd¬¦  «         t          |                     |j        d¦  «        |j        dd¬¦  «         �Œ�Œd S )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   ]  s‰  € Ø
€AÝ
Œ�A•r”u˜aÑ Ô €AÝŒ[˜�BœE 3Ñ'Ô'€FÝ
Œ��Q‘˜œ�Ñ Ô €AàÕ5Ð6ð Oñ OˆØÕ7Ð8ð 	Oñ 	OˆFÝÕ3Õ5KÈQØ # s °WÀVðMñ Mô MˆCõ ˜œ QÑ'Ô'Ð'Ý�C”KÑ Ô Ð å˜CœE A q 6°Ð5Ñ5Ô5Ð5à—w’w˜v‘”ˆHå˜a  A™œð 6ð 6�Ý ¨¤Ý 7¸ÀÀAÀÑ GÔ GÈÔ JØ%)°ð6ñ 6ô 6ð 6õ   ¨°©Ô 2Ý 7¸ÀÀAÀÑ GÔ GÈÔ JØ%)°ð6ñ 6ô 6ð 6ð 6õ -¨V°XÀÀ1¸vÑFÔFˆFØ—’˜ Ñ"Ô" VÑ+ˆAØ˜1�rœv f™~œ~Ñ-Ñ.ˆGÝ”v˜g¨™l°Ð3Ñ3Ô3°sÑ:ˆHÝ•B”F˜8 dš?Ñ+Ô+Ñ,Ô,Ð,å•B”F˜3Ô,¨tÒ3Ñ4Ô4Ñ5Ô5Ð5Ý˜CŸGšG C¤E™NœN¨C¬E¸ÀEÐJÑJÔJÐJÝ˜CŸGšG C¤E¨1Ñ-Ô-¨s¬v¸EÈÐNÑNÔNÐNÑNñ7	Oð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     ¦  «         |                     |¦  «        }t          |d         t          |¦  «        dd¬	¦  «         t          ||¦  «        }|                     |d¦  «        |z
  }|dt          j        |¦  «        z   z  }t          j        |dz  d¬
¦  «        dz  }t          t          j        |dk     ¦  «        ¦  «         t          |                     |j        ¦  «        |j        dd¬	¦  «         t          |                     |j        d¦  «        |j        dd¬	¦  «         d S )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$  ‚  s†  € Ý
Œ�B˜˜1ÑÔ€AÝŒ[˜˜Q Ñ$Ô$€FÝ
Œ�!�Q”V�ÑÔ€AÝ
•I�x¨¨AÑ
.Ô
.€Cå�”˜QÑÔÐÝˆCŒKÑÔÐåˆCŒEŒJ˜ÒÑÔÐà�wŠw�v‰Œ€HÝ�H˜Q”K¥¨6Ñ!2Ô!2¸ÀDÐIÑIÔIÐIå�v˜xÑ(Ô(€FØ�Š�˜ÑÔ˜VÑ#€AØ�1•r”v˜f‘~”~Ñ%Ñ&€GÝŒv�g ‘l¨Ð+Ñ+Ô+¨sÑ2€Hå�BŒF�8˜d’?Ñ#Ô#Ñ$Ô$Ð$Ý�C—G’G˜CœE‘N”N C¤E°¸EÐBÑBÔBÐBÝ�C—G’G˜CœE 1Ñ%Ô% s¤v°EÀÐFÑFÔFÐFÐFÐFr   c                  óp  — t          j        ddd¦  «        } | }t          j        d| j        g¦  «        }t	          t
          t          | |¦  «        }t          |j        d¦  «         t          |j
        ¦  «         t          |j        j        dk     ¦  «         |                     |¦  «        }t          |d         t          |¦  «        dd¬¦  «         t          ||¦  «        }|                     |d¦  «        |z
  }|dt          j        |¦  «        z   z  }t          j        |dz  d¬	¦  «        d
z  }t          t          j        |dk     ¦  «        ¦  «         t          |                     |j        ¦  «        |j        dd¬¦  «         t          |                     |j        d¦  «        |j        dd¬¦  «         d S )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&  š  sw  € Ý
Œ�A�s˜AÑÔ€AØ€FÝ
Œ�!�Q”V�ÑÔ€AÝ
•M¥<°°AÑ
6Ô
6€Cå�”˜QÑÔÐÝˆCŒKÑÔÐåˆCŒEŒJ˜ŠNÑÔÐà�wŠw�v‰Œ€HÝ�H˜Q”K¥¨vÑ!6Ô!6¸TÈÐMÑMÔMÐMå˜6 8Ñ,Ô,€FØ�Š�˜ÑÔ˜VÑ#€AØ�1•r”v˜f‘~”~Ñ%Ñ&€GÝŒv�g ‘l¨Ð+Ñ+Ô+¨sÑ2€Hå�BŒF�8˜d’?Ñ#Ô#Ñ$Ô$Ð$Ý�C—G’G˜CœE‘N”N C¤E°¸EÐBÑBÔBÐBÝ�C—G’G˜CœE 1Ñ%Ô% s¤v°EÀÐFÑFÔFÐFÐFÐFr   z3multithreaded sys.stdout parsing is not thread-safe)Úreasonc                  ó2  — t          j        ddd¦  «        } t          j        d| j        d         f¦  «        }dD ]Ü}t          j        }t          ¦   «         t          _        	 t          t          t          | ||¬¦  «        }t          j         
                    ¦   «         }|t          _        n# |t          _        w xY wt          |j        ¦  «         |dk    rt          | |¦  «         |dk    rt          d|v |¦  «         |dk    rt          d|v |¦  «         ŒÝd S )	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˜Q”Z�Ñ!Ô!€AØð 2ð 2ˆÝ”Zˆ
Ý‘Z”Z�Œ
ð	$Ý�G¥V¨Q°¸7ÐCÑCÔCˆCÝ”:×&Ò&Ñ(Ô(ˆDà#�CŒJˆJø˜�CŒJÐ#Ð#Ð#Ð#å�”ÑÔÐØ�aŠ<ˆ<Ý˜�H˜dÑ#Ô#Ð#Ø�aŠ<ˆ<Ý�K 4Ð'¨Ñ.Ô.Ð.Ø�aŠ<ˆ<Ý�N dÐ*¨DÑ1Ô1Ð1øð2ð 2s   Á!<B*Â*B8)Jr*  Úior   Ú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     s*  ðØ 
€
€
€
Ø Ð Ð Ð Ð Ð à Ð Ð Ð ð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )à *Ð *Ð *Ð *Ð *Ð *à #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ðCð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð €€€ð#ð #ð #ðð ð ð)ð )ð )ð.ð .ð .ð	ð 	ð 	ð;ð ;ð ;ð.ð .ð .ðð ð ð3ð 3ð 3ð$ð $ð $ðð ð ð'ð 'ð 'ðð ð ð1ð 1ð 1ð	ð 	ð 	ðð ð ðð ð ð(ð (ð (ðð ð ð-ð -ð -ðð ð ðð ð ð6ð ð ðEð Eð Eð
$ð $ð $ð$;ð ;ð ;ð
ð ð ð(ð (ð (ð7ð 7ð 7ð.ð .ð .ð
"ð "ð "ð&0ð 0ð 0ðKð Kð Kðð ð ð@ð ð ð>"ð "ð "ð*25ð 25ð 25ðjEð Eð Eð4Oð Oð Oð:Oð Oð OðBOð Oð Oð>Oð Oð Oð>ð ð ðGð Gð Gð0"Oð "Oð "OðJGð Gð Gð0Gð Gð Gð0 „×ÒÐ"WÐÑXÔXð2ð 2ñ YÔXð2ð 2ð 2r   