
    tKgb                        d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZ 	 ddlZd Z G d	 d
e      Z G d d      Zy# e$ r  ed      ZY (w xY w)zTests for hyp2f1 for complex values.

Author: Albert Steppi, with credit to Adam Kullberg (FormerPhycisist) for
the implementation of mp_hyp2f1 below, which modifies mpmath's hyp2f1 to
return the same branch as scipy's on the standard branch cut.
    N)
NamedTuple)assert_allclose)hyp2f1)check_versionMissingModulempmathc                    |j                   dkD  xr t        |j                        dk  }t        || z
  t        || z
        z
        dk  xr t        || z
        dk  }t        ||z
  t        ||z
        z
        dk  xr t        ||z
        dk  }|r|j                   dz   }|r|s|s|j                   dz   }n|}t	        t        j                  | |||            S )a)  Return mpmath hyp2f1 calculated on same branch as scipy hyp2f1.

    For most values of a,b,c mpmath returns the x - 0j branch of hyp2f1 on the
    branch cut x=(1,inf) whereas scipy's hyp2f1 calculates the x + 0j branch.
    Thus, to generate the right comparison values on the branch cut, we
    evaluate mpmath.hyp2f1 at x + 1e-15*j.

    The exception to this occurs when c-a=-m in which case both mpmath and
    scipy calculate the x + 0j branch on the branch cut. When this happens
    mpmath.hyp2f1 will be evaluated at the original z point.
          ?V瞯<r                   y        V瞯<)realabsimagroundcomplexr   r   )abczon_branch_cutcond1cond2z_mpmaths           c/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_hyp2f1.py	mp_hyp2f1r      s     FFSL:S[7%:MAa!e$%/EE!a%LA4EEAa!e$%/EE!a%LA4EEFFTMeu66H$6==Aq(344    c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)Hyp2f1TestCaser   r   r   r   expectedrtolN)__name__
__module____qualname__float__annotations__r    r   r   r   r   1   s!    HHHJ
Kr   r   c            %       ;   e Zd ZdZej
                  j                  d ej                   edddde	j                  dz   d	             ej                   eddddd
d	             ej                   eddddd
d	             ej                   eddddd
d	             ej                   edddde	j                  dz   d	             ej                   edddde	j                  dz   d	             ej                   edddddd	             ej                   edddddd	             ej                   edddddd	             ej                   edddddd	             ej                   edddd
dd	            g      d        Zej
                  j                  d ej                   edddd
