
    -iiC                     2   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	Z
d dl	mZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZm Z! d	 e
j        e"          j#        z  Z$ ee"          j#        Z%ej&        ej'        ej(        ej)        ej*        gZ+ej        gZ,e+e,z   Z-d
 Z.d Z/d Z0d Z1d Z2d Z3d Z4ed             Z5 G d d          Z6 G d de6          Z7 G d de6          Z8d Z9d Z:d Z; G d d          Z<d Z=d Z>d Z?d  Z@d! ZAd" ZBejC        D                    d#d$ejE        fd%ejF        fg          d&             ZGd' ZHejC        D                    d(g d)          d*             ZIejC        D                    d+g d)          d,             ZJejC        D                    d(g d)          ejC        D                    d-d.d/g          d0                         ZKd1 ZLejC        D                    d(g d)          ejC        D                    d-d.d/g          d2                         ZMd3 ZNd4 ZOejC        D                    d+e-          d5             ZPejC        D                    d+ej&        ej'        ej(        ej)        g          d6             ZQdS )7    N)	lru_cache)assert_assert_allcloseassert_equalassert_array_equal)finfopowernanisclosesqrtexpsincos)optimize)	_zeros_pynewtonroot_scalarOptimizeResult)getfullargspec_no_self)	get_tests	functions   c                     | dz  d| z  z
  dz
  S N       xs    e/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_zeros.pyf1r!   "   s    6AE>A    c                     d| z  dz
  S Nr   r   r   s    r    f1_1r%   &   s    q519r"   c                     dd| z  z   S N       @r   r   r   s    r    f1_2r)   *   s    Q;r"   c                 Z    t          |           t          |           t          |           fS N)r!   r%   r)   r   s    r    f1_and_p_and_ppr,   .   s!    a55$q''477""r"   c                 @    t          |           t          |           z
  S r+   r   r   r   s    r    f2r/   3       q66CFF?r"   c                 @    t          |           t          |           z   S r+   )r   r   r   s    r    f2_1r2   7   r0   r"   c                 @    t          |           t          |           z   S r+   r.   r   s    r    f2_2r4   ;   r0   r"   c                     | S r+   r   r   s    r    f_lrucachedr6   @   s    Hr"   c                       e Zd Zd ej        e          j        z  Zd ej        e          j        z  Z	 	 ddZ	ddZ
	 	 ddZdS )TestScalarRootFindersr   Nc           	         g }|pg D ];}||vrdddd                     ||          }|                    ||                    <t          d
i |}|                    ddd           |pg D ]}||         ||<   |                     d          }	|                     d	d
          }
	  ||d	|
i|\  }}|	||fS # t          $ r- |	t          j        t          ddt
          j        |          |fcY S w xY w)Nx0x1f)abfuncTFfull_outputdisprootargsr   )	getappenddictupdate	ExceptionzerosRootResultsr
   
_EVALUEERR)selftcmethodsig_args_keyssig_kwargs_keyskwargsmethod_argskmethod_kwargsrC   	func_argsrrrs                r    _run_one_testz#TestScalarRootFinders._run_one_testK   sH   $" 	& 	&A{{T377;;AqAAr!u%%%%vT5AABBB &B 	% 	%A!!uM!vvf~~FF62&&		VFKIiI=IIEArR< 	V 	V 	V*3B8H&QQSUUUUU	Vs   %B7 74C.-C.c                 $    t                    }t          |j                    t          |j                  }t          |j                  |z
  }|j        d|         g dv r=dv r.                    d           dv r                    d            j        d<   n j        d<    j        d	<    fd
|D             }	pg d |	D             }
fd|
D             }
d |
D             }t          t          |          |gdg g            j         j        d} |j
        di  |d	         |                    d|d                   d |	D             }d |D             }d |D             }fdt          |||          D             }d |D             }d t          ||          D             }t          |t          |          gg dg           d |	D             }fd|	D             }t          ||           dS )zRun test-cases using the specified method and the supplied signature.

        Extract the arguments for the method call from the test case
        dictionary using the supplied keys for the method's signature.N)secantr   halley)r   r]   fprime)r]   fprime2tolxtolrtolc           
      N    g | ]!}t           j        |fd           "S ))rQ   rR   )listrZ   ).0rO   rS   rP   rN   rQ   rR   s     r    
