L iddlZddlZddlZddlmZddlmZmZddl m cm Z ddl m cmZddlmZmZmZmZmZddlmZmZmZddlmZmZddlmZddlm Z d Z!d Z"e"eZ#d Z$d Z%d Z&dZ'dZ(dZ)ge$ddfe$ddfe$ddfe$ddfe$ddfe$ddfe$ddfe$ddfe$d dfe$d!dfe$d"d#fe%dd$fe%dd%fe%dd%fe%dd&fe%dd$fe%dd$fe%dd'fe%ddfe%d dfe%d!d(fe%d"dfe&ddfe&ddfe&ddfe&dd)fe&dd*fe&dd(fe&ddfe&dd+fe&d d+fe&d!dfe&d"dfe'd,d'fe'd-dfe'd.dfe'd/dfe'd0dfe'd1d'fe'd2d'fe'd3d'fe'd4d)fe'd5d)fe'd6d)fe(d,d%fe(d-d&fe(d.d$fe(d/d)fe(d0d'fe(d1d$fe(d2d&fe(d3d&fe(d4d'fe(d5d'fe(d6d$fZ*ejVjYd7d89ejVjYd:d;9ejVjYdd?Z-ejVjYd7d@9ejVjYd.decorator..wrappedsqM''EFPQ(94QJQC499U+, ,=GH y|H H 1k?+ ,J RIs A8 A=)r r"rs` r! decoratorz_vectorize..decorators r#)rr$s` r! _vectorizer&s  r%cfd}|S)Nchd}|Dcic]}||vs||j|}}|jddtr fd}n} ||f||d|} tk(r3|j\|_|_|j \|_|_n>|j\|_|_ |_|j \|_|_ |_|j|_ |`|`|` |Scc}w)N>fatolfrtolxatolxrtolcallbackc6tk(r3|j\|_|_|j\|_|_n>|j\|_|_|_|j\|_|_|_|j|_ |`|`|` |SN) rbracketxlxr f_bracketflfrxmfmf_xfun)r _callbackfuncs r!r-zC_wrap_chandrupatla.._chandrupatla_wrapper..callback7s}9$%([[NCFCF%(]]NCFCF-0[[*CFCFCF-0]]*CFCFCF''KMG ~%r%) tolerancesr-) popcallablerr0r1r2r3r4r5r6r7r8r9) r r0kwargstol_keyskeyr<r-rr:r;s @r!_chandrupatla_wrapperz1_wrap_chandrupatla.._chandrupatla_wrapper1s76>Ps#-c6::c?*P PJJz40 I  &!H1gR*xR6R 9  [[NCFCF ]]NCFCF%([[ "CFCFCF%(]] "CFCFCF'' K M G ;Qs C1C1r#)r;rBs` r!_wrap_chandrupatlarC0s B ! r%cHdd|dzz dzzd|dzz zdd|z dzzzS)Nd@@r#xs r!f1rLXs7 ArE A~ 1b5 )AqsRiK 77r%cd|dz dzzS)NrIr#rJs r!f2rP\s B{?r%cFt|}|j|d|zz S)NrN)rexprKrs r!f3rT`s"  B 66!9qs?r%c0|dzd|dzzz d|zz dzS)N@rNrGg4@r#rJs r!f4rWes& b51QU7?SU "R ''r%c6d|dzzd|dzzz d|zz dzS)NrHr#rJs r!f5r\is* QT6AadF?QqS 1 $$r%cd}d}||}||}||z }||kDr||||| fn|||||f\}}}}}t|D]&}||z}||z} || } | |kr || || f\}}}}&n|| || fS)Ngw?rE)r) r;x1x2phimaxiterrLrPsteprx3rTs r!_bracket_minimumrdms CG bB bB 7D79BwRRdU3"$b"b$!7BBD7^   $Y "X 7R^NBB  r2r2r !!r% iiiiiiiirYrOr[ 皙gg333333ÿgɿgпg333333ӿgffffffֿgٿgܿgz dask.arrayzno take_along_axis)reasonz jax.numpyz*JAX arrays do not support item assignment.array_api_strictz)Currently uses fancy indexing assignment.c eZdZdZej j ddej j ddejdddgd Z ej j d e d d d gdZ dZ dZ dZej j dedZej j ddddgfej j dddZdZdZdZy)TestChandrupatlaMinimizect||}|jd||z dzz d|jzdzz }|j||jdS)NrvrHg?dtyper#)rrRpiasarrayr})selfrKlocrrs r!r zTestChandrupatlaMinimize.fsY Q $vvdaeaZ'((AbeeGc>9zz#QWWz-b11r%r}float32float64r333333?g?rrcddd}tfddD}j|}jjtjj d |j }t|jg|d|fi}t|j|| t|j|y) Ng{Gzt?gƠ>rc3DK|]}j|yw)r|N)r).0xir}rs r! z6TestChandrupatlaMinimize.test_basic..sD22::b:.Ds rrNr|rargsrtol) getattrr broadcast_tornormpdfr_chandrupatla_minimizer r rKr r9)rrrr}rr0r9rs `` r! test_basicz#TestChandrupatlaMinimize.test_basics  D1%8E"DDjjEj*oobjj%**..*;);5jI399U$TVVCgCSFCs.%r%rrqrZrZrHrHc  |r"|jdddj|n|jd}|f}|jd|jd|jdf t| fd}fd d _t g d |i}||}gd }|D]g} |j |D cgc]} t| | c} } tt|| } t| | t|| j|k(rgJt|jj|jg|t|jj|jg|t|j j|j"g|t|j$j|j&g||j)|j*jk(sJ|j)|j,jd z k(sJ|j/|j0j2dsJ|j/|j4j2dsJ|j/|j*j2dsJ|j/|j,j2dsJycc} w)NrurrqrrVc8tjgd|fiS)Nr)rr ) loc_singler0rs r!chandrupatla_singlezHTestChandrupatlaMinimize.test_vectorization..chandrupatla_singles)$&&O7O*O Or%cRxjdz c_j|i|SNrFf_evalsr rr?r rs r!r z6TestChandrupatlaMinimize.test_vectorization..f& IINI4664*6* *r%rr) rKr9successstatusnfevnitr1r6r2r4r7r5rZboolintegral)linspacereshaperr&rrstackrr r rr9r rKr4r1r7r6r5r2maxrrisdtyperr}r)rrrrrrrrefsattrsattrrefref_attrres_attrr0r s` @@r!test_vectorizationz+TestChandrupatlaMinimize.test_vectorizationsP>Cbkk%r*2259 SVv**S/2::b>2::b>A B P  P + $Q<K c*fd}jdjf}jdgdzjjdgdzjjtj gdzjf}t |g||dd}jtjtjtjtjgj}t|j|y)Ncdddfdg}g}tt|D]:}||df}tt||}|j |||<j |S)Nc|dz dzS)N@rHr#rJs r!z@TestChandrupatlaMinimize.test_flags..f..CA~r%c |dz SNrrr#rJs r!rz@TestChandrupatlaMinimize.test_flags..f.. q2vr%c|dz dzS)Nrrr#rJs r!rz@TestChandrupatlaMinimize.test_flags..f..rr%cZj|jjSr/ full_likernanrSs r!rz@TestChandrupatlaMinimize.test_flags..f..sr||Arzz"&&/ABr%.)rr intr rr)xsjsfuncsrrrKjrs r!r z.TestChandrupatlaMinimize.test_flags..fs{-%-BDEC72;' (q#vJ Q( 858A;' (88C= r%rr|rrHrrrra)arangeint64rrnpr~reim _ECONVERGED _ESIGNERR _ECONVERR _EVALUEERRint32r r)rrr rr0r ref_flagss ` r! test_flagsz#TestChandrupatlaMinimize.test_flagss ! !288 ,.::qc!e2:::6::qc!e2:::6::ruugairzz::<%QHHtRHJJ # 079xxA  I.r%c tjjd}|j|jd}|jd|j|jd|jdf}|f}t |dddd}|j }d |d <t|jg|i|}|j|j|jz } |jd |d z|j} t| |jd | |jd |d <t|jg|i|} |j| j| jz } |jd |d z|j} t| |jd | |jt| | |j }d |d<t|jg|i|}|j|j|jz } |jd |dz|j|jz|j} t| | d |d<t|jg|i|} |j| j| jz } |jd |dz|j| jz|j} t| | t| | |j }d |d<t|jg|i|}|j|j d|j"zz |j$z} |jd|dz|j} t| |jd | |jd |d<t|jg|i|} |j| j d| j"zz | j$z}|jd|dz|j} t||jd | |jt|| |j }d |d<t|jg|i|}|j|j d|j"zz |j$z} |jd|dz|j|j&z|j} t| | d |d<t|jg|i|} |j| j d| j"zz | j$z}|jd|dzt| j&z|j} t|| t|| y)NFA92rZsizerr|rrN)rr+r,r)r*MbP?r+rrZư>r,r)rHr*)rrandom default_rngrrdictcopyrr absr2r1r}r fullrKr4r7r5r9)rrrngpr0rkwargs0r?res1j1tolres2j2h1h2s r!test_convergencez)TestChandrupatlaMinimize.test_convergencesii##$78 JJszzqz) *::b :3RZZ]BJJqMRtD!1Ew%dffAwA&A VVDGGdgg% &jj6'?*!''j:r2774AGG7<=w%dffAwA&A VVDGGdgg% &jj6'?*!''j:r2774AGG7<=r2w%dffAwA&A VVDGGdgg% &jj6'?*266$&&>9jIr3w%dffAwA&A VVDGGdgg% &jj6'?*266$&&>9jIr3r2w%dffAwA&A VVDGGa$''k)DGG3 4jj6'?*!''j:r2774AGG7<=w%dffAwA&A VVDGGa$''k)DGG3 4jj6'?*!''j:r2774AGG7<=r2w%dffAwA&A VVDGGa$''k)DGG3 4jj6'?*266$((+;;177jKr3w%dffAwA&A VVDGGa$''k)DGG3 4jj6'?*3txx=8jHr3r2r%cjdjdjdjdfdtjgfd}j|jrJj |j dzk(sJj |jk(sJfdj_ j_ d_ d_ tjgfd }|jD][}|d k(r1||tjk(sJ||tj k(r7J||j|cxk(r ||k(rXJJy) N~,?rrrNrrZcxjdz c_|_t|dsJjdk(r(|j|j|j fk(s~J|jjk(|j j k7z}|jjk7|j j k(z}j ||zsJ|j_|j _|jtjk(sJtj|j|jtj|j|jtj|j |jtj|j|j jk(rt"yNrFrKr)iterrhasattrr1r6r2allrr _EINPROGRESSr r r4r7r5rKr9 StopIteration) r changed_xr changed_xlr0r-rrarrs r!r-z@TestChandrupatlaMinimize.test_maxiter_callback..callbackasm MMQ MHL3$ $$}}!/7:::!ff 3(++8MN !ff 3(++8MN vvj:5666&&HK&&HK::!1!11 11 DFF3663/ 8 DFF3663/ 8 DFF3663/ 8 DFF355#. 8}}'##(r%rerr-r)rrr anyrrrrrr1r2rrkeysrr _ECALLBACK) rrrrrAr0r-rras `` @@@@r!test_maxiter_callbackz.TestChandrupatlaMinimize.test_maxiter_callbackUsvjj"::b>2::a="**Q-@$TVV6g6SF-4666#++&&&vvchh'!)+,,,vvcgg())) $ $,ff ff   %dff9w9cV/79 88: BCh3x3==000CyCNN222CyHLL$5ASAAAAA  Br%casecX|\}}}d}||z}t|||\}}}} } } d} d} d}d}|j||j||j||jf}t|g|| | ||d}t |j |j||j y)Ng?g-C6?rgؗҜ.fs.77e# ##99a#g\51 1r%rr) rrrrKr}r rsqrtfinfoeps)rrr}rr0r rs `` r! test_dtypez#TestChandrupatlaMinimize.test_dtypesE"jjEj*::b:.::au:-::au:-/ 2%Q>>v>uu{{e###s288E?3F3F)GHr%cd}|jd|jd|jdf}tjt|5t dg|dddd}|jd|jd|jdf}tjt|5t dg|dddd }|jd d g|jddg|jgd f}tjtt f|5t d g|dddd}|jd d g|jddg|jddgf}tjt|5t dg|dddd}|jd|jd|jdf}tjt|5t dg|ddidddtjt|5t dg|d|j idddtjt|5t dg|ddidddtjt|5t dg|d|j idddd}tjt|5t dg|ddidddtjt|5t d g|ddidddd!}tjt|5t d"g|d#d$idddy#1swYxYw#1swYxYw#1swYHxYw#1swYxYw#1swYxYw#1swY^xYw#1swY7xYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw)%N`func` must be callable.rirrmatch3Abscissae and function output must be real numbers.?c|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..Qr%z...be broadcast...rgrrZrrNc|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%z:The shape of the array returned by `func` must be the samerNc|d|d|dgS)N)r.)rF.r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..sai6AfI-Nr%(Tolerances must be non-negative scalars.c|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%r+rec|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%r,c|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%r)ekkic|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%r*)`maxiter` must be a non-negative integer.c|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%ra?c|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%`callback` must be callable.c|Sr/r#rJs r!rz@TestChandrupatlaMinimize.test_input_validation..rr%r- shrubbery)rpytestraises ValueErrorr RuntimeErrorr)rrmessager0s r!test_input_validationz.TestChandrupatlaMinimize.test_input_validationsm-**R."**Q-A> ]]:W 5 3 "4 2' 2 3H**W%rzz!}bjjmC ]]:W 5 : "; 9 9 :'**b"X& Aq6(:BJJy ]]:W 5 D "; C C C D ]]:W 5 H "; G G G H ]]:W 5 H "; G G G H ]]:W 5 H "; G G G H> ]]:W 5 G "; F F# F G ]]:W 5 F "; E E" E F1 ]]:W 5 P "; O O; O P PM 3 3  : :  : :  - -  D D H H H H H H G G F F P Ps M4M,%M9N5N)N 'N-N:OOOM),M69NNN N*-N7:OOOO(c|jddddd|jf}|jtt gdj }t |jg|d|fi}|jtj|j||j|j||k(zsJ|jdddf}t|j|jj |ddiy) NrerFrOrrrrV瞯<)rnewaxisrlistrTrr rxpxiscloserKr9r broadcast_arrays)rrrbracketsrrs r!test_bracket_orderz+TestChandrupatlaMinimize.test_bracket_orderskk"a#ArzzM2::d< #;<=??$TVVDhDcVDvvckk#%%-DFF3.fs)::agg7 77EA: r%rrYignoreinvalid)r)r*?rrrgN~hatolc|dz dzSNrFrHr#rJs r!r z6TestChandrupatlaMinimize.test_special_cases..faC!8Or%rFc|dz dzSrBr#rJs r!r z6TestChandrupatlaMinimize.test_special_cases..frCr%rg?rNrarZrgc||z dzdz S)NrHrFr#rKcs r!r z6TestChandrupatlaMinimize.test_special_cases..fsaC!8a< r%reUUUUUU?rc(j| Sr/)sinrSs r!r z6TestChandrupatlaMinimize.test_special_cases..fsFF1I: r%r+r,r)r*)rrerrstaterrr rKr9r r1r2rrrr~r6)rrr r0rrGs ` r!test_special_casesz+TestChandrupatlaMinimize.test_special_casess **R."**Q-A> [[ * H(GWGAQGC H{{{rzz"~D9Bf= **Q-A 1 =$Q11{{{rzz"~. **R."**S/2::a=@$Q< JJsO$Q<<t<q! **Q-A 2550AA$QUU!STU{{{vv''''''yAcffI236622222] H Hs LL&N)__name__ __module__ __qualname__r r&mark parametrizerrrtuplerrrrcasesrr r+r5rMr#r%r!rzrzs#2  [[W&<= [[US+"++eT2*F$GH &I> & [[Wuwvy&IJ%5K%5P/2:x2Bh [[VU+B,B, [[UTD#;$78 [[W&GHII9I",P\H73r%rzzboolean indexing assignmentc eZdZdZej j ddejdddgdZ ej j de d d d gd Z d Z dZ dZej j dedZej j ddddgfej j dddZdZdZy) TestFindRootc2tj||z Sr/)rndtr)rqrs r!r zTestFindRoot.f+s||A""r%rrrurrrcb|jd|jd}}t|j||f|j|f}|jtjj ||j|j }t|j|y)NrrVrr|) rrr rrppfr}r rK)rrrabrrs r!rzTestFindRoot.test_basic.s}zz# 21Abjjm-=>jj))!,BJJqM4G4GjHs#r%rrrrc |r&tjdddj|ntjd}|j |}|f}|j }tj fd}fdd_|j d|j |j d |j f}t|| } ||j} | D cgc]} | j} } |j|j | | |} t| j| | D cgc]} | j} } |j|j | | |} t| j| d t| jj| jg|| D cgc]} t| j }} |j|j ||j |}t| j || D cgc]} | j"}} |j|j ||j$ |}t| j"|| D cgc]} | j&}} |j|j ||j$ |}t)|r@t| j&||j+| j&jk(sBJ| j&j,|k(sJ| j&j |j$k(sJ| D cgc]} | j.}} |j|j ||j$ |}t)|rCt| j.||j+| j.jdz k(sBJ| j.j,|k(sJ| j.j |j$k(sJ| D cgc]} | j0d}} |j|j || |}t| j0d|| D cgc]} | j0d}} |j|j || |}t| j0d|t3| j0d| j0d|j5| j}|j7| j|| j0d|k(| j|| j0d|k(zsJt)|rd nd}| D cgc]} | j8d}} |j|j || |}t| j8d|| t| j8dj| j0dg|| D cgc]} | j8d}} |j|j || |}t| j8d|| t| j8dj| j0dg||j7|j;| j||j=|j;| j8d||j;| j8d|k(sJycc} wcc} wcc} wcc} wcc} wcc} wcc} wcc} wcc} wcc} w)Nrurrqrc6tjd|fS)N)rrNr[)rr )rrs r!find_root_singlez9TestFindRoot.test_vectorization..find_root_single@sTVVWA48 8r%cRxjdz c_j|i|Srrrs r!r z*TestFindRoot.test_vectorization..fDrr%rrr|rVr[r-r?rHrFg& .>)rrrrrr} vectorizerrravelrKr r8r r rrrrrrrrrr0r isfiniterr3rminimum)rrrrp_xpargs_xpr}rar0rrrref_xref_f ref_success ref_statusref_nfevref_nitref_xlref_xrfiniter@ref_flref_frr s` @r!rzTestFindRoot.test_vectorization6s=BR[[b ) 1 1% 8**S/ zz!}'   9  9 + **S *3RZZ"**Z5UU71"((*"&'3'' 2::e5:95Au%$()S)) 2::e5:95AU3!8!89489StCKK(9 9jjKrww!GO  [1,01Scjj1 1ZZ :RXX FN  J/(,-CHH--::bjjjBEJ B< CHHh /66#((#qyy0 0088>>U* **88>>RXX- --&*+s377++**RZZrxxZ@%H B< CGGW -66#''?aiik1 1177==E) ))77==BHH, ,,,01S#++a.11BJJvUJ;UC A/,01S#++a.11BJJvUJ;UC A/s{{1~s{{1~6SUU#vvsuuV} Av(>>v#++a.*@@BC CC! u$.23s#--"33BJJvUJ;UC a(&t< a(&$&&Q*J'*JK.23s#--"33BJJvUJ;UC a(&t< a(&$&&Q*J'*JKvvbffSWWV_-jj a(8(@!A!# a(8(@!ACCD DD{(* :2.,224 4s<'\9\>\##\(?\-\2$\7<\<:] ]cfd}jdjf}jdgdzjjgdz}}t |||f|d}jt j t jt jt jgj}t|j|y)Nc J|jjk(sJtr=dddfdg}t||Dcgc]\}}|t ||c}}Sdddfdg}t||Dcgc]\}}|||c}}Scc}}wcc}}w) Nc |dz SNrr#rJs r!rz4TestFindRoot.test_flags..f..s 1s7r%c |dz Srr#rJs r!rz4TestFindRoot.test_flags..f..s 1r6r%c|dz dzSN皙?rZr#rJs r!rz4TestFindRoot.test_flags..f..sAGa<r%cZj|jjSr/rrSs r!rz4TestFindRoot.test_flags..f..s2<<2::bff3E#Fr%c |dz Srwr#rJs r!rz4TestFindRoot.test_flags..f..s q3wr%c |dz Srr#rJs r!rz4TestFindRoot.test_flags..f..rr%c|dz dzSrzr#rJs r!rz4TestFindRoot.test_flags..f..rr%cjSr/)rrSs r!rz4TestFindRoot.test_flags..f..s rvvr%)r}rrzipr)rrrrKrrs r!r z"TestFindRoot.test_flags..fs88rxx' ''r{*)/FH69R[ATQ c!f a(AA&%-%'E-0BK8DAqHE!HQK8 8 B 9s BBrr|rrHr) rrrr~rrrrrrrr r)rrr rr]r^rrs ` r!rzTestFindRoot.test_flagss 9$ !288 ,.zz2$q&!2::ruugai#81Aq6a8JJ # # # 08:xxA   I.r%c  tjjd}|j|jd}|jd |jdf}|f}t |t dddd}t |}d|d d <t |j|fi|}t|jd |jdz |j||jdd |d d <t |j|fi|} t| jd | jdz |j||jd t| jd | jdz |jd |jdz t |}d|d d <t |j|fi|}t|jd |jdz d|j|jzd |d d <t |j|fi|} t| jd | jdz d |j| jzt| jd | jdz |jd |jdz t |}d|d d<t |j|fi|}t|j|j|j||jdd |d d<t |j|fi|} t|j| j|j||jd t|j| j|j|jt |}d|d d<|\} } |j|j|j| g||j|j| g|} t |j|fi|}t|j|jd| zd |d d<t |j|fi|} t|j| jd | zt|j| j|j|jy)NrrZrrVrrKrr<rr<r+rFrr,r)r*)rrrrrrrr r r0rrrKr8rf) rrrrr0rrr?rrr^r_f0s r!rzTestFindRoot.test_convergencesii##$78 JJszzqz) *JJrN?BJJrN3tDT!ST-UV'"(,|W%3F3t||Aa8||Arzz$'78 :(,|W%3F3t||Aa8||Arzz$'78 :t||Aa8||Aa8 :'"(,|W%3F3t||Aa8$:OP(,|W%3F3t||Aa8bffTVVn, .t||Aa8||Aa8 :'"(,|W%3F3rvvdhh'aD9I)JK(,|W%3F3rvvdhh'aD9I)JKrvvdhh')9:'"(,|W%B ZZvtvvb0401266&$&&:Kd:K3L M3F3rvvdhh'b1(,|W%3F3rvvdhh'b1rvvdhh')9:r%c jd jdjdfdfdd_d_t f}j |j rJj |jdzk(sJj |jk(sJ fdd _ d_ ddg_ t f }|jD]}|d k(rqt||jtjj t||jtj"j y|d vr1t||d||dt||d||d|j%drt||||y)NrrrVrNcTtj||z }|_|_|Sr/)rrXrKr8)rYrrr s r!r z-TestFindRoot.test_maxiter_callback..fs(,,q/A%CACAEJr%rrHcxjdz c_|_t|dsJjdk(r#|jd|jdfk(sJ|jdjdk(|jdjdk7z|jdjdk7|jdjdk(zz}j |sJ|jdjd<|jdjd<|j t jk(sJtj|jd|jdtj|jd|jdtj|j|jjk(rtyr)rrrr0rrrrr r r3rKr8r)rchangedr0r-rarrrs r!r-z4TestFindRoot.test_maxiter_callback..callbacks MMQ MHL3$ $$}}! A A77BBB [[^x/?/?/BB"{{1~1A1A!1DDF"{{1~1A1A!1DD!$Q83C3CA3F!FHIvvg&"%++a.H  Q "%++a.H  Q ::!1!11 11 DFF3;;q>15s}}Q7G H DFF3;;q>15s}}Q7G H DFF355!,cgg 6}}'##(r%rerrr|>r0r3rrF_)rrKr8rrrrrrrrr0rr rrrr startswith) rrrrrAr0r-r rars `` @@@@@r!rz"TestFindRoot.test_maxiter_callbacks JJx ::c?BJJrN3  7!w?66#++&&&vvchh'!)+,,,vvcgg())) $ $,   $<G1$B88: 5ChC"**S]]"((**STS 2::cnnBHH:+UV00S ! c#hqk:S ! c#hqk:$S 3s84 5r%rc|\}}}}}|j|d|j|j|d|jf}|j||j}t||tdd}t |j |j|||jdd t |j|j||jy) Nrr|rFg|=gh㈵>)r,r+r<g:0yE>gMb`?)rr@) rrrrr r8r rr) rrrr r0rootnfevalidrs r!rzTestFindRoot.test_nit_expecteds (,$7D&" ::gaj :;::gaj :;=zz$bjjz17t%t/LMAdG2::!F! ."**V288*"DEr%rgCl?gV-?r}rct }|rdk(rtjdtdtjdfd}j dj d}}j |}t |||f|fdd i } t |j|d y#t$r<|jjk(sJj|jd k(YywxYw) Nrz0`float16` dtype only supported for NumPy arrays.z does not support cT||z dz}trj|S|S)NrGr|)rr)rKrrr}rs r!r z"TestFindRoot.test_dtype..f<s0t8"C|zz#Uz33Jr%rr|rZr+rrr?r) rr&skiprrrr rKAssertionErrorr}rr8) rrr}r not_numpyr r]r^rs `` r!r zTestFindRoot.test_dtype0s! $ )+ KKJ KE4( = KK2$08 9  zz"Ez*BJJqJ,F1zz$ez,Aq6WdOL ! CEE4d 3 !55;;%' '' FF377a<  !s(CADDcbd}d}tjt|5|jd|jdf}t d|dddd}tjt|5|jd|jdf}t ||dddd}tjtt f|5|jd d g|jgd f}t ||dddd }tjt|5|jd d g|jd d gf}t d|dddd}|jd|jdf}tjt|5t ||t ddddtjt|5t ||t |jdddtjt|5t ||t ddddtjt|5t ||t |jdddd}tjt|5t ||ddddtjt|5t ||ddddd}tjt|5t ||ddddy#1swYxYw#1swYxYw#1swY@xYw#1swYxYw#1swYxYw#1swYhxYw#1swY9xYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw)Nc|Sr/r#rJs r!r;z0TestFindRoot.test_input_validation..funcNsHr%rrrirrrz@(not be broadcast|Attempting to broadcast a dimension of length)rgrrz,The shape of the array returned by `func`...rNc|d|d|dgS)NrrFr#rJs r!rz4TestFindRoot.test_input_validation..es1qtQqT 2r%rre)r+r)r,r)r))r*rr!rar#r%)r-)r&r'r(rrr)rr)rrr;r*r0s r!r+z"TestFindRoot.test_input_validationKs - ]]:W 5 %jjnbjjm3G dG $ %H ]]:W 5 %jj'A6G dG $ % U ]]J 5W E %jj"b*BJJy,AAG dG $ %A ]]:W 5 =jj"b*BJJ1v,>>G 2G < ==**R."**Q-/ ]]:W 5 @ dG2 ? @ ]]:W 5 D dG2660B C D ]]:W 5 D dG60B C D ]]:W 5 D dG2660B C D> ]]:W 5 2 dGS 1 2 ]]:W 5 1 dGR 0 11 ]]:W 5 ; dGk : ; ;O % %  % % % %  = =  @ @ D D D D D D 2 2 1 1 ; ;s/L&5/L33M'4M "M#M'$M4 #N(N NN%&L03L=M  MM$'M14M>N  NN"%N.c d}jgdjgd}}tjdd5t|||f}dddj j sJt |jddjd|jdfd }t|jd jd f}|j sJt |jjd d }jddg}t|jdjdf|f}t|j jddgt|jjjd gd}tjd5jj}t|||f}ddd|j sJt|jjjd}jdjd}}t|||fd}t|j jdt|jjdjt|jjdjt|jjdjt|j d|t|j d|t|j|t|| | fd}t|j| t|||fd}t|j jdt|jjdjt|jjdjt|jjdjt |jjd d}t|jdjdfjd}t |jjdy#1swYxYw#1swYxYw)Nc&d|z dzd| dzz z Srr#rJs r!r z*TestFindRoot.test_special_cases..fsq519qQBF|+ +r%)r{rrr{)?r>rr>r;)divider=rFrrcPj|jdsJ|dzdz S)Nr8rFr9rSs r!r z*TestFindRoot.test_special_cases..fs)::agg7 777Q; r%r:rNr>c|dz|z Srr#)rKrs r!r z*TestFindRoot.test_special_cases..fsa4$; r%r[FTc d|z Srr#rJs r!r z*TestFindRoot.test_special_cases..fs Q3Jr%r<c|dzdz S)NrZrFr#rJs r!r z*TestFindRoot.test_special_cases..fsa4!8Or%grVrrgr|rHrZc||zdz Srr#rFs r!r z*TestFindRoot.test_special_cases..fsQ37Nr%rerH)rrrLrrrr rKrr rinfrrrrr0)rrr r]r^rrrs ` r!rMzTestFindRoot.test_special_cases|s ,zz,- ;O0P1 [[( ; 'A1v&C 'vvckk"""ab 2774q#:;  BJJrNBJJqM:;{{{rzz"~. zz1a&!BJJqM2::a=9H RZZ %>?rzz2662,78 [[ * +**RVV$CASz*C +{{{rzz"&&12 zz# 21Aq61- RZZ%67 BJJrJ$BCARXX!>?"**Qbhh*"?@ A* A*q!QB8Q/r"Aq61- RZZ%56 BJJqJ$ABARXX!>?"**Qbhh*"?@rzz"~. BJJrNBJJqM:AOrzz#/I ' '> + +sS&*S3&S03S=N)rNrOrPr r&rQrRrrrrSrrrrrrr r+rMr#r%r!rVrV$s# [[S3  E4(D"EF$G$ [[Wuwvy&IJUDKUDn/>1;f;5z [[V%89F:F$ [[VeeU^%<= [[W&GH!I>!2/;bM0r%rV)/rr&numpyrrrscipyrr(scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodrscipy._lib.array_api_extraarray_api_extrar1scipy._lib._array_apirrrr r scipy._lib._array_api_no_0dr r r scipy.optimize.elementwiserrscipy.optimize._tstutilsr itertoolsrr&rCrrLrPrTrWr\rdrTrQskip_xp_backendsrzrVr#r%r!rs  66((WW99?8":"!J,L98 (%"(8 RL8 RL8 RL8 RL 8  bM 8  bM 8 bM8 rN8 rN8 rN8 O8 QK8 QK8 QK8 QK8  aL!8 "aL#8 $aL%8 &rN'8 (rN)8 *rN+8 ,O-8 .RL/8 0RL18 2RL38 4RL58 6bM78 8bM98 :bM;8 <rN=8 >rN?8 @rNA8 BOC8 DNE8 FOG8 HOI8 JOK8 LOM8 NNO8 PNQ8 RNS8 TOU8 VOW8 XOY8 ZN[8 \N]8 ^N_8 `Oa8 bNc8 dNe8 fNg8 hNi8 jNk8 lNm8 nNo8 vl3GHk%QS0%PR`3`3RSI `3F l3PQ0%PRk%QS`0`0SRR `0r%