dd	             ej                   edddd
dd	             ej                   ed d!d"d
d#d$	             ej                   ed%d&d"d
d'd(	             ej                   ed&d%d"d
d)d*	             ej                   ed+d,d-d
d.d	             ej                   ed,d+d-d
d.d(	             ej                   ed/d0d1d
d2d(	             ej                   ed0d/d1d
d2d(	             ej                   ed3d4d5d
d6d7	             ej                   ed8d9dd
d:d$	            g      d;        Zej
                  j                  d ej                   eddd5d<d=d	             ej                   eddd>d<d?d	             ej                   ed@dAdBd<dCdD	             ej                   ed3d4dEd<dFdD	      ej
                  j                  ej                   dGk  dHI      J      g      dK        Zej
                  j                  d ej                   eddLdMdNdOd$	             ej                   edPdQdRdSdTd(	             ej                   edPdUdVdNdWdX	             ej                   eddYdZd[d\d*	             ej                   edLdd]dNd^d(	             ej                   edQdPdRd_d`d*	             ej                   edaddVdNdbd*	             ej                   edcdddedfdgd$	            g      dh        Zej
                  j                  d ej                   edidjdkdldmdn	             ej                   edodZddNdpdq	             ej                   edodjdrdsdtdu	             ej                   edidjdkdvdwdu	             ej                   edxdidkdydzdX	            g      d{        Zej
                  j                  d ej                   edxdjd|d}d~d	             ej                   eddjd|ddd	             ej                   edLdMdddd	             ej                   edLddddd	             ej                   edad]dddd	             ej                   edLd]dd}dd	             ej                   edxdjd|ddd(	             ej                   edxdjddddD	      ej
                  j                  d      J       ej                   edLddddd(	            g	      d        Zej
                  j                  d ej                   edLdMdddd	             ej                   edddddd	             ej                   edd]dddd	             ej                   edaddddd	             ej                   edLd]dddd	             ej                   edLddddd*	             ej                   edddddd(	             ej                   edUdZdddd	             ej                   edaddddd(	             ej                   edddddd	             ej                   edUdZd|ddd	             ej                   eddRdddd	             ej                   edUddddd	             ej                   edYdMdddd	             ej                   edQddddd	             ej                   edQdddddĬ	             ej                   edYdMdddd	             ej                   eddVdddd	             ej                   eddMd|ddd	             ej                   edQdjdddd	             ej                   eddRdddd	             ej                   edYddddd	             ej                   edxddddd	             ej                   edxdd|ddd	             ej                   eddjdddd(	            g      dք        Zej
                  j                  dg  ej                   edddddd	             ej                   edddddd	             ej                   edddddd	             ej                   edddkddd	             ej                   edddiddd	             ej                   edddddd	             ej                   edddddd	             ej                   edddkddd	             ej                   edddddd	             ej                   edadZd|dNdd	             ej                   edddidNdd	             ej                   edQddddd	             ej                   edYdMddNdd	             ej                   edddddd	      ej
                  j                  d      J       ej                   edddddd	             ej                   eddddNdd	             ej                   edddddd	             ej                   edddiddd(	             ej                   edddddd	             ej                   edxdddNd d(	             ej                   eddVdddd(	             ej                   eddddNdd	             ej                   eddMdddd(	             ej                   edddoddd	             ej                   edLddddd	             ej                   edddoddd	             ej                   edddidڐd	d	             ej                   edad]ddߐd
d	             ej                   edQdddڐdd	             ej                   eddMdddd	             ej                   eddRddڐdd(	             ej                   edddddd	                  d        Zej
                  j                  dg  ej                   edddrddd	             ej                   edddddd	             ej                   edddddd	             ej                   edaddddd	             ej                   edLdRdddd	             ej                   edLdjdddd	             ej                   eddYdddd	             ej                   edddRdd d	             ej                   ediddrd!d"d*	             ej                   eddVddd#d	             ej                   edxddjdd$d*	             ej                   eddddd%d	             ej                   eddZdd!d&d	             ej                   eddjddd'd	             ej                   edddސdd(d)	      ej
                  j                  d      J       ej                   eddddd*d	             ej                   eddd]d!d+d	             ej                   eddoddd,d	             ej                   edrddVdd-d	             ej                   edoddRdd.d	             ej                   edkddVdd/d	             ej                   ediddjd!d0d(	             ej                   edidddd1d	             ej                   edddjdd2d	             ej                   edddd3d4d)	      ej
                  j                  d      J       ej                   edddd5d6d	             ej                   edddid7d8d	             ej                   edddRd7d9d	             ej                   edUdRdd:d;d	             ej                   edadZdd<d=d(	             ej                   edaddِd>d?d	             ej                   edddސd<d@d(	             ej                   edɐddVdAdBd	             ej                   edQddVdCdDd	             ej                   edkdMddEdFd	             ej                   edQdd|dCdGd	             ej                   edddd7dHd	             ej                   edkddd7dId(	             ej                   edddid7dJd	             ej                   edYdRdd:dKd	             ej                   edddd>dLd	             ej                   eddodZd7dMd(	             ej                   edrddVdCdNd$	             ej                   edoddRd7dOd	             ej                   edddVd:dPd	             ej                   eddodjd5dQd	             ej                   eddidMd<dRd	             ej                   edidkddSdTdU	                  dV        Zej
                  j                  dg  ej                   edddodWdXdY	             ej                   eddddZd[d	             ej                   edLd]ddWd\d	             ej                   edddRdWd]d^	             ej                   edUdiddWd_d	             ej                   eddRddWd`d)	      ej
                  j                  d      J       ej                   eddYdRdZdad(	             ej                   edadkddbdcdd	             ej                   edd]ddZded(	             ej                   edQd]ddZdfd	             ej                   edQdVddgdhd	             ej                   eddddWdid	             ej                   eddjddgdjd	             ej                   edQdjddbdkd	             ej                   eddRddZdldD	             ej                   eddddgdmd	             ej                   edddMdbdnd	             ej                   eddodZdZdod	             ej                   edrdkdMdWdpdq	             ej                   eddidRdWdrd	             ej                   edddVdZdsd	             ej                   edkddjdWdtd	             ej                   edddVdgdud	             ej                   edkddjdbdvd	             ej                   eddddwdxd)	      ej
                  j                  d      J       ej                   edLdddydzd	             ej                   edddZd{d|d(	             ej                   edaddd}d~d	             ej                   edddddd	             ej                   edoddoddd	             ej                   edUddddd	             ej                   edddސdddY	             ej                   edddddd	             ej                   edxdMdd}dd	             ej                   edddkddd(	             ej                   edddkddd	             ej                   edQdjdddd	             ej                   edkdRdddd*	             ej                   edddِddd	             ej                   edQdkdd{dd	             ej                   edddMddd	             ej                   edrddZddd	             ej                   edddMddd	             ej                   eddddydd	             ej                   eddoddyddĬ	             ej                   edddZddd	             ej                   eddd]ddd	             ej                   edkddjddd	                  d        Zej
                  j                  d ej                   edUdVdddd	             ej                   edd]dddd	             ej                   edddddd	             ej                   edd]d|ddd	             ej                   edadVd|ddd	             ej                   edaddddd*	             ej                   edUddddd	             ej                   edddddd	             ej                   eddjdddd	             ej                   edddddd	             ej                   edadZdddd	             ej                   eddRdddd	             ej                   edYdVdddd	             ej                   edddddd	             ej                   edYddddd	             ej                   eddMdddd	             ej                   edxdMdddd	             ej                   eddddddu	             ej                   edQdZdddd	             ej                   edxdRdddd	             ej                   edxddddd	             ej                   edYdZdddd	             ej                   edYdRdddd	             ej                   edYdRdddd	             ej                   edddddd	            g      d        Zej
                  j4                   eed«      dÄ               ZdĄ Zy(  
TestHyp2f1a  Tests for hyp2f1 for complex values.

    Expected values for test cases were computed using mpmath. See
    `scipy.special._precompute.hyp2f1_data`. The verbose style of specifying
    test cases is used for readability and to make it easier to mark individual
    cases as expected to fail. Expected failures are used to highlight cases
    where improvements are needed. See
    `scipy.special._precompute.hyp2f1_data.make_hyp2f1_test_cases` for a
    function to generate the boilerplate for the test cases.

    Assertions have been added to each test to ensure that the test cases match
    the situations that are intended. A final test `test_test_hyp2f1` checks
    that the expected values in the test cases actually match what is computed
    by mpmath. This test is marked slow even though it isn't particularly slow
    so that it won't run by default on continuous integration builds.
    hyp2f1_test_caseg      ?g?iy??r   r   )r   r   r   r   r   r    y      ?        yV?t[59?r   y. |?lo8?iyx R?gvIh%<=g	@y>
ףp=?|Gz?g333333?yQ?        c                 J    |\  }}}}}}t        t        ||||      ||       y )Nr    r   r   selfr)   r   r   r   r   r   r    s           r   test_c_non_positive_intz"TestHyp2f1.test_c_non_positive_intK   s.    h &6"1aHdq!Q*H4@r   g      ?y
d?        g(@g       @g(\O4@y*kA        g33333#r@g     t@g@yk|@X        g-q=gffffff"@g     l@y:5>dA        g-a=yk@5>dA        gdy=gLYgfffffyg33333eyF%佰G        g     e@g)igfffffb@youMď$        gfffffYgL4g?y(D        gt =g33333Sigfffff&N@yRU3T        c                 n    |\  }}}}}}|dk(  r||z
  |z
  dkD  sJ t        t        ||||      ||       y)z^Tests for case z = 1, c - a - b > 0.

        Expected answers computed using mpmath.
           r   r/   Nr0   r1   s           r   test_unital_argumentzTestHyp2f1.test_unital_argument   sI    t &6"1aHdAv!a%!)a-''q!Q*H4@r   y              y+i,?        g433333@y7G&SԾ        g     k@ǧV@g`@y -$ F7        gHz>g333333TyL"CA        l        zFails on 32 bit.)	conditionreason)marksc                     |\  }}}}}}t        d|z   |z
  |z
        dk  rt        |dz         dk  sJ t        t        ||||      ||       y)z^Tests for case z ~ -1, c ~ 1 + a - b

        Expected answers computed using mpmath.
        r5   r   r/   Nr   r   r   r1   s           r    test_special_case_z_near_minus_1z+TestHyp2f1.test_special_case_z_near_minus_1@  s\    j &6"1aHd1q519q=!E)c!a%j5.@@@q!Q*H4@r   gj{k8 @gQDi?y5P?0y,B.j?kggRigKgty/y       @0yyv?1AAeg-1 @gHh@y)14#<6i1Gg|=gB!uZgsStyl(?`Cy5ԿyaƮ('qgog @yL2|R?ѓB*?yP^Cy? ?y4=2UX6K[:g;R@y]AאPE0Cig@g333ENHAy       @       @y4$?s)0>c                     |\  }}}}}}|t        |      k(  r|dk  s|t        |      k(  r|dk  sJ t        t        ||||      ||       y )Nr   r/   )intr   r   r1   s           r   test_a_b_negative_intz TestHyp2f1.test_a_b_negative_inty  sU    l &6"1aHdCF{q1uSVA==q!Q*H4@r   g      gbɰg      /yl(?l(yJ?^&?gAfc=g      !@y$i8Q@#;$gAfc=g      @yl(?0yU tv?gdy=y4P^C?l(y{h`?@,/gާ7yx5? ?yj?<?CXic                     |\  }}}}}}t        ||z
  t        ||z
        z
        dk  r||z
  dk  s*t        ||z
  t        ||z
        z
        dk  r||z
  dk  sJ t        t        ||||      ||       y )Nr   r   r/   )r   r>   r   r   r1   s           r   :test_a_b_neg_int_after_euler_hypergeometric_transformationzETestHyp2f1.test_a_b_neg_int_after_euler_hypergeometric_transformation  s    t &6"1aHdQQU#$u,QQQU#$u,Q	
< 	q!Q*H4@r   gy]Q/y ?`Cy5Կyg	?ת ?g+=gnho?yx5?x5?yi|8?:ASrg|=gb'y ?@y5?y9)@b$8@g+<g0z0@gԔ8 @y`Cy5?Dy5y_oڿ+ ug-=y@y5?0yܭ$@g!D)gPcP@yd?dֿgV瞯<y`Cy5?z5yեIp?88?gRcy?%g?zPoor convergence.)r8   yx5?z5yܓ8{b@*?c                     |\  }}}}}}t        |      dk  r|j                  dk\  sJ t        t        ||||      ||       y)z|z| < 0.9 and real(z) >= 0.?r   r/   Nr   r   r   r   r1   s           r   test_region1zTestHyp2f1.test_region1  sI    D &6"1aHd1v|!++q!Q*H4@r   y`Cy5Կ@y5?y$i^?`o?gl0@gXQ @y5P`Cy5Կy><Ia-
>g:0y5>gda0@y00yb?7@p9g՗' @y`Cy5ԿDy5yT?lZu{ڿg>Vyz5`Cy5?yy>T	;*?gڏyzR@GI@ghyz5x5?yтq@8Tyz50y&
@??gvIh%,=g%+g
?y`Cy5Կ5Py=?@=	Yx<pgqyDy5`Cy5Կy
-=@T~n 6@yDy50y
W`?|6dy`Cy5Կz5y85|@.AyRJ?x?nӿy5P0y84?_ᴾ?yz5Dy5y-@^cy즻@eCgV瞯<yGq?+g\1/yDy5x5?y`B8Agմ/Qyq?^Ғ-?y0 ?y)b?rt{?y0z5yf|#SI\y0`Cy5?y-?Y|?yDy5`Cy5?y<nk(@$nSyz5 ?ySh?>RyX7>~rX@42c                     |\  }}}}}}t        |      dk  r|j                  dk  sJ t        t        ||||      ||       y)z|z| < 1 and real(z) < 0.r5   r   r/   NrD   r1   s           r   test_region2zTestHyp2f1.test_region2z  sI    B &6"1aHd1vzaffqj((q!Q*H4@r   g     @0@g      g      yx5?@y5?y^->xcg     /g      @g      y5P?`Cy5?yM\iƔ\g      @yx5?Dy5yAޒm4mg      g      y2ş?}q^oҿg      ?g      @y+}<]#xX@y4⦷?3S	0g      y5P? ?y`B3A>5C;Ay_qd#Z?yZy!Aj6my
B6&yعjޥ?XR¿y5P?`Cy5Կy[^0|UFt@yR[?gB?g     0@y;쿧kg:0yE>zUnhandled parameters.g      yZh@7})ʱg      @yǾܬ]@x͠AytX| ƒRAywr|Y1AARyWQIAyhü'}eqyՊ8?QD?y@y5?x5?y~Cujy2}@?1OSg?y@y5?z5yGU<ARt%3@yT85@+08@ygТ@fȀAy]xO@FygSsa@yÁ32Ao<hKAy4B?3V?yN?{E7g&.>y~y> As4 Ay=ۊ-%ΰ7?c                     |\  }}}}}}dt        |      cxk  rdk  rn J t        d|z
        dk  sJ t        t        ||||      ||       y)z"0.9 <= |z| <= 1 and |1 - z| < 0.9.rC   r5   r/   Nr;   r1   s           r   test_region3zTestHyp2f1.test_region3  sZ    T
 &6"1aHdc!f!!66c!a%j3&666q!Q*H4@r   y ?՗
Z}y{i{4C@&F>g       @ytO#,4?՗
Z}y'OV/xTyP0*9AJOpDg      0@yJ/:XBrg      @y7wd?gh㈵>y:Tq?@?y ?՗
Z}?yb&?T,#?r
   yT?z]DytO#,4?՗
Z}?y1`-w?01cy ky 6LyED @y'[RjݻyyU쿢f*E @y4y?f?y+*9,gMbP?yeL@>9@yϞQ}_@y}X4;@A,GIyqR!)?-?yNT+N@>By?~.9M@yXR>@bNj}Ϧ:yYˊ?ZEyi@CPHmë@yy!?lFX?y [? Uf?y](?T?y>e@yy!?jFXy(D!&nyVy\ @!ݨy@6Qk?lFX?yʈ NƐ<y<?lFX?yLaa'*@6-*A@y<?T?y4?a&[֮gοy}>Ӓ@+.AP@y@6Qk?jFXyϝ#9Ġ_@y](?Ty_k@?p~yXA/?T?y|WE AgܢOAy&+￉31@yl^ @Nt~yEDC@yw3>#i.y* Ay݃}K?""?y2ODGA+Ay ,J8l?|p5˿y@0-nq@y"Yښ4sWKR@y0BCEhBNySd?F?yXA/?TyPlQ;N@g8J==c                     |\  }}}}}}dt        |      cxk  rdk  rn J t        d|z
        dk\  sJ t        t        ||||      ||       y)z0.9 <= |z| <= 1 and |1 - z| >= 1.

        This region is unhandled by of the standard transformations and
        needs special care.
        rC   r5   r/   Nr;   r1   s           r   test_region4zTestHyp2f1.test_region4  sZ    b &6"1aHdc!f!!77c!a%jC&777q!Q*H4@r   y&Jvm?T?y9?梤΀gHj>y&Jvm?Ty