<listcomp>z3TestScalarRootFinders.run_tests.<locals>.<listcomp>|   sh     I I I<> **7&3+7 7/57 7 8 8 I I Ir"   c                 ,    g | ]}|d          j         |S r   	convergedre   elts     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s$    BBB3Q1AB3BBBr"   c                 4    g | ]}|d          d         v|S rE   IDr   )re   rl   
known_fails     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s+    MMM3SWT]*-L-L3-L-L-Lr"   c                 *    g | ]}|d          d         S rn   r   rk   s     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s     999#B999r"   r   ra   rb   c                 ,    g | ]}|d          j         |S rh   ri   rk   s     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s$    ;;;#a&*:;;;;r"   c                 (    g | ]}|d          j         S rh   )rC   rk   s     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s    ...##a&+...r"   c                     g | ]
}|d          S r   r   rk   s     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s    ***c3q6***r"   c                 j    g | ]/\  }}}t          ||           s|d         d         v)|g|z   0S ))rb   atolrE   ro   )r   )re   r=   crl   rx   rp   rb   s       r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   sZ     9 9 9)!Q14d;;;9BZ77 C#I777r"   c           
      v    g | ]6\  }}}} |d          |g|                     dt                                R  7S )r<   rD   )rF   tuple)re   arootry   fulloutrO   s        r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   sX     6 6 6(5!Wb r#wu7rvvfegg66777 6 6 6r"   c                 ,    g | ]\  }}|d k    |g|z   S rv   r   )re   fvrl   s      r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s'    LLL72sB!GGRD3JGGGr"   c                 (    g | ]}|d          j         S rh   )rP   )re   results     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s    EEE6fQi.EEEr"   c                     g | ]}S r   r   )re   _names     r    rf   z3TestScalarRootFinders.run_tests.<locals>.<listcomp>   s    111A4111r"   r   )_getfullargspecr   
kwonlyargslendefaultsrD   rG   ra   rb   r   rI   rF   zip)rN   testsrP   r   rp   rS   sig	nDefaults	nRequiredresultsnotcvgdnotcvged_IDStolscvgdapproxcorrectnotclosefvsmethod_from_resultexpected_methodrx   rb   rQ   rR   s   ` ````              @@@@r    	run_testszTestScalarRootFinders.run_testsb   s    f%%CN"###%%	MMI-	),111+++&&x000:%%#**9555 IF5MM!YF6N!YF6NI I I I I I I IBGI I I
  %2
BB'BBBMMMM'MMM99999c,''6B@@@ 	4955fF|xxtF|,,;;w;;;.....**T***9 9 9 9 9 9s67D/I/I 9 9 96 6,46 6 6LLc#x.@.@LLLhH.Q888EEWEEE1111111'99999r"   c                 L    t          ||          } | j        |||fd|i| dS )zuRun a collection of tests using the specified method.

        The name is used to determine some optional arguments.
smoothnessrp   N)r   r   )rN   
collectionrP   r   r   rp   rS   r   s           r    run_collectionz$TestScalarRootFinders.run_collection   s?    
 *<<<ufdLLzLVLLLLLr"   )NNr+   )__name__
__module____qualname__npr   floatepsra   rb   rZ   r   r   r   r"   r    r8   r8   E   s         xrx""Dxrx""D6:&*V V V V.9: 9: 9: 9:v CG"&M M M M M Mr"   r8   c                      e Zd Zej                            de          ej                            de          d                         Zej                            de          ej                            de          d                         Z	ej                            de          ej                            de          d                         Z
ej                            de          d             Zej                            dej        ej        ej        g          d             Zej                            de          d             Zd	 Zd
S )TestBracketMethodsrP   functionc                     dt          d          }}t          ||j        ||g|| j        | j                  }|j        sJ t          |j        d| j        | j                   |j        |j        k    sJ d S N      ?   )rP   bracketr:   ra   rb         ?rx   rb   )	r   r   r   ra   rb   rj   r   rC   rP   rN   rP   r   r=   r>   rX   s         r    test_basic_root_scalarz)TestBracketMethods.test_basic_root_scalar   s     47711a&Q!YTY8 8 8{$)$)DDDDx6?******r"   c                     dt          d          }} ||||| j        | j        d          \  }}|j        sJ t	          |d| j        | j                   d S )Nr   r   T)ra   rb   rA   r   r   )r   ra   rb   rj   r   )rN   rP   r   r=   r>   rC   rX   s          r    test_basic_individualz(TestBracketMethods.test_basic_individual   so     4771&1adidi%)+ + +a {c		BBBBBBr"   c                    dt          d          }}t          ||j        t          j        ||g          || j        | j                  }|j        sJ t          |j	        d| j        | j                   |j
        |j        k    sJ d S r   )r   r   r   r   arrayra   rb   rj   r   rC   rP   r   s         r    test_bracket_is_arrayz(TestBracketMethods.test_bracket_is_array   s     4771 "!Q 0 0QTY!Y( ( ( {$)$)DDDDx6?******r"   c                 B    |                      d||j        d           d S )Napsr   r   )r   r   )rN   rP   s     r    test_aps_collectionz&TestBracketMethods.test_aps_collection   s'    E66?qIIIIIr"   c                 l    |t           j        k    rdhni }|                     d||j        |           d S )Nzfun7.4chandrupatla)rp   )rK   ridderr   r   )rN   rP   rp   s      r    test_chandrupatla_collectionz/TestBracketMethods.test_chandrupatla_collection   sM     $*U\#9#9hZZr
NFFO'1 	 	3 	3 	3 	3 	3r"   c                 p    d\  }} |t           ||d          \  }}|j        sJ t          |d           d S )N)rE   r   TrA   r   )r6   rj   r   )rN   rP   r=   r>   rC   rX   s         r    test_lru_cached_individualz-TestBracketMethods.test_lru_cached_individual   sM     1&a===a{a     r"   c                     t          j        t          d          5  t          j        d ddd           d d d            d S # 1 swxY w Y   d S )Nzmaxiter must be >= 0matchc                     | dz  dz
  S r   r   r   s    r    <lambda>z2TestBracketMethods.test_gh_22934.<locals>.<lambda>       1a4!8 r"   r   rE   maxiter)pytestraises
ValueErrorrK   brentqrN   s    r    test_gh_22934z TestBracketMethods.test_gh_22934   s    ]:-CDDD 	@ 	@L++RB????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA
AN)r   r   r   r   markparametrizebracket_methodststutils_functionsr   r   r   r   rK   bisectr   toms748r   r   r   r   r"   r    r   r      s       [X77[Z);<<
+ 
+ =< 87
+ [X77[Z);<<	C 	C =< 87	C [X77[Z);<<+ + =< 87+ [X77J J 87J [Xel(-(7 8 83 38 83
 [X77! ! 87!@ @ @ @ @r"   r   c                   &   e 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ej                            d e            ddig          d             Zej                            dddg          d             Zd ZdS )
TestNewtonc                 l    dg}|ddgz  }dD ]&}|                      |t          j        dd|           'd S )N	aps.13.00z	aps.12.05	aps.12.17r   complexr   r   r   rp   r   rK   r   rN   rp   r   s      r    test_newton_collectionsz"TestNewton.test_newton_collections   sh    !]
{K00
, 	E 	EJ
EL(+,   E E E E	E 	Er"   c                 `    g d}dD ]&}|                      |t          j        dd|           'd S )N)z	aps.12.06z	aps.12.07z	aps.12.08z	aps.12.09z	aps.12.10z	aps.12.11z	aps.12.12z	aps.12.13z	aps.12.14z	aps.12.15z	aps.12.16r   z	aps.12.18r   r   r]   r   r   r   r   s      r    test_halley_collectionsz"TestNewton.test_halley_collections   se    0 0 0
 - 	E 	EJ
EL(+,   E E E E	E 	Er"   c                    t           t          t          ft          t          t
          ffD ]\  }}}t          j        |dd          }t           ||          dd           t          j        |ddd          }t           ||          dd           t          j        |d|d          }t           ||          dd           t          j        |d||d	          }t           ||          dd           d S )
Nr   ư>r`   r   rx      )r;   r`   )r^   r`   )r^   r_   r`   )	r!   r%   r)   r/   r2   r4   rK   r   r   )rN   r<   f_1f_2r   s        r    test_newtonzTestNewton.test_newton   s   t,r4.>? 	0 	0KAsCQt,,,AAAaDD!$////QaT222AAAaDD!$////Q#4888AAAaDD!$////Q#sEEEAAAaDD!$/////	0 	0r"   c                    t           t          t          ft          t          t
          ffD ]:\  }}}t          |dd|d          }t           ||j                  dd           ;t           t          t          ft          t          t
          ffD ]9\  }}}t          |ddd          }t           ||j                  dd           :dS )	z#Invoke newton through root_scalar()r   r   r   )rP   r:   r^   ra   r   r   rP   r:   ra   N	r!   r%   r)   r/   r2   r4   r   r   rC   rN   r<   r   r   rX   s        r    test_newton_by_namezTestNewton.test_newton_by_name  s    t,r4.>? 	5 	5KAsCAh1StLLLAAAafIIqt44444t,r4.>? 	5 	5KAsCAh14@@@AAAafIIqt44444	5 	5r"   c                    t           t          t          ft          t          t
          ffD ]n\  }}}t          |dddd          }t           ||j                  dd           t          |dddd          }t           ||j                  dd           ot           t          t          ft          t          t
          ffD ]9\  }}}t          |ddd	          }t           ||j                  dd           :d
S )z#Invoke secant through root_scalar()r\   r   r   r   rP   r:   r;   ra   r   r   r   r   Nr   r   s        r    test_secant_by_namezTestNewton.test_secant_by_name  s   t,r4.>? 	5 	5KAsCAh1FFFAAAafIIqt4444Ah1FFFAAAafIIqt44444t,r4.>? 	5 	5KAsCAh14@@@AAAafIIqt44444	5 	5r"   c           	          t           t          t          ft          t          t
          ffD ];\  }}}t          |dd||d          }t           ||j                  dd           <dS )z#Invoke halley through root_scalar()r]   r   r   )rP   r:   r^   r_   ra   r   r   Nr   r   s        r    test_halley_by_namezTestNewton.test_halley_by_name  sz    t,r4.>? 	5 	5KAsCAh1#&$@ @ @AAAafIIqt44444	5 	5r"   c                 T   d}t          j        t          |          5  t          t          dt
          dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          t          dt          dd           d d d            d S # 1 swxY w Y   d S )	Nz$fprime2 must be specified for halleyr   r]   r   r   )rP   r^   r:   ra   z#fprime must be specified for halley)rP   r_   r:   ra   )r   r   r   r   r!   r%   r)   )rN   messages     r    test_root_scalar_failz TestNewton.test_root_scalar_fail!  sF   8]:W555 	K 	K8DQTJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K7]:W555 	L 	L8TadKKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Ls#   A		AA1BB!$B!c                    d }d }d }t          j        g d          }t          j        t          d                    dz   dz  }||dd	dd
f}dgdz  }t	          j        ||||          }d}	t          ||	           t	          j        |||||          }t          ||	           t	          j        |||          }t          ||	           dS )ztest newton with arrayc                     |d         | |d         z  z   }|d         |d         t          j        ||d         z            dz
  z  z
  ||d         z  z
  | z
  S )Nr   r   r   r   r   r   r   r   r   r   r=   r>   s      r    r!   z(TestNewton.test_array_newton.<locals>.f1,  sX    !q1Q4xAQ4!A$"&QqT"2"2S"899A!HDqHHr"   c                     |d         |d         z  }|d          t          j        |d         |d         z  | |z  z             z  |z  |d         |d         z  z
  dz
  S )Nr   r   r   r   r   r   r   r   s      r    r%   z*TestNewton.test_array_newton.<locals>.f1_10  s^    !qtAaD526!A$1+A"5666:QqTAaD[H1LLr"   c                     |d         |d         z  }|d          t          j        |d         |d         z  | |z  z             z  |dz  z  S )Nr   r   r   r   r   r   s      r    r)   z*TestNewton.test_array_newton.<locals>.f1_24  sL    !qtAaD526!A$1+A"5666A==r"   )
g4O@gNk@g]0J@g]Qݚt@g~EO5@g$J ?g~5,@gXCڭ@gͮ9@@gӍ@
   r   g      @&.>Mbp?n2d?)
gԩ˰@g9~4b'@gaq(@g0p@gk"z?g4se?gU+F@gwQu%@gd6)@g)i!@)r_   rD   N)r   r   r   rangerK   r   r   )
rN   r!   r%   r)   a0a1rD   r:   r   
x_expecteds
             r    test_array_newtonzTestNewton.test_array_newton)  s   	I 	I 	I	M 	M 	M	> 	> 	> X 
 
 
   fU2YY#%,Bub'2URZLRt,,

 	:&&&LRtT::::&&&LRd+++:&&&&&r"   c                    d }d }t          j        dd          }t          j        |||          }t	           ||          d           t          j        d          }t          j        |||          }t	           ||          d           t          j        ||          }t	           ||          d           d S )Nc                     | dz   dz   S )Nr                 ?r   r   s    r    r<   z/TestNewton.test_array_newton_complex.<locals>.fQ  s    q58Or"   c                     dS Nr   r   r   s    r    r^   z4TestNewton.test_array_newton_complex.<locals>.fprimeT  s    3r"   r   r	  )r^           )r   fullrK   r   r   ones)rN   r<   r^   tr   s        r    test_array_newton_complexz$TestNewton.test_array_newton_complexP  s    	 	 		 	 	 GArNNLAf---!b!!! GAJJLAf---!b!!!LA!b!!!!!r"   c                     t          j        d ddgt          j        ddg          g          }t	          |d           dS )	z8test secant doesn't continue to iterate zero derivativesc                     | | z  |d         z
  S )Nr   r   r   r=   s     r    r   z>TestNewton.test_array_secant_active_zero_der.<locals>.<lambda>e  s    qsQqTz r"   gˡE}@r         r:   rD   )f~@g      @N)rK   r   r   r   r   rN   r   s     r    !test_array_secant_active_zero_derz,TestNewton.test_array_secant_active_zero_derc  sO    L11uaj!xR1124 4 4344444r"   c                     t          j        d dgdz  ddgf          }t          |d           t          j        d d	gdz  d