`C0˝7y[
*2yw3BLSg+=yz5?COyXI@T!NyI	NiYytO#,4?Ty׮[՚)-ڤAg-C6
?y!'h@qiq@y2$н'?cҳ?ytO#,4?T?y,AmڑyAe4y/ ?B`s?y(&	@:˕)	y9MR@b@yS.׿Ӄ?y2F$@EDƓyV'c)d yRQ"(@!-gMb@?yL7@IX@yv1m@f4^@yĴگbBui'6(_By"NhVk0@y)F+]@yy!?-tbyטp~׋J?y<?-tb?y^?]ѽ?y](?lFX?yFMI@(v@yXA/?jFXybp֛ZއnoBAyiF?-tb?yW>A`Тy<?-tby?D6?!48@y ?T?yf|^)c:My ?lFX?y1jGV`+@I@yI_˿G pysh?Gġ?yXA/?lFX?yI?cnx@?y](?jFXyb.OǸ4y ?jFXy:&@A0bfy^Dh@ݾu@y ?TyM;HBnM+By9~:1<y| ?aPe2?y Ą@*Ky@6Qk?-tb?yU5q?38yA7&/1)@ynDǿO?x?y](?-tbymAAyÀD?0Д@gMg<yβK@]C@c                     |\  }}}}}}dt        |      cxk  rdk  r$n J t        d|z
        dk\  r|j                  dk\  sJ t        t        ||||      ||       y)z11 < |z| < 1.1 and |1 - z| >= 0.9 and real(z) >= 0r5   皙?rC   r   r/   NrD   r1   s           r   test_region5zTestHyp2f1.test_region5  sd    Z &6"1aHd3q6CEECAJ#$5!&&A+EEq!Q*H4@r   y5Px5?yj]+Bl?yDy5Dy5y.թ'."thyz55Pyٞ?_bMοy5Pz5yˡ?5rZ]?yhF?@҅PyR,\i@0gA@yDy5@y5?yY6c$#y|N"@y?v:[y0 DEw?&Y9߿ylboE,S*5yXٕ*B@vKdo@yxs6A{;yz55P?yt _iNL<y( @uV1?yE*l>@IryC?.IyOKTO9W?ό>7ᘿyEi3?:p?y3¿gF?yQ5dQX6@ySͧ䄪}yAHq@3'U@yc4V$k$ynt`_OAr5      y      @      @yŞμ?DB]?c                     |\  }}}}}}t        |      dkD  r7dt        |      cxk  rdk  r%n n"t        d|z
        dk\  r|j                  dk\  rJ t        t        ||||      ||       y)z|z| > 1 but not in region 5.r5   rM   rC   r   r/   NrD   r1   s           r   test_region6zTestHyp2f1.test_region6  sp    B &6"1aHdFQJSV!c!c!a%jC&7AFFaK	