dgf          }t          |d           d S )Nc                     || dz  z
  S r$   r   yzs     r    r   z7TestNewton.test_array_newton_integers.<locals>.<lambda>k      a!q&j r"         @r   g      .@g      1@r  )gNO@r  c                     || dz  z
  S r$   r   r  s     r    r   z7TestNewton.test_array_newton_integers.<locals>.<lambda>o  r  r"   r      r  )rK   r   r   r  s     r    test_array_newton_integersz%TestNewton.test_array_newton_integersi  s}    L003%!) $d|o/ / /ABBBL001#'"bLLLABBBBBr"   c                    t          j        t                    5  t          j        d ddgd            d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d ddgd d          }t          |j        d           |j                                        sJ |j	        
                                rJ 	 d d d            d S # 1 swxY w Y   d S )	Nc                     | dz  dz
  S r$   r   r  s    r    r   z@TestNewton.test_array_newton_zero_der_failures.<locals>.<lambda>u  r   r"   r  c                     d| z  S r$   r   r&  s    r    r   z@TestNewton.test_array_newton_zero_der_failures.<locals>.<lambda>u  s
    Q r"   c                     | dz  dz
  S r$   r   r&  s    r    r   z@TestNewton.test_array_newton_zero_der_failures.<locals>.<lambda>x  s    QTAX r"   c                     d| z  S r$   r   r&  s    r    r   z@TestNewton.test_array_newton_zero_der_failures.<locals>.<lambda>y  s
    QqS r"   Tr   r   )r   warnsRuntimeWarningrK   r   r   rC   zero_derallrj   any)rN   r   s     r    #test_array_newton_zero_der_failuresz.TestNewton.test_array_newton_zero_der_failuresr  s   \.)) 	H 	HL++b"XGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H \.)) 	/ 	/l#5#5Bx#0=dD D DGGL!,,,#'')))))(,,......	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   AAA%A(CC"Cc                    d }d }d }d }t          |dd|          }t          |ddd          }t          |j        |j        d	
           t          d|j        z  |j                   t          |dd||          }t          |ddd          }t          |j        |j        d	
           t          d|j        z  |j                   d S )Nc                     | dz  d| z  z
  dz
  S r   r   r   s    r    r!   z+TestNewton.test_newton_combined.<locals>.f1  s    6AE>A%%r"   c                     d| z  dz
  S r$   r   r   s    r    r%   z-TestNewton.test_newton_combined.<locals>.f1_1  s    q519r"   c                     dd| z  z   S r'   r   r   s    r    r)   z-TestNewton.test_newton_combined.<locals>.f1_2  s    Q;r"   c                 0    | dz  d| z  z
  dz
  d| z  dz
  dfS )Nr   r   r(   r   r   s    r    r,   z8TestNewton.test_newton_combined.<locals>.f1_and_p_and_pp  s'    a4!A#:a<1Q++r"   r   r   )rP   r:   r^   T:0yE>r   r   r]   )rP   r:   r^   r_   )rP   r:   r_   )r   r   rC   r   function_calls)rN   r!   r%   r)   r,   sol0sols          r    test_newton_combinedzTestNewton.test_newton_combined~  s   	& 	& 	&	 	 		 	 		, 	, 	, 2h1TBBB/(qNNN	38$7777Qs))4+>???2h1T4PPP/(q$OOO	38$7777Qs))4+>?????r"   c                 ^   d}g d}t          d          D ]}ddd}dt          gdt          ggd |         D ]
\  }}|||<   t          j        t
          |fdd	i|\  }}	t          |	j                   t          ||	j	                   t          |	j
        |	j        f||                    |d
k    r|	j        |	j
        dz   k    sJ n t          |	j        |dz   |	j
        z             |	j
        dz
  }
t          j        t
          |f|
d	d|\  }}	t          |	j                    t          ||	j	                   t          |	j
        |
           |dk    rWd|
 d}t          j        t          |          5  t          j        t
          |f|
dd|\  }}	d d d            n# 1 swxY w Y   d S )Nr   ))      )r   r   )r   	   r   T)r`   rA   r^   r_   rB   Fr   r   )r   rB   zFailed to converge after z iterations, value is .*r   )r  r%   r)   rK   r   r!   r   rj   r   rC   
iterationsr6  r   r   RuntimeError)rN   capsysr:   expected_countsderivsrS   rU   vr   rX   itersmsgs               r    test_newton_full_outputz"TestNewton.test_newton_full_output  sF   
 333Ahh 	T 	TF!$99F"D)It+<=gvgF  1q		<B==U=f==DAqAK   AF###!,(89?6;RSSS{{'1<!+;;;;;;Q-
al/JKKK L1$E<BLELLVLLDAqO$$$AF###u---{{ R%QQQ]<s;;; T T <BSDSSFSSDAqT T T T T T T T T T T T T T T3	T 	Ts   5F  F$	'F$	c                 8   d }d }t          j        t                    5  t          j        |d|d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        |d|           d d d            d S # 1 swxY w Y   d S )Nc                     | dz  dz
  S )Nr   r(   r   r   s    r    r?   z0TestNewton.test_deriv_zero_warning.<locals>.func  s    6C<r"   c                     d| z  S r$   r   r   s    r    dfuncz1TestNewton.test_deriv_zero_warning.<locals>.dfunc  s    q5Lr"   r  FrB   zDerivative was zeror   )r   r*  r+  rK   r   r   r?  )rN   r?   rJ  s      r    test_deriv_zero_warningz"TestNewton.test_deriv_zero_warning  s,   	  	  	 	 	 	\.)) 	7 	7LsE6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7]</DEEE 	+ 	+LsE***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s#   AA	A	+BBBc                     t          j        ddg          }|                                }t          t           j        |t           j                   t          ||           d S )N皙?r   )r   r   copyr   r   r   r   )rN   r:   x0_copys      r    test_newton_does_not_modify_x0z)TestNewton.test_newton_does_not_modify_x0  sN    XsAh''))rvr26"""2w'''''r"   c                    d }t          |ddd          }t          |dddd          }t          |dddd	
          d         }t           ||j                  dd           |j        j        t                      k    sJ t           ||j                  dd           |j        j        t                      k    sJ t           ||j                  dd           |j        j        t                      k    sJ |j        |j        cxk    r|j        k    sn J |j        |j        dz
  cxk    r&|j        cxk    r|j        cxk    r|j        dz  k    sn J d S )Nc                 L    t          j        |           sJ t          |           S r+   )r   isscalarr!   r   s    r    r<   z+TestNewton.test_gh17570_defaults.<locals>.f  s!    ;q>>!!!a55Lr"   r   r   r   r   r\   r   r   T)r:   r;   r`   rA   r   r   r   )r   r   r   rC   shaper{   r>  r6  )rN   r<   res_newton_defaultres_secant_default
res_secants        r    test_gh17570_defaultsz TestNewton.test_gh17570_defaults  s   	 	 	 )8MMM(8a.24 4 4 A!tFFFqI
 	,122ADAAAA!&,7777,122ADAAAA!&,7777*/**AD9999$//// #'?1 1 1 1%01 1 1 1 1 1 #-%4q87 7 7 7(7 7 7 7 &07 7 7 7 &4Q6	7 7 7 7 7 7 7 7r"   rS   rP   r   c                 r    d }t          j        |fddd|}|j        sJ t          |j        d           d S )Nc                 2    |dk    sJ |dk    sJ | |z  |z
  S )Nr   r   r   r   s      r    r<   z'TestNewton.test_args_gh19090.<locals>.f  s*    66666666FQJr"   r   )r   r   r  r   )r   r   rj   r   rC   )rN   rS   r<   ress       r    test_args_gh19090zTestNewton.test_args_gh19090  sX    	  	  	 
 "1BBB6BB}!$$$$$r"   r\   c                     d }t          j        |d|          }|j        sJ t          t	          |j                  d           |j        j        t          j        t          j                  k    sJ d S )Nc                     | dz  dz
  S )Nr   r   r   r   s    r    r<   z)TestNewton.test_int_x0_gh19280.<locals>.f  s    b519r"   r   )r:   rP   g;f?)	r   r   rj   r   absrC   dtyper   float64)rN   rP   r<   r\  s       r    test_int_x0_gh19280zTestNewton.test_int_x0_gh19280  sw    
	 	 	 "16:::}CHw///x~"*!5!5555555r"   c                    t          j        t          d          5  t          j        t
          dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t
          ddd	           d d d            n# 1 swxY w Y   t          j        t          d
          5  t          j        t
          dd           d d d            d S # 1 swxY w Y   d S )Nztol too smallr   r   ưr   zmaxiter must be greater than 0r   i)r`   r   zx1 and x0 must be different)r;   )r   r   r   rK   r   r!   r   s    r    test_newton_special_parametersz)TestNewton.test_newton_special_parameters  s    ]:_=== 	+ 	+LQE****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]:-MNNN 	7 	7LQD#6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 ]:-JLLL 	& 	&LQ1%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s5   AA	A	+BBB;C%%C),C)N)r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r/  r9  rF  rL  rQ  rY  r   r   r   rH   r]  rc  rf  r   r"   r    r   r      s       E E EE E E	0 	0 	05 5 5	5 	5 	55 5 5L L L%' %' %'N" " "&5 5 5C C C
/ 
/ 
/@ @ @*"T "T "TH+ + +( ( ( 8  8  8D [X80D'EFF% % GF% [X(';<<6 6 =<6
& 
& 
& 
& 
&r"   r   c            	          dfd} t           j        t           j        g}t          x}}|D ].} || dd||          }t	          |||d|j                    /d S )NrN  c                     | z
  S r+   r   r   rC   s    r    r<   ztest_gh_5555.<locals>.f      4xr"       ח    cArr   zmethod )rx   rb   err_msg)rK   r   r   TOLr   r   )r<   methodsra   rb   rP   r\  rC   s         @r    test_gh_5555rp    s    D     |U\*GD4 = =fQc4888c4 ;&/ ; ;	= 	= 	= 	= 	== =r"   c                      d } d}dt           z  }t          j        t          j        g}|D ]%} || dd||          }t	          d|||           &d S )	Nc                     | dk     rdS | dz
  S )Nr   g333333?r   r   s    r    r<   ztest_gh_5557.<locals>.f(  s    s774s7Nr"   gRQ?r   r   r   rr   rs  r   )
_FLOAT_EPSrK   r   brenthr   )r<   rx   rb   ro  rP   r\  s         r    test_gh_5557rv    s|       Dz>D|U\*G 8 8fQ14d333St$777778 8r"   c                      d} d}| |fD ]U\  }}}t          j        |          t          j        t          j        fD ]"} |fd||          }t          ||           #Vd S )N)g      |g     ug      y)g     u@g      |@g      y@c                 2    t          j        |           z
  S r+   r   )r   ry   s    r    r   z9test_brent_underflow_in_root_bracketing.<locals>.<lambda>A  s    26!99Q; r"   )r   r   rK   ru  r   r   )underflow_scenariooverflow_scenarior=   r>   rC   rP   r\  ry   s          @r    'test_brent_underflow_in_root_bracketingr{  6  s    
 2-)+<= ' '
1dF4LL|U\2 	' 	'F&....155CD#&&&&	'' 'r"   c                   D    e Zd Z ej        ddddd          Zd Zd Zd	S )
TestRootResultsr   ,   .   r   r   )rC   r>  r6  flagrP   c                 N    d}t          t          | j                  |           d S )Nz      converged: True
           flag: converged
 function_calls: 46
     iterations: 44
           root: 1.0
         method: newton)r   reprrX   )rN   expected_reprs     r    	test_reprzTestRootResults.test_reprI  s*    I 	T$&\\=11111r"   c                 >    t          | j        t                    sJ d S r+   )
isinstancerX   r   r   s    r    	test_typezTestRootResults.test_typeO  s     $&.1111111r"   N)r   r   r   rK   rL   rX   r  r  r   r"   r    r}  r}  E  sV        sr"1!)	+ 	+ 	+A2 2 22 2 2 2 2r"   r}  c                     d } d }d }t          dd          }d}t          j        | ||||d          }t           | |g|R  d	d
           |gdz  }d}t          j        | ||||d          }t           | |g|R  d	d
           dS )z&Test Halley's works with complex rootsc                 H    |d         | dz  z  |d         | z  z   |d         z   S )Nr   r   r   r   r  s     r    r<   ztest_complex_halley.<locals>.fU  s*    tad{QqTAX%!,,r"   c                 0    d|d         z  | z  |d         z   S )Nr   r   r   r   r  s     r    r   z test_complex_halley.<locals>.f_1X  s    1Q4x!|ad""r"   c                 h    d|d         z  }	 t          |           }|g|z  S # t          $ r |cY S w xY w)Nr   r   )r   	TypeError)r   r=   retvalsizes       r    r   z test_complex_halley.<locals>.f_2[  sS    QqT	#q66D 8d?"  	 	 	MMM	s   " 11r   r(   )r(   g      @r   r   )rD   r^   r_   r`   r   r   r   N)r   rK   r   r   )r<   r   r   r  coeffsr  s         r    test_complex_halleyr  S  s    - - -# # ## # # 	SAFQsCTJJJAAAaM&MMM140000	
bAFQsCTJJJAAAaM&MMM14000000r"   c                 6   t          j        t                    j        dz  }d|z
  d|z   z  }t	          j                    5  t	          j        ddt                     t          j	        d |gdz            }d	d	d	           n# 1 swxY w Y   t          |d
gdz             d}t	          j                    5  t	          j        ddt                     t          j	        d |d          }d	d	d	           n# 1 swxY w Y   t          |d           t          j        t          d          5  t          j	        d |d          }d	d	d	           n# 1 swxY w Y   d}t	          j                    5  t	          j        ddt                     t          j	        d |d          }d	d	d	           n# 1 swxY w Y   t          |d           t          j        t          d          5  t          j	        d |d          }d	d	d	           d	S # 1 swxY w Y   d	S )zBTest secant method with a non-zero dp, but an infinite newton stepgQ?g      i@r(   ignorezRMS ofc                     | dz
  dz  S )Ng      Y@r   r   r&  s    r    r   z%test_zero_der_nz_dp.<locals>.<lambda>|  s    AI> r"   r   r:   Nd   g.ЗK.?Tolerance ofc                     | dz
  dz  S Nr   r   r   r&  s    r    r   z%test_zero_der_nz_dp.<locals>.<lambda>      AG> r"   F)r:   rB   r   r   c                     | dz
  dz  S r  r   r&  s    r    r   z%test_zero_der_nz_dp.<locals>.<lambda>  r  r"   Tg.ЗK.c                     | dz   dz  S r  r   r&  s    r    r   z%test_zero_der_nz_dp.<locals>.<lambda>  r  r"   rE   c                     | dz   dz  S r  r   r&  s    r    r   z%test_zero_der_nz_dp.<locals>.<lambda>  r  r"   )r   r   r   r   warningscatch_warningsfilterwarningsr+  rK   r   r   r   r   r?  )r@  dxp0r   s       r    test_zero_der_nz_dpr  o  s    
%		$B "*r	"B		 	"	" A A(NCCCL11rdRi@@@A A A A A A A A A A A A A A A Aurz"""	$B		 	"	" F F..IIIL11buEEEF F F F F F F F F F F F F F F Aq	|>	:	:	: E EL11btDDDE E E E E E E E E E E E E E E	%B		 	"	" F F..IIIL11buEEEF F F F F F F F F F F F F F F Ar	|>	:	:	: E EL11btDDDE E E E E E E E E E E E E E E E E EsZ    7BB
B74C77C;>C;-EEE24F22F69F6(HHHc                     d} dd}d}d}||z  | z  |z  }fd}t          j        t                    5  t          j        |g dd|| gd	
          }|j                                        rJ 	 ddd           n# 1 swxY w Y   t          j        t                    5  t          j        |dgdz  d|| gd	
          }ddd           dS # 1 swxY w Y   dS )z(Test that array newton fails as expectedrN  ga2U0*#?g@g\mJA?gCl@c           	          dt          j        |           z  dt          j        dz  |z  d|z  t          j        |           z  z             z  z   S )Nr   r   g@gGz@)r   r   log10)darcy_frictionredia	roughnesss      r    colebrook_eqnz1test_array_newton_failures.<locals>.colebrook_eqn  sa    BGN+++BHY_s2!BY)@)@@A B B BB 	Cr"   ){Gz?g?gvÖ?g333333?r   T)r:   r   rD   rA   Nr  )	r   r*  r+  rK   r   rj   r-  r   r?  )diameterrhomuureynolds_numberr  r   r  s          @r    test_array_newton_failuresr    s   
 HI
C	BAAg(2-OC C C C C 
n	%	% * *777!8,$
 
 
 #''))))))* * * * * * * * * * * * * * * 
|	$	$ 
 
tfqj!!8,$
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s#   9A;;A?A? CCCc                     d } t          j        | d          }t          |dt           j        t           j                   t          j        | dgdz            }t          |dt           j        t           j                   d }d }t          j        | d|          }t          |dt           j        t           j                   t          j        | d||	          }t          |dt           j        t           j                   t          j        | dgdz  |          }t          |dt           j        t           j                   t          j        | dgdz  ||	          }t          |dt           j        t           j                   t          j        | d
|          }t          |dt           j        t           j                   t          j        | d
gdz  |          }t          |dt           j        t           j                   dS )z@Test that Newton or Halley don't warn if zero derivative at rootc                     | dz  | dz  z
  S Nr   r   r   r   s    r    f_zeroder_rootz9test_gh8904_zeroder_at_root_fails.<locals>.f_zeroder_root  s    !tad{r"   r   r  r   r   c                     d| dz  z  d| z  z
  S r  r   r   s    r    fderz/test_gh8904_zeroder_at_root_fails.<locals>.fder  s    1a4x!a%r"   c                     d| z  dz
  S )Nr;  r   r   r   s    r    fder2z0test_gh8904_zeroder_at_root_fails.<locals>.fder2      sQwr"   )r:   r^   )r:   r^   r_   r   N)rK   r   r   _xtol_rtol)r  rX   r  r  s       r    !test_gh8904_zeroder_at_root_failsr    s      	^***AAqu{====^B///AAqu{====        	^$777AAqu{====^$"	$ 	$ 	$AAqu{====^Bt<<<AAqu{====^Bt"	$ 	$ 	$AAqu{==== 	^D999AAqu{====^b>>>AAqu{======r"   c                      dfd} fd}fd}d}t          | ||d          \  }}|j        sJ t          | |||d          \  }}|j        sJ d	S )
zzTest that Halley's method realizes that the 2nd order adjustment
    is too big and drops off to the 1st order adjustment.r=  c                 R    t          | dz            t          dz            z
  S r  r	   r   ns    r    r<   ztest_gh_8881.<locals>.f  s&    QAq#a%00r"   c                 6    t          | dz
  z            z  S r  r  r  s    r    fpztest_gh_8881.<locals>.fp  s     QQ	""1$$r"   c                 T    t          | ddz  z
  z            dz  z  dz
  z  z  S r  r  r  s    r    fppztest_gh_8881.<locals>.fpp  s6    QQqS!$$A.#a%8::r"   rN  T)r^   rA   r^   r_   rA   N)r   rj   )r<   r  r  r:   rtrX   r  s         @r    test_gh_8881r    s     	
A1 1 1 1 1% % % % %; ; ; ; ; 
B 1b666EB; 1bSdCCCEB;r"   c                     d } d }d }t          j        dgt           j                  }t          | |||d          \  }}|j        sJ t          j        ddgt           j                  }t          j        t                    5  t          j        | |||d          }d	d	d	           n# 1 swxY w Y   d
 }t          j        | |||d          }|j        	                                sJ d	S )z_
    Test that shape is preserved for array inputs even if fprime or fprime2 is
    scalar
    c                     | dz  S r$   r   r   s    r    r<   z,test_gh_9608_preserve_array_shape.<locals>.f   s    !tr"   c                     d| z  S r$   r   r   s    r    r  z-test_gh_9608_preserve_array_shape.<locals>.fp      1ur"   c                     dS r$   r   r   s    r    r  z.test_gh_9608_preserve_array_shape.<locals>.fpp  s    qr"   r   ra  Tr  Nc                 h    t          j        t          j        |           dt           j                  S )Nr   r  )r   r  rU  float32r   s    r    	fpp_arrayz4test_gh_9608_preserve_array_shape.<locals>.fpp_array  s#    wrx{{ARZ8888r"   )
r   r   r  r   rj   r   r   
IndexErrorrK   r-  )	r<   r  r  r:   r  rX   x0_arrayr   r  s	            r    !test_gh_9608_preserve_array_shaper    sh   
       
2$bj	)	)	)B1bSdCCCEB;xR
333H	z	"	" 
 
xCT
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

9 9 9 \	8B	t  F !!!!!!!s   B,,B03B0z maximum_iterations,flag_expectedr   r  c                     t          j        d ddddd| dd	  	        }|d	         j        |k    sJ |t           j        k    r|d	         j        | k    sJ d
S |t           j        k    r|d	         j        | k     sJ d
S d
S )z]
    Test that if the maximum iterations is exceeded that the flag is not
    converged.
    c                 *    d| z  dz
  | z  dz   | z  dz
  S )Ng333333?gffffff@g333333@g      @r   r   s    r    r   z6test_gh9254_flag_if_maxiter_exceeded.<locals>.<lambda>&  s!    CECK?S(!+c1 r"   i   r   r   TFr@   r   N)rK   r   r  CONVERRr>  	CONVERGED)maximum_iterationsflag_expectedr   s      r    $test_gh9254_flag_if_maxiter_exceededr    s     \11RT4!3u& & &F !9>]****%%ay#'9999999	%/	)	)ay#&88888 
*	)88r"   c                     d } d }t          j        t                    5  t          j        | d|d           ddd           n# 1 swxY w Y   t          j        t          d          5  t          j        | d|           ddd           n# 1 swxY w Y   t          j        | t          d	d	          |          }t          |t          d
d                     dS )zBTest that if disp is true then zero derivative raises RuntimeErrorc                     | | z  dz   S Nr   r   r   s    r    r<   z/test_gh9551_raise_error_if_disp_true.<locals>.f5  r  r"   c                     d| z  S r$   r   r   s    r    f_pz1test_gh9551_raise_error_if_disp_true.<locals>.f_p8  s    s
r"   r   FrK  NzY^Derivative was zero\. Failed to converge after \d+ iterations, value is [+-]?\d*\.\d+\.$r   g      $@r  )	r   r*  r+  rK   r   r   r?  r   r   )r<   r  rC   s      r    $test_gh9551_raise_error_if_disp_truer  2  si        
n	%	% . .QSu----. . . . . . . . . . . . . . .	/
0 
0 
0 " " 	QS!!!	" " " " " " " " " " " " " " "
 <74..44DD'#s++,,,,,s#   AA	A	+BBBsolver_name)r   ru  r   r   r   c                     d }t          t          |           }t          j        t          d          5   ||dd           d d d            d S # 1 swxY w Y   d S )Nc                     t           j        S r+   )r   r
   r   s    r    r<   ztest_gh3089_8394.<locals>.fK  s	    vr"   zThe function value at x...r   r   r   )getattrrK   r   r   r   )r  r<   solvers      r    test_gh3089_8394r  F  s    
   UK((F	z)E	F	F	F  q!Q                 s   AAArP   c                     fdd_         t          d|           }|j        du sJ |j                            d          sJ |j        j         k    sJ t          |j                  |j        v sJ d S )Nc                 <    xj         dz  c_         t          j        S r  )_countr   r
   r   r<   s    r    r<   ztest_gh18171.<locals>.fY  s    	Avr"   r   )r   r   )r   rP   FzThe function value at x)r  r   rj   r  
startswithr6  strrC   )rP   r\  r<   s     @r    test_gh18171r  S  s         AH
a
7
7
7C=E!!!!8899999))))sx==CH$$$$$$r"   rs_interfaceTFc                     |rd nt          t          |           }fdd_         |ddd          }|r|j        j        k    sJ d S |d         j        j        k    sJ d S )Nc                 (    t          | ||f          S N)r   r   r<   r=   r>   rS   s       r    r   z%test_function_calls.<locals>.<lambda>k      QA)G)G)G r"   c                 4    xj         dz  c_         | dz  dz
  S )Nr   r   )callsr  s    r    r<   ztest_function_calls.<locals>.fn  s    	1!taxr"   r   r   Tr   r   )r  rK   r  r6  )r  r  r  r\  r<   s       @r    test_function_callsr  e  s     ?GGG#*5+#>#>      AG
&Art
,
,
,C 0!QW,,,,,,1v$//////r"   c                     d } t          j        t          d          5  t          | ddd          }ddd           n# 1 swxY w Y   |j        rJ |j        d	k    sJ t          j        t          d          5  t          | ddd
d          d         }ddd           n# 1 swxY w Y   |j        rJ |j        d	k    sJ dS )zDTest that zero slope with secant method results in a converged=Falsec                 >    | t          j        |  | z            z  dz
  S )NgQ?r   r   s    r    lhsz*test_gh_14486_converged_false.<locals>.lhs}  s     261"Q$<<$&&r"   r  r   r\   g333333ÿr   )rP   r:   r;   Nzconvergence errorFT)r:   r;   rB   rA   r   )r   r*  r+  r   rj   r  r   )r  r\  s     r    test_gh_14486_converged_falser  {  s   ' ' ' 
nN	;	;	; B B#h5SAAAB B B B B B B B B B B B B B B}8*****	nN	;	;	; M MSUsDIII!LM M M M M M M M M M M M M M M}8*******s!   ?AA;B""B&)B&c                    |rd nt          t          |           }d }t          j        t          d          5   ||ddd           d d d            n# 1 swxY w Y    ||dd	d          }|r|n|d
         }|j        sJ t          |j        dd            ||dt          d          d          }|r|n|d
         }|j        sJ t          |j        dd           d S )Nc                 (    t          | ||f          S r  r  r  s       r    r   ztest_gh5584.<locals>.<lambda>  r  r"   c                     d| z  S )NgN~hr   r   s    r    r<   ztest_gh5584.<locals>.f  s    axr"   z...must have different signsr   g      gٿTr   g?r   r   r5  r   z-0.0)	r  rK   r   r   r   rj   r   rC   r   )r  r  r  r<   r\  s        r    test_gh5584r    sj    ?GGG#*5+#>#>    
z)G	H	H	H 0 0q$$////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 &D#4
0
0
0C
)##3q6C=CHad++++ &D%--T
:
:
:C
)##3q6C=CHad++++++s   AAAc            	         d } d}t          j        t                    j        }t	          j        | dd|d|z            } | |          }t	          j        | dd|d|z            } | |          }||k     sJ d|d	z  d
d|d
d}t          j        t          |          5  t	          j        | dd||d	z             d d d            d S # 1 swxY w Y   d S )Nc                     | dz  d| z  z
  dz
  S )Nr   r   r   r   r   s    r    r<   ztest_gh13407.<locals>.f  s    !taczA~r"   gYng|=g    _Br   rr   r   zrtol too small \(r   gz < z\)r   )	r   r   r   r   rK   r   r   r   r   )r<   ra   r   r;   r!   x4f4r   s           r    test_gh13407r	    sG      D
(5//
C	q%Dqu	=	=	=B	
2B	q%Dqu	=	=	=B	
2B7777 93q5888s8888G	z	1	1	1 = =a4c!e<<<<= = = = = = = = = = = = = = = = = =s   #CCCc                      d } t          | d          }t          |dd           t          | ddd          }t          |j        dd           d S )	Nc                     | dz
  S r  r   )r  s    r    r<   z&test_newton_complex_gh10103.<locals>.f  r  r"   y      ?      ?r   g-q=r   y       @      ?r\   )r:   r;   rP   )r   r   r   rC   )r<   r\  s     r    test_newton_complex_gh10103r    sf      
D//CC''''
aDVH
=
=
=CCHae,,,,,,r"   c                     d}t          j        t          |          5   | t          ddd           d d d            d S # 1 swxY w Y   d S )Nz2'float' object cannot be interpreted as an integerr   r  r   gR@r   )r   r   r  r!   )rP   r   s     r    test_maxiter_int_check_gh10236r    s     CG	y	0	0	0 , ,r3U++++, , , , , , , , , , , , , , , , , ,s   A  AAc           	      ~   dd}dt          j        t                    j        z  dz  }fd}t	          j        t          d          5   | |dd	|d
t                     d d d            n# 1 swxY w Y   t	          j        t          d          5   | |dd	|d|           d d d            d S # 1 swxY w Y   d S )NrN  )r   r   r   r   r   r   c                     | z
  S r+   r   ri  s    r    r<   z(test_bisect_special_parameter.<locals>.f  rj  r"   zxtol too smallr   rk  rl  re  )rD   ra   rb   zrtol too smallr   )r   r   r   r   r   r   r   rn  )rP   rD   rtolbadr<   rC   s       @r    test_bisect_special_parameterr    sw   
 D&D"(5//%%)G     
z)9	:	:	: = =vasE<<<<= = = = = = = = = = = = = = =	z)9	:	:	: @ @vasDw????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s$   
A--A14A1B22B69B6)Rr  	functoolsr   r   numpy.testingr   r   r   r   numpyr   r   r	   r
   r   r   r   r   r   scipyr   scipy.optimizer   rK   r   r   r   scipy._lib._utilr   r   scipy.optimize._tstutilsr   r   r   r   r   rn  rt  r   r   r   ru  r   r   gradient_methodsall_methodsr!   r%   r)   r,   r/   r2   r4   r6   r8   r   r   rp  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"   r    <module>r     s          / / / / / / / / / / / /     A A A A A A A A A A A A A A A A A A A A      , , , , , , , , , , , , G F F F F F P O O O O O O OU5\\
<u|U\="L>  00      # # #
      
   ^M ^M ^M ^M ^M ^M ^M ^MBA@ A@ A@ A@ A@. A@ A@ A@Hc& c& c& c& c&& c& c& c&L	= = =8 8 80' ' '2 2 2 2 2 2 2 21 1 18E E E@
 
 
D,> ,> ,>`  4" " "D &%-3013 39 93 39$- - -( LLLN N N N LLLN N% %N N%  LLLN N$770 0 87N N0&+ + +  LLLN N$77, , 87N N,4= = =.
- 
- 
- ;//, , 0/, EL%,$)L%,$@ A A@ @A A@ @ @r"   