I 	q!Q*H4@r   z1.0.0c           
      (   t        |       D cg c]/  }|j                  d      rt        t        | |            r|dk7  r|1 }}|D ]E  }| j	                  t        | |            }|D ]#  \  }}}}}}	t        t        ||||      |d       % G yc c}w )a  Test that expected values match what is computed by mpmath.

        This gathers the parameters for the test cases out of the pytest marks.
        The parameters are a, b, c, z, expected, rtol, where expected should
        be the value of hyp2f1(a, b, c, z) computed with mpmath. The test
        recomputes hyp2f1(a, b, c, z) using mpmath and verifies that expected
        actually is the correct value. This allows the data for the tests to
        live within the test code instead of an external datafile, while
        avoiding having to compute the results with mpmath during the test,
        except for when slow tests are being run.
        testtest_test_hyp2f1gziu6<r/   N)dir
startswithcallablegetattr_get_test_parametersr   r   )
r2   test_methodtest_methodsparamsr   r   r   r   r   _s
             r   rT   zTestHyp2f1.test_test_hyp2f1	  s     ,/t9
+4K%%f-WT;/0-- 9 	 
 (K..wt[/IJF+1'1aHa	!Q1 5xhO ,2 (
s   4Bc                     |j                   D cg c]4  }|j                  dk(  r#|j                  d   D ]  }|j                  d    6 c}}S c c}}w )z4Get pytest.mark parameters for a test in this class.parametrizer5   r   )
pytestmarknameargsvalues)r2   rZ   markcases       r   rY   zTestHyp2f1._get_test_parameters	  sX     (3'='=
'=tyyM)		! KKN$ '=
 	
 
s   9AN)r!   r"   r#   __doc__pytestrd   r_   paramr   npinfnanr3   r6   xfailsysmaxsizer<   r?   rA   rE   rG   rI   rK   rN   rQ   slowr   r   rT   rY   r&   r   r   r(   r(   :   s7,     [[FLL VVb[	 FLL#	 FLL #	 FLL #	 FLL VVb[	 FLLVVb[	 FLL E	 FLL A	 FLL G	 FLL D	 FLL4	Ko	
rfAgrfA [[FLL4	 FLL3	 FLL5	 FLL2	 FLL2	 FLL7	 FLL7	 FLL7	 FLL7	 FLL7	 FLL9	Oq	
tjAktjA [[FLL4  FLL'8	 FLL8	 FLL3 kk''!kkE1- ( =,	
/`Aa/`A [[FLL&(>J	 FLL()-I	 FLL'(>K	 FLL()=K	 FLL&'>J	 FLL()>L	 FLL'(>J	 FLL H	OQ	
TjAkTjA
 [[FLL)=F	 FLL)>C	 FLL)>E	 FLL)=E	 FLL)>F	S3	
6nAo6nA [[FLL)))>E	 FLL())=E	 FLL&('>D	 FLL&('<F	 FLL'''>C	 FLL&''>C	 FLL)))=F	 FLL)))=F kk''/B'C
 FLL&('=E	e\	
_@AA_@A [[FLL&('>E	 FLL(((>K	 FLL('(@F	 FLL''(=F	 FLL&'(>E	 FLL&')>B	 FLL(')>B	 FLL')'?C	 FLL'((>C	 FLL('(=D	 FLL'))>F	 FLL())>D	 FLL'('@E	 FLL(('?E	 FLL(('=A	 FLL(((>D	 FLL(((@A	 FLL)()=D	 FLL)()>E	 FLL()(@B	 FLL))(?C	 FLL('(?E	 FLL)((=C	 FLL)()?F	 FLL))(>B	c{	
~~A~~A [[D	
FLL=D	D	
 FLL=D	D	
* FLL<D	+D	
> FLL=E	?D	
R FLL<D	SD	
f FLL=D	gD	
z FLL>C	{D	
N FLL<G	OD	
b FLL<B	cD	
v FLL'))>B	wD	
J FLL>F	KD	
^ FLL('(=C	_D	
r FLL(('>F	sD	
F FLL=E kk''2 ( GD	
` FLL=B	aD	
t FLL>B	uD	
H FLL=C	ID	
\ FLL<B	]D	
p FLL=C	qD	
D FLL)('>F	ED	
X FLL(('=K	YD	
l FLL>F	mD	
@ FLL(('=D	AD	
T FLL=C	UD	
h FLL&((=C	iD	
| FLL=C	}D	
P FLL=A	QD	
d FLL''(=D	eD	
x FLL(''=D	yD	
L	 FLL(((=D	M	D	
`	 FLL()(=A	a	D	
t	 FLL<E	u	D	
GP
AQ
GP
A [[g	
FLL=C	g	
 FLL((=E	g	
* FLL((=C	+g	
> FLL'(=D	?g	
R FLL&)=J	Sg	
f FLL&)(=D	gg	
z FLL((=D	{g	
N FLL))=D	Og	
b FLL(=B	cg	
v FLL)((=D	wg	
J FLL))=C	Kg	
^ FLL)('=C	_g	
r FLL))(=D	sg	
F FLL))'=D	Gg	
Z FLL=E kk''2 ( [g	
t FLL)''=C	ug	
H FLL'=C	Ig	
\ FLL'=D	]g	
p FLL(=E	qg	
D FLL)=C	Eg	
X FLL(=E	Yg	
l FLL)=C	mg	
@ FLL(=E	Ag	
T FLL)=D	Ug	
h FLL>D kk''2 ( ig	
B FLL=C	Cg	
V FLL>C	Wg	
j FLL()>D	kg	
~ FLL')(>D	g	
R	 FLL')(>D	S	g	
f	 FLL'>E	g	g	
z	 FLL>C	{	g	
N
 FLL)(>B	O
g	
b
 FLL((=A	c
g	
v
 FLL(=C	w
g	
J FLL(')=C	Kg	
^ FLL>C	_g	
r FLL'>C	sg	
F FLL>E	Gg	
Z FLL()(>E	[g	
n FLL(>E	og	
B FLL)>C	Cg	
V FLL(=E	Wg	
j FLL)>D	kg	
~ FLL(>C	g	
R FLL)=D	Sg	
f FLL(>D	gg	
z FLL(=D 	{g	
jVAWjVA [[g	
FLL(=G	g	
 FLL=C	g	
* FLL&')=D	+g	
> FLL()=B	?g	
R FLL'=D	Sg	
f FLL()=C kk''2 ( gg	
@ FLL()=D	Ag	
T FLL'=D	Ug	
h FLL)'=C	ig	
| FLL('=G	}g	
P FLL(()=B	Qg	
d FLL)'=C	eg	
x FLL)=C	yg	
L FLL()(=C	Mg	
` FLL))'=B	ag	
t FLL=E	ug	
H FLL(=D	Ig	
\ FLL)=B	]g	
p FLL(=D	qg	
D FLL)=C	Eg	
X FLL(=C	Yg	
l FLL)=C	mg	
@ FLL(=D	Ag	
T FLL)=D	Ug	
h FLL=I kk''2 ( ig	
B FLL&=E	Cg	
V FLL()=B	Wg	
j FLL'()=B	kg	
~ FLL=>	g	
R	 FLL(=C	S	g	
f	 FLL'''=D	g	g	
z	 FLL=C	{	g	
N
 FLL'=D	O
g	
b
 FLL)('=E	c
g	
v
 FLL=D	w
g	
J FLL=E	Kg	
^ FLL()(=B	_g	
r FLL)=D	sg	
F FLL=E	Gg	
Z FLL(=C	[g	
n FLL(=C	og	
B FLL)=C	Cg	
V FLL(=C	Wg	
j FLL(=E	kg	
~ FLL(=F	g	
R FLL)<B	Sg	
f FLL'=C 	gg	
z FLL)=B	{g	
jVAWjVA [[FLL'('>J	 FLL('(<M	 FLL(''>F	 FLL(')>D	 FLL'()>C	 FLL'''>C	 FLL'('=D	 FLL('(>D	 FLL()(>D	 FLL('(>E	 FLL'))>C	 FLL()(>C	 FLL(((>D	 FLL)'(>C	 FLL('(>C	 FLL)()>C	 FLL)()=E	 FLL)('=C	 FLL()(>G	 FLL))(>D	 FLL)('>E	 FLL()'>C	 FLL())>C	 FLL())>B	 FLLE	c{	
~~A~~A [[67#P $ P2
r   r(   )rf   rm   rg   numpyri   typingr   numpy.testingr   scipy.specialr   scipy.special._testutilsr   r   r   ImportErrorr   r   r(   r&   r   r   <module>rv      sb        )   A%
52Z b&
 b&
M  %8$F%s   A AA