
    shR             	       *&   S r SSKrSSKJr  SSKrSSKrSSKrSSK	J
r
Jr  SSKJrJrJr  SSKJrJrJrJrJrJrJrJr  SSKJrJrJrJr  SSKJrJ r J!r!J"r"  SS	K#J$r$  SS
KJ%r%  SSK&J'r'J(r(J)r)J*r*J+r+  SSK,J-r-  S r.\." 5       r/\%S 5       r0\%S 5       r1\" \Rd                  \
Rf                  5      \" S\
Rf                  5      S 5       5       r4\S 5       r5S r6\" \Rd                  \
Rf                  \
Rn                  \
Rp                  5      \" \Rd                  \
Rf                  \
Rr                  \
Rp                  5      \" S\
Rf                  \
Rn                  \
Rp                  5      \" S\
Rf                  \
Rr                  \
Rp                  5      S 5       5       5       5       r:\" \Rd                  \
Rf                  \
Rp                  5      \" S\
Rf                  \
Rp                  5      S 5       5       r;\" \Rd                  \
Rf                  \
Rn                  5      \" \Rd                  \
Rf                  \
Rr                  5      \" S\
Rf                  \
Rn                  5      \" S\
Rf                  \
Rr                  5      S 5       5       5       5       r<S r=\" \R|                  5      \" \
Rf                  S5      S 5       5       r?\" \R                  5      \" \
Rf                  S5      S 5       5       rA\" \R                  5      \" \
Rf                  S5      S 5       5       rC\" \R                  5      \" \
Rf                  S5      S 5       5       rE\" \R                  5      \" \
Rf                  S 5      S! 5       5       rG\" \R                  5      \" \
Rf                  S"5      S# 5       5       rI\S$ 5       rJ\S% 5       rK\S& 5       rL\" \R                  5      \" \R                  5      \" \
Rf                  S'5      S( 5       5       5       rO\" \R                  5      \" \R                  5      \" \
Rf                  S)5      S* 5       5       5       rR\S+ 5       rS\S, 5       rT\S- 5       rU\" \R                  5      \" \
Rf                  S.5      GSS/ j5       5       rW\S0 5       rX\S1 5       rY\S2 5       rZS3 r[\" \R                  5      \" \
Rf                  S45      GSS5 j5       5       r]\" \R                  5      \" \
Rf                  S65      S7 5       5       r_\GSS9 j5       r`\" \R                  5      \" \
Rf                  S:5      GSS; j5       5       rb\" \R                  5      \" \
Rf                  S<5      S= 5       5       rd\" \R                  5      GS	S> j5       rfS? rg\" \R                  5      S@ 5       ri\" \R                  5      SA 5       rk\" \R                  5      SB 5       rl\" \R                  5      SC 5       rm\" \R                  5      SD 5       roSE rp\" \R                  5      GSSF j5       rq\" \R                  5      GSSG j5       rr\SH 5       rs\SI 5       rt\SJ 5       ruSK rv\" \v" \sS8SL95      rw\" \v" \tS8SL95      rx\" \v" \sSMSL95      ry\" \v" \tSMSL95      rz\SN 5       r{\" \R                  5      GSSO j5       r|\" \R                  5      SP 5       r~\" \R                  5      SQ 5       r\" \GR                  5      SR 5       r\" \GR                  5      SS 5       r\" \GR
                  5      ST 5       r\" \GR                  5      SU 5       r\" \GR                  5      SV 5       r\" \GR                  5      SW 5       r\" \GR                  5      SX 5       r\SY 5       rSZ rS[ rS\ r\" \5      S] 5       r\" \5      S^ 5       rS_ r\" \5      S` 5       r\" \GR.                  5      Sa 5       r\Sb:  a  \" \
Rf                  Sc5      " \5        \Sd 5       rGS
Se jr\" \" \s5      5      r\" \" \5      5      r\" \" \SMSf95      rSg r\" \" \5      5      r\" \" \5      5      r\" \" \5      5      r\Sh 5       r\Si 5       r\" \GRH                  5      Sj 5       r\Sk 5       r\Sl 5       r\Sm 5       r\Sn 5       r\So 5       r\Sp 5       rSq r\" \GRZ                  5      Sr 5       r\" \GR^                  5      Ss 5       r\" \GRb                  5      St 5       r\" \GRf                  5      Su 5       r\" \GRj                  5      Sv 5       r\Sw 5       r\Sx 5       r\Sy 5       r\" \GRt                  5      Sz 5       r\" \GRx                  5      S{ 5       r\S| 5       r\" \GR~                  5      GSS} j5       r\S~ 5       r\GSS j5       r\" \GR                  5      GSS j5       r\" \GR                  5      GSS j5       r\" \GR                  5      GSS j5       r\GSS j5       r\" \GR                  5      GSS j5       r\" \GR                  5      GSS j5       r\" \GR                  5      GSS j5       rS r\" \5      S 5       rS r\" \GR                  5      GS	S j5       rS r\" \5      S 5       rS r\" \5      S 5       r\" \GR                  5      GSS j5       r\Sb:  a  \" \GR                  5      " \5        \S 5       r\S 5       r\" \GR                  5      GSS j5       r\" \GR                  5      S 5       rSr\S 5       r\S 5       r\S 5       r\" \GR                  5      S 5       r\S 5       r\S 5       rS r\" \5      S 5       r\S 5       r\" S 5      rS rS r\S 5       r\" S 5      r\S 5       rS r\S 5       r\S 5       r\" \GR                  5      GSS j5       r\" \GR                  5      GSS j5       r\" \GR                  5      S 5       r\" \GR                  5      S 5       r\S 5       r\S 5       r\S 5       Gr \S 5       Gr\S 5       Gr\" S 5      GrS Gr\" G\5      S 5       Gr\" \GR                  5      GS
S j5       GrS Gr\%S 5       Gr	\S 5       Gr
\" \GR                  5      \" \GR                  5      GSS j5       5       Gr\Sb:  a  \" \GR                  5      " G\5        \" \GR                  5      S 5       Gr\" \GR"                  5      GS
S j5       Gr\" \GR&                  \
Rf                  5      \" S\
Rf                  5      S 5       5       GrS Gr\S 5       Gr\S 5       GrS Gr\" \GR2                  5      S 5       Gr\" \GR2                  5      S 5       Gr\" \GR8                  5      S 5       Gr\" \GR<                  5      S 5       Gr\" \GR@                  5      S 5       Gr!\" \GRD                  5      GSS j5       Gr#\" S 5      Gr$\" S 5      Gr%\" \GRL                  5      S 5       Gr'\" \GRP                  5      GSS j5       Gr)\" \GRT                  5      S 5       Gr+\" \GRX                  5      GS
S j5       Gr-S Gr.\" \GR^                  5      GSS j5       Gr0\" \5      Gr1\" \5      Gr2\S 5       Gr3\S 5       Gr4\S 5       Gr5\S 5       Gr6\S 5       Gr7S Gr8G\9" SS15      Gr:S Gr;\" \GRx                  5      GSS j5       Gr<\" \GRz                  5      GS
S j5       Gr>G\?Gr@\" \GR                  5      GSS j5       GrBSGrC\" SG\C5      GrDSGrE\" SG\E5      GrFSGrG\" SG\G5      GrHS GrI\" \GR                  5      S 5       GrJ\" \GR                  5      S 5       GrKS GrLS GrMS GrN\" G\N5      S 5       GrO\" \GR                  5      GSS j5       GrQ\" \GR                  5      GSS j5       GrS\" \GR                  5      GSS j5       GrU\Sb:  a(  \" \GR                  5      \GR                  4S j5       GrX\" \GR                  5      S 5       GrZ\" \GR                  5      GSS j5       Gr\\" \GR                  5      S 5       Gr^\" \GR                  5      GSS j5       Gr`\" \GR                  5      GSS j5       Grb\S 5       Grc\S 5       Grd\S 5       Gre\S 5       GrfS Grg\" \GR                  5      " G\g" G\c5      5        \" \GR                  5      " G\g" G\d5      5        \" \GR                  5      " G\g" G\e5      5        \" \GR                  5      " G\g" G\f5      5        \GR                  " / SQ5      Grm\GR                  " / SQ5      Grn\S 5       Gro\S 5       Grp\S 5       Grq\" \GR                  5      S 5       Grs\S 5       GrtS Gru\" G\u5      S 5       Grv\" \GR                  5      S 5       Grx\S 5       GryGS  Grz\" G\z5      GS 5       Gr{\" \GR                  5      GSGS j5       Gr}\" \GR                  5      GS
GS j5       Gr\" \GR                   5      GS
GS j5       Gr\" \GR                  5      GSGS j5       Gr\" \GR                  5      GSGS j5       Grg(  z5
Implementation of math operations on Array objects.
    N)
namedtuple)typescgutils)overloadoverload_methodregister_jitable)as_dtypetype_can_asarraytype_is_scalarnumpy_versionis_nonelikecheck_is_integer	lt_floats
lt_complex)lower_builtinimpl_ret_borrowedimpl_ret_new_refimpl_ret_untracked)
make_array	load_item
store_item_empty_nd_impl)ensure_blas)	intrinsic)RequireLiteralValueTypingErrorNumbaValueErrorNumbaNotImplementedErrorNumbaTypeError)tuple_setitemc                  :     [        5         g! [         a     gf = fNFT)r   ImportError     j/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/np/old_arraymath.py_check_blasr'      s%       s   
 
c                    ^^^ [        U5      S-
  m[        R                  " [        R                  T5      mT" TU5      nUUU4S jnX44$ )z
This routine converts shape list where the axis dimension has already
been popped to a tuple for indexing of the same size.  The original shape
tuple is also required because it contains a length field at compile time
whereas the shape list does not.
   c           	      Z  > U R                  T5      n[        R                  " U5      nUu  pgS n[        T5       Hl  n	U R	                  [
        R                  U	5      n
U R                  X[
        R                  " T[
        R                  5      Xj/5      nUR                  X[U	5      nMn     U$ )Nc                 
    X   $ Nr$   )ais     r&   array_indexerB_create_tuple_result_shape.<locals>.codegen.<locals>.array_indexerD   s	    4Kr%   )	get_value_typer   get_null_valuerangeget_constantr   intpcompile_internalinsert_value)cgctxbuilder	signatureargslltuptytupin_shape_r/   r.   dataidxdatand
shape_listtuptys               r&   codegen+_create_tuple_result_shape.<locals>.codegen<   s    &&u-$$W- 	 rA((Q7G))'*/**Z*L+3*=?D &&s!4C  
r%   )lenr   UniTupler5   )tyctxrC   shape_tuplefunction_sigrE   rB   rD   s    `   @@r&   _create_tuple_result_shaperL   +   sD     
[	A	BNN5::r*E[1L*   r%   c                   ^	^
^ [        U[        R                  5      (       d  [        S5      eUR                  m	[        U5      m
T	T
:  a  Sm	T	nT
U-
  S-
  n/ nU[        R                  /U-  -  nU[        R                  /-  nU[        R                  /U-  -  n[        R                  " U5      mT" XU5      nU	U
U4S jnXx4$ )a0  
Generates a tuple that can be used to index a specific slice from an
array for sum with axis.  shape_tuple is the size of the dimensions of
the input array.  'value' is the value to put in the indexing tuple
in the axis dimension and 'axis' is that dimension.  For this to work,
axis has to be a const.
z axis argument must be a constantr   r)   c                 p  > U R                  T5      n[        R                  " U5      nUu  pgnS nU R                  X[        R
                  " 5       / 5      n	[        ST5       H  n
UR                  XYU
5      nM     UR                  XWT5      n[        TS-   T5       H  n
UR                  XYU
5      nM     U$ )Nc                      [        S S 5      $ r,   )slicer$   r%   r&   create_full_slice<_gen_index_tuple.<locals>.codegen.<locals>.create_full_slice   s    t$$r%   r   r)   )r1   r   r2   r6   r   slice2_typer3   r7   )r8   r9   r:   r;   r<   r=   r?   	value_argrQ   
slice_datar.   
axis_valuerB   rD   s              r&   rE   !_gen_index_tuple.<locals>.codegen{   s    &&u-$$W- !q	% ++G,1,=,=,?,.0
 q*%A&&s:C & ""3:> zA~r*A&&s:C +
r%   )	
isinstancer   Literalr   literal_valuerG   rS   r5   Tuple)rI   rJ   valueaxisbeforeafter
types_listrK   rE   rV   rB   rD   s            @@@r&   _gen_index_tuplera   T   s     dEMM**!"DEE##J	[	B R
 FK!OEJ5$$%..J5::,J5$$%--J KK
#ET2L>   r%   z	array.sumc           
         ^ UR                  S5      mU4S jnU R                  XX#[        UR                   S9S9n[        XUR                   U5      $ )Nr   c                 j   > Tn[         R                  " U 5       H  nXR                  5       -  nM     U$ r,   npnditeritem)arrcvzeros      r&   array_sum_impl!array_sum.<locals>.array_sum_impl   ,    3AMA  r%   ri   localsreturn_typer6   dictr   contextr9   sigr;   rl   resrk   s         @r&   	array_sumry      S     ??1D 
"
"7C*.*A # CCWsDDr%   c                     U $ r,   r$   )rh   rj   s     r&   _array_sum_axis_nopr|      s    Jr%   c                     ^ ^^^ UU UU4S jnU$ )Nc                   > U R                   nT(       d  US:  d  US:  a  [        S5      eX:  a  [        S5      e[        U R                  5      nX1   nUR	                  U5        [        X0R                  5      n[        R                  " UT[        T5      5      n[        U5       H  nT(       a   [        U R                  UT5      nX`U   -  nM*  US:X  a   [        U R                  US5      n	X`U	   -  nMP  US:X  a   [        U R                  US5      n
X`U
   -  nMv  US:X  a   [        U R                  US5      nX`U   -  nM  US:X  d  M  [        U R                  US5      nX`U   -  nM     T" US5      $ )a  
function that performs sums over one specific axis

The third parameter to gen_index_tuple that generates the indexing
tuples has to be a const so we can't just pass "axis" through since
that isn't const.  We can check for specific values and have
different instances that do take consts.  Supporting axis summation
only up to the fourth dimension for now.

typing/arraydecl.py:sum_expand defines the return type for sum with
axis. It is one dimension less than the input array.
r      zHNumba does not support sum with axis parameter outside the range 0 to 3.zaxis is out of bounds for arrayr)      )ndim
ValueErrorlistshapepoprL   re   fulltyper3   ra   )rh   r]   r   ashapeaxis_lenashape_without_axisresult
axis_indexindex_tuple_genericindex_tuple1index_tuple2index_tuple3index_tuple4const_axis_valis_axis_constoprk   s                r&   inner gen_sum_axis_impl.<locals>.inner   sn    xxax4!8  "G H H
 <>?? cii<

48K,dDJ?  /J&6syy*7E'G#122
 19#3CIIz1#ML,//FQY#3CIIz1#ML,//FQY#3CIIz1#ML,//FQY#3CIIz1#ML,//F+ *, &!}r%   r$   )r   r   r   rk   r   s   ```` r&   gen_sum_axis_implr      s    < <z Lr%   c                   ^ UR                   n[        USU5      " S5      n[        USS 5      c  [        R                  nO[        nUR
                  u  pxn	Sn
Sn[        U[        R                  5      (       a  UR                  nUS:  a  UR                  U-   nUS:  d  XR                  :  a  [        S5      eU R                  R                  U5      nU R                  X5      nUS   XS   4nUR                  XxU	/S9nSn
[!        XXe5      n[#        U5      mU4S	 jnU R%                  XX#5      n['        XUR                   U5      $ )
Ndtyper   r   Fz'axis' entry is out of boundsr   r;   Tc                    > T" X5      $ r,   r$   )rh   r]   r   compileds      r&   array_sum_impl_axis1array_sum_axis_dtype.<locals>.array_sum_impl_axis      ""r%   )rs   getattrre   taker|   r;   rX   r   rY   rZ   r   r   typing_contextresolve_value_typer4   replacer   r   r6   r   )rv   r9   rw   r;   rettyrk   r   ty_arrayty_axisty_dtyper   r   axis_valgen_implr   rx   r   s                   @r&   array_sum_axis_dtyper      s;   
 OOE5'5)!,D ufd#+WW $'HH!XMN'5==)) ..A%]]^;NA--!?<==((;;NK''@Awq')kk8<k= IH)H# 
"
"7
KCGcoosCCr%   c           
         ^ UR                  S5      mU4S jnU R                  XX#[        UR                   S9S9n[        XUR                   U5      $ )Nr   c                 j   > Tn[         R                  " U 5       H  nX#R                  5       -  nM     U$ r,   rd   )rh   r   ri   rj   rk   s       r&   rl   'array_sum_dtype.<locals>.array_sum_impl&  rn   r%   ro   rp   rr   ru   s         @r&   array_sum_dtyper   !  rz   r%   c                   ^ UR                   n[        USU5      " S5      n[        USS 5      c  [        R                  nO[        nUR
                  u  pxSn	Sn
[        U[        R                  5      (       a  UR                  n
U
S:  a  UR                  U
-   n
U
S:  d  XR                  :  a  SU
 S3n[        U5      eU R                  R                  U
5      nU R                  X5      nUS   U4nUR                  Xx/S9nSn	[!        XXe5      n[#        U5      mU4S	 jnU R%                  XX#5      n['        XUR                   U5      $ )
Nr   r   r   Fz'axis' entry (z) is out of boundsr   Tc                    > T" X5      $ r,   r$   )rh   r]   r   s     r&   r   +array_sum_axis.<locals>.array_sum_impl_axisV  r   r%   )rs   r   re   r   r|   r;   rX   r   rY   rZ   r   r   r   r   r4   r   r   r   r6   r   )rv   r9   rw   r;   r   rk   r   r   r   r   r   msgr   r   r   rx   r   s                   @r&   array_sum_axisr   1  sB   
 OOE5'5)!,D ufd#+WW ((XMN'5==)) ..A%]]^;NA--!?">"22DEC!#&&((;;NK''@Aw kk2k3 IH)H# 
"
"7
KCGcoosCCr%   c                     U R                   [        R                  :X  a'  [        R                  " U5      R	                  U 5      nU$ U R                  U5      nU$ r,   )r   re   timedelta64int64view)r   r\   acc_inits      r&   get_accumulatorr   ]  sF    zzR^^#88E?''. O ::e$Or%   prodc                    ^ [        U [        R                  5      (       a)  [        U R                  5      n[        US5      mU4S jnU$ g )Nr)   c                 j   > Tn[         R                  " U 5       H  nXR                  5       -  nM     U$ r,   rd   r-   ri   rj   r   s      r&   array_prod_impl#array_prod.<locals>.array_prod_implm  s,    AYYq\VVX "Hr%   )rX   r   Arrayr	   r   r   )r-   r   r   r   s      @r&   
array_prodr   e  sB     !U[[!!!"5!,	  "r%   cumsumc                   ^^ [        U [        R                  5      (       a  U R                  [        R                  ;   nU R                  [        R
                  :H  nU(       a2  U R                  R                  [        R                  R                  :  d  U(       a  [        [        R                  5      mO[        U R                  5      m[        TS5      mUU4S jnU$ g )Nr   c                    > [         R                  " U R                  T5      nTn[        U R                  5       H  u  p4X$-  nX!U'   M     U$ r,   re   emptysize	enumerateflatr-   outri   idxrj   r   r   s        r&   array_cumsum_impl'array_cumsum.<locals>.array_cumsum_impl  F    ((1665)CA#AFF+C , Jr%   
rX   r   r   r   signed_domainbool_bitwidthr5   r	   r   )r-   
is_integeris_boolr   r   r   s       @@r&   array_cumsumr   v  s     !U[[!!WW 3 33
''U[[(177++ejj.A.AAUZZ(EQWW%E"5!,	 ! ' "r%   cumprodc                   ^^ [        U [        R                  5      (       a  U R                  [        R                  ;   nU R                  [        R
                  :H  nU(       a2  U R                  R                  [        R                  R                  :  d  U(       a  [        [        R                  5      mO[        U R                  5      m[        TS5      mUU4S jnU$ g )Nr)   c                    > [         R                  " U R                  T5      nTn[        U R                  5       H  u  p4X$-  nX!U'   M     U$ r,   r   r   s        r&   array_cumprod_impl)array_cumprod.<locals>.array_cumprod_impl  r   r%   r   )r-   r   r   r   r   r   s       @@r&   array_cumprodr     s     !U[[!!WW 3 33
''U[[(177++ejj.A.AAUZZ(EQWW%E"5!,	 "!' "r%   meanc                 H  ^ [        U [        R                  5      (       a  U R                  [        R                  [        [        R                  /5      -  ;   nU(       a  [        [        R                  5      nO[        U R                  5      n[        US5      mU4S jnU$ g )Nr   c                    > Tn[         R                  " U 5       H  nXR                  5       -  nM     XR                  -  $ r,   )re   rf   rg   r   r   s      r&   array_mean_impl#array_mean.<locals>.array_mean_impl  s5     AYYq\VVX "vv:r%   )
rX   r   r   r   integer_domain	frozensetr   r	   float64r   )r-   	is_numberr   r   r   s       @r&   
array_meanr     sw     !U[[!!GGu33i6NNN	U]]+EQWW%E"5!,	 # "r%   varc                 L    [        U [        R                  5      (       a  S nU$ g )Nc                    U R                  5       nSn[        R                  " U 5       HF  nUR                  5       U-
  nU[        R                  " U[        R
                  " U5      -  5      -  nMH     X R                  -  $ Nr   )r   re   rf   rg   realconjr   )r-   mssdrj   vals        r&   array_var_impl!array_var.<locals>.array_var_impl  sc    A CYYq\vvx!|rwwsRWWS\122 " <r%   rX   r   r   )r-   r   s     r&   	array_varr     s'     !U[[!!		   "r%   stdc                 L    [        U [        R                  5      (       a  S nU$ g )Nc                 (    U R                  5       S-  $ N      ?)r   r-   s    r&   array_std_impl!array_std.<locals>.array_std_impl  s    557c>!r%   r   )r-   r   s     r&   	array_stdr     s'     !U[[!!	" 	 "r%   c                 
    X:  $ r,   r$   r-   min_vals     r&   min_comparatorr    
    ;r%   c                 
    X:  $ r,   r$   r   s     r&   max_comparatorr    r  r%   c                     gNFr$   r   s    r&   return_falser    s    r%   minc                   ^^ [        U [        R                  5      (       d  g [        U R                  [        R                  [        R
                  45      (       a  [        R                  m[        mO[        U R                  [        R                  5      (       a  [        mS n[        U5      mOL[        U R                  [        R                  5      (       a  [        R                  m[        mO[        m[        mUU4S jnU$ )Nc                     U R                   UR                   :  a  gU R                   UR                   :X  a  U R                  UR                  :  a  ggNTFr   imagr   s     r&   	comp_funcnpy_min.<locals>.comp_func  ;    vv$7<<'66GLL(r%   c                 2  > U R                   S:X  a  [        S5      e[        R                  " U 5      n[	        U5      R                  S5      nT" U5      (       a  U$ U H5  nUR                  5       nT" U5      (       a  Us  $ T" XB5      (       d  M3  UnM7     U$ )Nr   zDzero-size array to reduction operation minimum which has no identityr   r   re   rf   nextr   rg   )r-   it	min_valuer   rj   
comparatorpre_return_funcs        r&   impl_minnpy_min.<locals>.impl_min      66Q; = > > YYq\HMM!$	9%%D		Aq!!!''	  r%   )rX   r   r   r   
NPDatetimeNPTimedeltare   isnatr  Complexr  r   Floatisnan)r-   r  r  r  r  s      @@r&   npy_minr!         a%%!''E,,e.?.?@AA((#
	AGGU]]	+	+&	 &i0
	AGGU[[	)	)((#
&#
$ Or%   maxc                   ^^ [        U [        R                  5      (       d  g [        U R                  [        R                  [        R
                  45      (       a  [        R                  m[        mO[        U R                  [        R                  5      (       a  [        mS n[        U5      mOL[        U R                  [        R                  5      (       a  [        R                  m[        mO[        m[        mUU4S jnU$ )Nc                     U R                   UR                   :  a  gU R                   UR                   :X  a  U R                  UR                  :  a  ggr  r  )r-   max_vals     r&   r  npy_max.<locals>.comp_func)  r  r%   c                 2  > U R                   S:X  a  [        S5      e[        R                  " U 5      n[	        U5      R                  S5      nT" U5      (       a  U$ U H5  nUR                  5       nT" U5      (       a  Us  $ T" XB5      (       d  M3  UnM7     U$ )Nr   zDzero-size array to reduction operation maximum which has no identityr  )r-   r  	max_valuer   rj   r  r  s        r&   impl_maxnpy_max.<locals>.impl_max9  r  r%   )rX   r   r   r   r  r  re   r  r  r  r  r   r  r   )r-   r  r*  r  r  s      @@r&   npy_maxr,    r"  r%   c                 j   U R                   S:X  a  [        S5      e[        R                  " U 5      n[	        U5      R                  S5      nSn[        R                  " U5      (       a  U$ SnU H@  nUR                  5       n[        R                  " U5      (       a  Us  $ Xb:  a  UnUnUS-  nMB     U$ Nr   *attempt to get argmin of an empty sequencer)   r   r   re   rf   r  r   r  rg   )arryr  r  min_idxr   r   rj   s          r&   array_argmin_impl_datetimer3  N      yyA~EFF	4BRa IG	xx	
CIIK88A;;J=IGq  Nr%   c                 (   U R                   S:X  a  [        S5      eU R                   H  nUnSn  O   [        R                  " W5      (       a  W$ SnU R                   H0  n[        R                  " U5      (       a  Us  $ X:  a  UnUnUS-  nM2     W$ r.  r   r   r   re   r   r1  rj   r  r2  r   s        r&   array_argmin_impl_floatr8  d      yyA~EFFYY	  
xx	
CYY88A;;J=IGq  Nr%   c                     U R                   S:X  a  [        S5      eU R                   H  nUnSn  O   [        S5      eSnU R                   H  nX:  a  UnUnUS-  nM     U$ )Nr   r/  unreachabler)   )r   r   r   RuntimeErrorr7  s        r&   array_argmin_impl_genericr=  z  ss    yyA~EFFYY	 
 =))
CYY=IGq	 
 Nr%   argminc                 @  ^ [        U R                  [        R                  [        R                  45      (       a  [
        mO6[        U R                  [        R                  5      (       a  [        mO[        m[        U5      (       a
  SU4S jjnU$ [        XT5      nU$ )Nc                    > T" U 5      $ r,   r$   r-   r]   flatten_impls     r&   array_argmin_impl'array_argmin.<locals>.array_argmin_impl      ?"r%   r,   )rX   r   r   r  r  r3  r  r8  r=  r   %build_argmax_or_argmin_with_axis_impl)r-   r]   rC  rB  s      @r&   array_argminrG    ~     !''E,,e.?.?@AA1	AGGU[[	)	).04	#  B\
 r%   c                 j   U R                   S:X  a  [        S5      e[        R                  " U 5      n[	        U5      R                  S5      nSn[        R                  " U5      (       a  U$ SnU H@  nUR                  5       n[        R                  " U5      (       a  Us  $ Xb:  a  UnUnUS-  nMB     U$ Nr   z*attempt to get argmax of an empty sequencer)   r0  )r1  r  r)  max_idxr   r   rj   s          r&   array_argmax_impl_datetimerL    r4  r%   c                 (   U R                   S:X  a  [        S5      eU R                   H  nUnSn  O   [        R                  " W5      (       a  W$ SnU R                   H0  n[        R                  " U5      (       a  Us  $ X:  a  UnUnUS-  nM2     W$ rJ  r6  r1  rj   r)  rK  r   s        r&   array_argmax_impl_floatrO    r9  r%   c                     U R                   S:X  a  [        S5      eU R                   H  nUnSn  O   SnU R                   H  nUW:  a  UnUnUS-  nM     W$ rJ  )r   r   r   rN  s        r&   array_argmax_impl_genericrQ    sj    yyA~EFFYY	 
 CYYy=IGq	 
 Nr%   c                    ^^^ [        US5        [        R                  m[        [	        U R
                  5      5      mSUUU4S jjnU$ )zp
Given a function that implements the logic for handling a flattened
array, return the implementation function.
r]   c                   > US:  a  U R                   U-   nUS:  d  XR                   :  a  [        S5      eU R                   S:X  a  T	" U 5      $ Tn[        XR                   S-
  5       H  n[        X#US-   5      nM     [        X R                   S-
  U5      nU R	                  U5      nUR
                  S   nUR                  5       nUR                  U R                  :X  d   eUR                  U-  S:X  d   e[        R                  " UR                  U-  T
5      n[        UR                  5       H  nT	" XsU-  US-   U-   5      X'   M     UR                  UR
                  S S 5      $ )Nr   zaxis is out of boundsr)   )r   r   r3   r    	transposer   ravelr   re   r   reshape)r-   r]   tmpr.   transpose_indextransposed_arrr   raveledr   rB  r   tuple_buffers            r&   impl3build_argmax_or_argmin_with_axis_impl.<locals>.impl  sP   !866D=D!8tvv~455 66Q;?" tVVaZ(AA.C )'VVaZ>_5   $ &&(||qvv%%%""Q&!+++hh~**a/7sxxA!'a%Q!"<=CF ! {{>//455r%   r,   )r   r   r5   tupler3   r   )r-   r]   rB  r]  r   r\  s     ` @@r&   rF  rF    s;    
 T6"JJEqvv'L6 6> Kr%   argmaxc                 @  ^ [        U R                  [        R                  [        R                  45      (       a  [
        mO6[        U R                  [        R                  5      (       a  [        mO[        m[        U5      (       a
  SU4S jjnU$ [        XT5      nU$ )Nc                    > T" U 5      $ r,   r$   rA  s     r&   array_argmax_impl'array_argmax.<locals>.array_argmax_impl  rE  r%   r,   )rX   r   r   r  r  rL  r  rO  rQ  r   rF  )r-   r]   rc  rB  s      @r&   array_argmaxre    rH  r%   allc                     S nU$ )Nc                 l    [         R                  " U 5       H  nUR                  5       (       a  M    g   gr"   rd   r-   rj   s     r&   flat_allnp_all.<locals>.flat_all#  s'    1A6688  r%   r$   )r-   rj  s     r&   np_allrl     s     Or%   Fc                    [         R                  " U 5      n[         R                  " U5      nU(       d  U(       d  U(       a  U(       d  gU(       a  U(       a
  U(       d  g g[         R                  " U 5      (       d  [         R                  " U5      (       a  X:H  $ [         R                  " X-
  5      X2[         R                  " US-  5      -  -   :  a  gg)NF      ?Tre   r   isinfabs)a_vb_vrtolatol	equal_nan	a_v_isnan	b_v_isnans          r&   _allclose_scalarsry  ,  s    II Iy Y   88C==BHHSMM:66#)tRVVC#I->&>>>r%   allclosec                    [        U 5      (       d  [        S5      e[        U5      (       d  [        S5      e[        U[        [        R
                  45      (       d  [        S5      e[        U[        [        R
                  45      (       d  [        S5      e[        U[        [        R                  45      (       d  [        S5      e[        U [        R                  5      n[        U[        R                  5      nU(       a  U(       a	    S
S jnU$ U(       a  U(       d	    S
S jnU$ U(       d  U(       a	    S
S jn	U	$ U(       d  U(       d	    S
S	 jn
U
$ g g )N)The first argument "a" must be array-like*The second argument "b" must be array-like2The third argument "rtol" must be a floating point3The fourth argument "atol" must be a floating point0The fifth argument "equal_nan" must be a booleanc                     [        XX#US9$ )Nrt  ru  rv  )ry  r-   brt  ru  rv  s        r&   np_allclose_impl_scalar_scalar3np_allclose.<locals>.np_allclose_impl_scalar_scalar`  s    $Q/8: :r%   c           	          [         R                  " U5      n[         R                  " U5       H#  n[        XR	                  5       X#US9(       a  M#    g   gNr  FTre   asarrayrf   ry  rg   )r-   r  rt  ru  rv  bvs         r&   np_allclose_impl_scalar_array2np_allclose.<locals>.np_allclose_impl_scalar_arrayf  sC    

1Aiil(GGID3<> >  # r%   c           	          [         R                  " U 5      n [         R                  " U 5       H$  n[        UR	                  5       XUUS9(       a  M$    g   gr  r  )r-   r  rt  ru  rv  avs         r&   np_allclose_impl_array_scalar2np_allclose.<locals>.np_allclose_impl_array_scalarp  sE    

1Aiil(At3<> >  # r%   c           	      *   [         R                  " U 5      n [         R                  " U5      n[         R                  " X5      u  pV[         R                  " XV45       H4  u  px[	        UR                  5       UR                  5       UX4S9(       a  M4    g   gr  )re   r  broadcast_arraysrf   ry  rg   )	r-   r  rt  ru  rv  a_ab_br  r  s	            r&   np_allclose_impl_array_array1np_allclose.<locals>.np_allclose_impl_array_arrayz  sq    

1A

1A**10HC))SJ/(BGGID.2I I  0
 r%   gh㈵>g:0yE>F)	r
   r   rX   floatr   r  boolBooleanNumber)r-   r  rt  ru  rv  is_a_scalaris_b_scalarr  r  r  r  s              r&   np_allcloser  F  s7    AEFFAFGGdUEKK011 + , 	, dUEKK011 + , 	, i$!677 $ % 	% Q-KQ-K{BG5:	: .-	[AF49	 -,[AF49	 -,@E38	 ,+ "-[r%   anyc                     S nU$ )Nc                 l    [         R                  " U 5       H  nUR                  5       (       d  M    g   gr  rd   ri  s     r&   flat_anynp_any.<locals>.flat_any  s'    1Avvxx  r%   r$   )r-   r  s     r&   np_anyr    s     Or%   c                     Ub  [        U[        R                  5      (       a  SS jnU$ Ub  [        U[        R                  5      (       a  SS jnU$ SS jnU$ )Nc                 Z    [         R                  " U 5      n[         R                  " U5      $ r,   )re   r  r   )r-   r]   weightsrh   s       r&   np_average_impl#np_average.<locals>.np_average_impl  s    **Q-C773<r%   c                    [         R                  " U 5      n[         R                  " U5      nUR                  UR                  :w  a)  Uc  [        S5      eUR                  S:w  a  [        S5      e[         R
                  " U5      nUS:X  a  [        S5      e[         R
                  " [         R                  " X25      5      U-  nU$ )NzCNumba does not support average when shapes of a and weights differ.r)   z81D weights expected when shapes of a and weights differ.        z)Weights sum to zero, can't be normalized.)re   r  r   	TypeErrorr   sumZeroDivisionErrormultiply)r-   r]   r  rh   sclavgs         r&   r  r    s    jjm**W-99-|'45 5 ||q('45 5 ffWo#:+CE E ffR[[67#=
r%   c                     [        S5      e)Nz)Numba does not support average with axis.)r  )r-   r]   r  s      r&   r  r    s     KLLr%   NN)rX   r   NoneType)r-   r]   r  r  s       r&   
np_averager    sX     *Wenn==	 < 5 <:dENN;;2 M r%   c                     [        U [        R                  [        R                  45      (       a  [        R
                  $ [        S 5       nU$ )z
A generic isnan() function
c                     gr  r$   xs    r&   _trivial_isnan!get_isnan.<locals>._trivial_isnan  s    r%   )rX   r   r  r  re   r   r   )r   r  s     r&   	get_isnanr    s?     %%++u}}566xx		 
	r%   c                 *    [        U 5      (       a  S $ g )Nc                 H    [         R                  " U 5      R                  S:g  $ r   re   r  r  r  s    r&   <lambda>np_iscomplex.<locals>.<lambda>      A++q0r%   r
   r  s    r&   np_iscomplexr        00r%   c                 *    [        U 5      (       a  S $ g )Nc                 H    [         R                  " U 5      R                  S:H  $ r   r  r  s    r&   r  np_isreal.<locals>.<lambda>  r  r%   r  r  s    r&   	np_isrealr    r  r%   c                 *  ^ [        U 5      n[        U [        R                  5      (       a  [        U R                  5      n[
        R                  " U[
        R                  5      m[        U [        R                  5      (       a  U4S jnU$ U4S jnU$ )Nc                    > U c  gT$ r  r$   r  iscmplxs    r&   r]  iscomplexobj.<locals>.impl  s    yNr%   c                    > T$ r,   r$   r  s    r&   r]  r    s    Nr%   )determine_dtyperX   r   Optionalr   re   
issubdtypecomplexfloating)r  dtr]  r  s      @r&   iscomplexobjr    sk     
	B!U^^$$QVV$mmB 2 23G!U^^$$	 K	Kr%   c                     S nU$ )Nc                 8    [         R                  " U 5      (       + $ r,   )re   r  r  s    r&   r]  isrealobj.<locals>.impl  s    ??1%%%r%   r$   r  r]  s     r&   	isrealobjr    s    
&Kr%   c                 *   ^ [        U 5      mU4S jnU$ )Nc                    > T$ r,   r$   )elementrx   s    r&   r]  np_isscalar.<locals>.impl  s    
r%   )r   )r  r]  rx   s     @r&   np_isscalarr    s    

!CKr%   c                 L   ^ [        U5      (       a
  SU4S jjnU$ SU4S jjnU$ )Nc                    > [         R                  " [         R                  " U 5      T" [         R                  " U 5      5      5      $ r,   re   logical_andrp  signbitr  r   fns     r&   r]  is_np_inf_impl.<locals>.impl  s)    >>"((1+r"**Q-/@AAr%   c                    > [         R                  " [         R                  " U 5      T" [         R                  " U 5      5      U5      $ r,   r  r  s     r&   r]  r    s+    >>"((1+r"**Q-/@#FFr%   r,   r   )r  r   r  r]  s     ` r&   is_np_inf_implr    s*     3	B K	G Kr%   c                 2    [        S 5      n[        XU5      $ )Nc                     U $ r,   r$   r  s    r&   r  isneginf.<locals>.<lambda>  s    Ar%   r   r  r  s      r&   isneginfr    s    	+	&B!"%%r%   c                 2    [        S 5      n[        XU5      $ )Nc                     U ) $ r,   r$   r  s    r&   r  isposinf.<locals>.<lambda>  s    QBr%   r  r  s      r&   isposinfr    s    	,	'B!"%%r%   c                 
    X:  $ r,   r$   r-   r  s     r&   	less_thanr    	    5Lr%   c                 
    X:  $ r,   r$   r  s     r&   greater_thanr    r  r%   c                 :    U R                   S:X  a  [        S5      eg )Nr   z3zero-size array to reduction operation not possible)r   r   r   s    r&   check_arrayr  "  s    vv{NOO r%   c                 2   ^  U(       a  U 4S jnU$ U 4S jnU$ )Nc                 H  > [         R                  " U 5      n[        U5        [         R                  " U5      n[	        U5      R                  S5      nU H  nUR                  5       n[         R                  " UR                  5      (       a)  [         R                  " UR                  5      (       d  UnMa  T" UR                  UR                  5      (       a  UnM  UR                  UR                  :X  d  M  T" UR                  UR                  5      (       d  M  UnM     U$ r   )
re   r  r  rf   r  r   rg   r   r   r  r-   rh   r  
return_valr   rj   comparison_ops         r&   r]  !nan_min_max_factory.<locals>.impl*  s    **Q-C3Bbq)JIIK88JOO,,RXXaff5E5E!"J$QVVZ__==%&
:??2(AA)*J  r%   c                 8  > [         R                  " U 5      n[        U5        [         R                  " U5      n[	        U5      R                  S5      nU HA  nUR                  5       n[         R                  " U5      (       a  M0  T" X55      (       a  M?  UnMC     U$ r   )re   r  r  rf   r  r   rg   r   r  s         r&   r]  r  ;  sq    **Q-C3Bbq)JIIKxx{{(77%&
	 
 r%   r$   )r  is_complex_dtyper]  s   `  r&   nan_min_max_factoryr  (  s    	: K
	 Kr%   )r  Tc                    [         R                  " U 5      (       a  [         R                  " U5      (       a  U$ [         R                  " U 5      (       a&  [         R                  " U5      (       a  U S:  US:  :H  $ [         R                  " U 5      (       d  [         R                  " U5      (       a  g[        X-
  5      X2[        U5      -  -   :*  $ )Nr   Fro  )r  yrt  ru  rv  s        r&   _isclose_itemr  X  s    	xx{{rxx{{	!!A1q5!!	!15zT3q6M111r%   c                 :   [        U 5      (       d  [        S5      e[        U5      (       d  [        S5      e[        U[        [        R
                  45      (       d  [        S5      e[        U[        [        R
                  45      (       d  [        S5      e[        U[        [        R                  45      (       d  [        S5      e[        U [        R                  5      (       a&  [        U[        R                  5      (       a  S
S jnU$ [        U [        R                  5      (       a&  [        U[        R                  5      (       a  S
S jnU$ [        U [        R                  5      (       a&  [        U[        R                  5      (       a  S
S jnU$ S
S	 jnU$ )Nr|  r}  r~  r  r  c                    U R                  S5      nUn[        R                  " [        U5      [        R                  5      n[        [        U5      5       H  n[        XX   XbX45      Xx'   M     UR                  U R                  5      $ NrT  rW  re   zerosrG   r   r3   r  r   	r-   r  rt  ru  rv  r  r  r   r.   s	            r&   isclose_implisclose.<locals>.isclose_imply  sc    		"AA((3q6288,C3s8_&qtQdF %;;qww''r%   c                    U nUR                  S5      n[        R                  " [        U5      [        R                  5      n[        [        U5      5       H  n[        XVU   X#U5      Xx'   M     UR                  UR                  5      $ r  r  r  s	            r&   r  r    se    A		"A((3q6288,C3s8_&qA$IF %;;qww''r%   c                    [         R                  " U R                  UR                  5      n[         R                  " X5      n[         R                  " X5      n[         R                  " [        U5      [         R                  S9n[        [         R                  " Xg45      5       H4  u  n	u  p[        U
R                  5       UR                  5       X#U5      X'   M6     [         R                  " X5      $ Nr   )re   broadcast_shapesr   broadcast_tor  rG   r   r   rf   r  rg   )r-   r  rt  ru  rv  r   a_b_r   r.   r  r  s               r&   r  r    s    ''9E*B*B((3r7"((3C(B8)<=8B&rwwy"'')T'02  > ??3..r%   c                     [        XX#U5      $ r,   )r  r  s        r&   r  r    s     t9==r%   r  )
r
   r   rX   r  r   r  r  r  r   r  )r-   r  rt  ru  rv  r  s         r&   iscloser  d  sJ   AEFFAFGGdUEKK011 + , 	, dUEKK011 + , 	, i$!677 $ % 	% !U[[!!jELL&A&A	(B 3 
Au||	$	$Au{{)C)C	(0 ! 
Au{{	#	#
1ekk(B(B		/ 	> r%   c                     [        U 5      n[        R                  " U[        R                  5      (       a  [        $ [
        $ r,   )r  re   r  r  complex_nanminreal_nanminr-   r  s     r&   	np_nanminr    /    		B	}}R++,,r%   c                     [        U 5      n[        R                  " U[        R                  5      (       a  [        $ [
        $ r,   )r  re   r  r  complex_nanmaxreal_nanmaxr  s     r&   	np_nanmaxr$    r   r%   c                 ~   ^ [        U [        R                  5      (       d  g [        U R                  5      mU4S jnU$ )Nc                    > SnSn[         R                  " U 5       H9  nUR                  5       nT" U5      (       a  M"  XR                  5       -  nUS-  nM;     [         R                  " X5      $ Nr  r   r)   )re   rf   rg   divide)r-   ri   countr   rj   r   s        r&   nanmean_impl np_nanmean.<locals>.nanmean_impl  sZ    IIaLD		A88VVX
	 ! yy""r%   rX   r   r   r  r   )r-   r*  r   s     @r&   
np_nanmeanr-    s2    a%%aggE	# r%   c                 ~   ^ [        U [        R                  5      (       d  g [        U R                  5      mU4S jnU$ )Nc                 l  > [         R                  " U 5      nSnSn[         R                  " U 5       Hj  nUR                  5       nT" U5      (       a  M"  UR                  5       U-
  nU[         R                  " U[         R
                  " U5      -  5      -  nUS-  nMl     [         R                  " X#5      $ r'  )re   nanmeanrf   rg   r   r   r(  )r-   r   r   r)  r   rj   r   r   s          r&   nanvar_implnp_nanvar.<locals>.nanvar_impl  s    JJqM IIaLD		A88vvx!|rwwsRWWS\122
 ! yy$$r%   r,  )r-   r1  r   s     @r&   	np_nanvarr3    s2    a%%aggE%  r%   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                 4    [         R                  " U 5      S-  $ r   )re   nanvarr   s    r&   nanstd_implnp_nanstd.<locals>.nanstd_impl  s    yy|s""r%   r   )r-   r7  s     r&   	np_nanstdr9    s#    a%%# r%   c                   ^^ [        U [        R                  5      (       d  g [        U R                  [        R                  5      (       a  [        R
                  nOU R                  nU" S5      m[        U R                  5      mUU4S jnU$ )Nr   c                    > Tn[         R                  " U 5       H&  nUR                  5       nT" U5      (       a  M"  X-  nM(     U$ r,   rd   )r-   ri   r   rj   r   rk   s       r&   nansum_implnp_nansum.<locals>.nansum_impl  s<    IIaLD		A88 ! r%   rX   r   r   r   Integerr5   r  )r-   r   r<  r   rk   s      @@r&   	np_nansumr@    sb    a%%!''5==))

8DaggE r%   c                   ^^ [        U [        R                  5      (       d  g [        U R                  [        R                  5      (       a  [        R
                  nOU R                  nU" S5      m[        U R                  5      mUU4S jnU$ )Nr)   c                    > Tn[         R                  " U 5       H&  nUR                  5       nT" U5      (       a  M"  X-  nM(     U$ r,   rd   )r-   ri   r   rj   r   ones       r&   nanprod_impl np_nanprod.<locals>.nanprod_impl  s<    IIaLD		A88 ! r%   r>  )r-   r   rD  r   rC  s      @@r&   
np_nanprodrF    sb    a%%!''5==))


(CaggE r%   c                   ^^^ [        U [        R                  5      (       d  g [        U R                  [        R                  [        R
                  45      (       a  S $ U R                  m[        T5      mT" S5      mUUU4S jnU$ )Nc                 .    [         R                  " U 5      $ r,   )re   r   r   s    r&   r  np_nancumprod.<locals>.<lambda>  s    Ar%   r)   c                    > [         R                  " U R                  T5      nTn[        U R                  5       H  u  p4T" U5      ) (       a  X$-  nX!U'   M     U$ r,   r   )r-   r   ri   r   rj   is_nanrC  r   s        r&   nancumprod_impl&np_nancumprod.<locals>.nancumprod_impl   sO    ((1665)CA#AFF+1I:FAC , Jr%   rX   r   r   r   r  r?  r  )r-   rL  rK  rC  r   s     @@@r&   np_nancumprodrO    sd    a%%!''EMM5==9::&&5!Ah	 r%   c                   ^^^ [        U [        R                  5      (       d  g [        U R                  [        R                  [        R
                  45      (       a  S $ U R                  m[        T5      mT" S5      mUUU4S jnU$ )Nc                 .    [         R                  " U 5      $ r,   )re   r   r   s    r&   r  np_nancumsum.<locals>.<lambda>3  s    1r%   r   c                    > [         R                  " U R                  T5      nTn[        U R                  5       H  u  p4T" U5      ) (       a  X$-  nX!U'   M     U$ r,   r   )r-   r   ri   r   rj   rK  r   rk   s        r&   nancumsum_impl$np_nancumsum.<locals>.nancumsum_impl9  sO    ((1665)CA#AFF+1I:FAC , Jr%   rN  )r-   rT  rK  r   rk   s     @@@r&   np_nancumsumrV  ,  sd    a%%!''EMM5==9::%%5!Qx	 r%   c                 P    [        U 5      n[        U5      S:X  a  [        S5      eU$ )Nr   z&zero-size array reduction not possible)_asarrayrG   r   r-   rh   s     r&   prepare_ptp_inputrZ  E  s'    
1+C
3x1}ABB
r%   c                 b   ^  [        U[        R                  5      (       a  U 4S jnU$ U 4S jnU$ )Nc                    > T" UR                   U R                   5      (       a  U$ UR                   U R                   :X  a$  T" UR                  U R                  5      (       a  U$ U $ r,   r  current_valr   r   s     r&   r]  +_compute_current_val_impl_gen.<locals>.implU  sS    #((K,,--
((k...388[%5%566
r%   c                 &   > T" X5      (       a  U$ U $ r,   r$   r]  s     r&   r]  r_  ]  s    S..3?K?r%   )rX   r   r  )r   r^  r   r]  s   `   r&   _compute_current_val_impl_genra  N  s+    +u}}--	 K	@Kr%   c                     g r,   r$   r^  r   s     r&   _compute_a_maxrd  b      r%   c                     g r,   r$   rc  s     r&   _compute_a_minrg  f  re  r%   c                 6    [        [        R                  X5      $ r,   )ra  operatorgtrc  s     r&   _compute_a_max_implrk  j      (kGGr%   c                 6    [        [        R                  X5      $ r,   )ra  ri  ltrc  s     r&   _compute_a_min_implro  o  rl  r%   c                     g r,   r$   r   s    r&   _early_returnrr  t  re  r%   c                    ^ Sm[        U [        R                  5      (       a  U4S jnU$ [        U [        R                  5      (       a  U4S jnU$ U4S jnU$ )Nr   c                   > [         R                  " U R                  5      (       a`  [         R                  " U R                  5      (       a&  S[         R                  [         R                  S-  -   4$ S[         R                  S-   4$ ST4$ )NT              ?y                F)re   r   r   r  nanr   UNUSEDs    r&   r]   _early_return_impl.<locals>.impl|  sb    xx!!88CHH%%"&&2+!555",,f}$r%   c                 f   > [         R                  " U 5      (       a  S[         R                  4$ ST4$ r  )re   r   rv  rw  s    r&   r]  ry    s(    xx}}RVV|#f}$r%   c                    > ST4$ r  r$   rw  s    r&   r]  ry    s    &= r%   )rX   r   r  r  )r   r]  rx  s     @r&   _early_return_implr|  x  sN    F#u}}%%	%" K 
C	%	%	% K	!Kr%   c                     [        U S5      (       a4  [        U R                  [        R                  5      (       a  [        S5      eS nU$ )Nr   +Boolean dtype is unsupported (as per NumPy)c                     [        U 5      nUR                  nUS   nUS   n[        UR                  5       H5  nX%   n[	        U5      u  pxU(       a  Us  $ [        XF5      n[        X65      nM7     XC-
  $ r   )rZ  r   r3   r   rr  rd  rg  )	r-   rh   a_flata_mina_maxr.   r   take_branchretvals	            r&   np_ptp_implnp_ptp.<locals>.np_ptp_impl  ss    "q	q	sxxA)C"/"4K"5.E"5.E ! }r%   )hasattrrX   r   r   r  r   )r-   r  s     r&   np_ptpr    s?     q'aggu}}--KLL" r%   )r   r   ptpc                 z    [         R                  " U 5      (       a  g[         R                  " U5      (       a  gX:  $ r"   )re   r   r  s     r&   nan_aware_less_thanr    s)    	xx{{88A;;5Lr%   c                    ^ ^ SUU 4S jjnU$ )Nc                   > X-   S-	  nT	" X   X   5      (       a!  X   X   sX'   X'   T(       a  X4   X1   sX1'   X4'   T	" X   X   5      (       a!  X   X   sX'   X'   T(       a  X4   X2   sX2'   X4'   T	" X   X   5      (       a!  X   X   sX'   X'   T(       a  X4   X1   sX1'   X4'   X   nX   X   sX'   X'   T(       a  X4   X2   sX2'   X4'   UnUS-
  n Xb:  a,  T	" X   U5      (       a  US-  nXb:  a  T	" X   U5      (       a  M  Xq:  a,  T	" XPU   5      (       a  US-  nXq:  a  T	" XPU   5      (       a  M  Xg:  a  O-X   X   sX'   X'   T(       a  X7   X6   sX6'   X7'   US-  nUS-  nM  X   X   sX'   X'   T(       a  X2   X6   sX6'   X2'   U$ Nr)   r$   )
AlowhighImidpivotr.   jargpartition	pivotimpls
           r&   
_partition&_partition_factory.<locals>._partition  s   za QVQV$$VQVNAFAF!"QWaf%%fagOAGQV"#&!'QVQV$$VQVNAFAF!"&!'fagOAGQV1H(yu55Q (yu55(y!55Q (y!55vqtJAD!$T14
adFAFA  agGQTMAD!'r%   r,   r$   )r  r  r  s   `` r&   _partition_factoryr    s    , ,Z r%   )r  c                    ^  SU 4S jjnU$ )Nc                 z   > T" XX45      nXQ:w  a)  XQ:  a  US-   nT" XX45      nOUS-
  nT" XX45      nXQ:w  a  M)  X   $ )z:
Select the k'th smallest element in array[low:high + 1].
r)   r$   )r1  kr  r  r   r.   partitionimpls         r&   _select _select_factory.<locals>._select  sU     $T/fu!e!$T71u!$T7 f wr%   r,   r$   )r  r  s   ` r&   _select_factoryr    s     Nr%   c                      X2:  d   e[        XU5      nXA:  a  US-   nO7XAS-   :  a  US-
  nO)XA:X  a  [        XS-   US-   U5        O[        XX$S-
  5        OMW  X   XS-      4$ )z
Select the k'th and k+1'th smallest elements in array[low:high + 1].

This is significantly faster than doing two independent selections
for k and k+1.
r)   )r  r  )r1  r  r  r  r.   s        r&   _select_twor    s     zzt$'5a%CQYq5DVDa%Q-DSa%(  7DQKr%   c                 t    SnUS-
  nUS-	  nUS-  S:X  a  [        XS-
  X#5      u  pVXV-   S-  $ [        XX#5      $ )zh
The main logic of the median() call.  *temp_arry* must be disposable,
as this function will mutate it.
r   r)   r   )r  r  )	temp_arrynr  r  halfr-   r  s          r&   _median_innerr  &  sQ     Cq5D6D1uz9Qh:{y22r%   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                 V    U R                  5       nUR                  S   n[        X5      $ r   )flattenr   r  )r-   r  r  s      r&   median_implnp_median.<locals>.median_impl;  s(     IIK	OOAY**r%   r   )r-   r  s     r&   	np_medianr  6  s#    a%%+ r%   c                    [        U 5      nUS:X  a2  [        R                  " [        U5      U S   [        R                  S9nU$ [        R                  " [        U5      [        R                  S9n[        [        U5      5       GH  nX   nUS:X  at  [        R                  " U 5      n[        R                  " [        R                  " U 5      5      ) (       a,  [        R                  " U5      ) (       a  [        R                  nGOrUS:X  Ga  [        R                  " U 5      n[        R                  " [        R                  " U 5      5      ) (       a  [        R                  " U [        R                  :H  5      n[        R                  " U [        R                  * :H  5      nX(U-   -
  n	U	S:X  a  [        R                  nUS:X  a  US:X  a  [        R                  nUS:  a  [        R                  nU	S:X  a  US:  a  US:w  a  [        R                  nOdSUS-
  [        R                  " US5      -  -   n
[        R                  " U
5      nX-
  n[!        U [#        US-
  5      SUS-
  S9u  pUSU-
  -  X-  -   nXcU'   GM     U$ )Nr)   r   r  d   r         Y@)r  r  r  )rG   re   r   r   r   r3   r#  rf  isfiniterv  r  r  inftrue_dividemathfloorr  int)r-   qr  r   r.   
percentiler   num_pos_infnum_neg_inf
num_finiterankfr   loweruppers                  r&   _collect_percentiles_innerr  E  s    	AAAvggc!fad"**5T JQ hhs1vRZZ0s1vAJ S ffQiFF2;;q>**C(( ff qffQiFF2;;q>**"$&&bff"5K"$&&rvvg"6K!"K&?!@J!Q ff"a'AF ff"Q ff!Q&?*a/&(ff AER^^J%FFFJJt$H*1AE
QPq1uo	1FK N Jr%   c                     U(       a  X)    n [        U 5      S:X  a  gO[        R                  " U5      (       a  g[        U 5      S:X  a  U S   n[        R                  " U5      $ g)Nr   Fr)   T)rG   re   r  r  )r-   nan_maskskip_nanr   s       r&   _can_collect_percentilesr  z  s[    iLq6Q;  66(
1v{d{{3r%   c                    SnU R                   S:X  aa  U R                  S:  aQ  [        U R                  5       H5  nX   S:  d'  X   U:  d  [        R                  " X   5      (       d  M2  Sn  U$     U$ [        R
                  " [        R                  " U 5      5      (       d;  [        R
                  " U S:  5      (       d  [        R
                  " X:  5      (       a  SnU$ )NTr)   
   r  F)r   r   r3   re   r   r  )r  q_upper_boundvalidr.   s       r&   check_validr    s    E 	vv{qvv{qvvAtczQTM1RXXad^^
 L  L 66"((1+"&&S//RVVA<M5N5NELr%   c                 8    [        U SS9(       d  [        S5      eg )Nr  r  z)Percentiles must be in the range [0, 100]r  r   r  s    r&   percentile_is_validr    s    q.DEE /r%   c                 8    [        U SS9(       d  [        S5      eg )Nrn  r  z%Quantiles must be in the range [0, 1]r  r  s    r&   quantile_is_validr    s    q,@AA -r%   c                    [         R                  " U[         R                  S9R                  5       nU" U5        X-  n[         R                  " U [         R                  S9R                  5       n[         R                  " U5      n[        XVU5      (       a  XV)    n[        XQ5      nU$ [         R                  " [        U5      [         R                  5      nU$ r  )
re   r  r   r  r   r  r  r   rG   rv  )r-   r  check_qfactorr  r  r  r   s           r&   _collect_percentilesr    s    


1BJJ'//1AAJ	
A

1BJJ/779Ixx	"H	X>>i(	(6 J ggc!fbff%Jr%   c                 p  ^^^ [        U 5      n[        R                  " U[        R                  5      (       a  [	        S5      eUUU4S jnUUU4S jn[        U[        R                  [        R                  45      (       a  U$ [        U[        R                  5      (       a  UR                  S:X  a  U$ U$ )z
The underlying algorithm to find percentiles and quantiles
is the same, hence we converge onto the same code paths
in this inner function implementation
zNot supported for complex dtypec                 &   > [        XTTT5      S   $ r   r  r-   r  r  r  r  s     r&   np_percentile_q_scalar_impl?_percentile_quantile_inner.<locals>.np_percentile_q_scalar_impl  s    #A'68DQGGr%   c                     > [        XTTT5      $ r,   r  r  s     r&   np_percentile_impl6_percentile_quantile_inner.<locals>.np_percentile_impl  s    #A'68DDr%   r   )r  re   r  r  r   rX   r   r  r  r   r   )r-   r  r  r  r  r  r  r  s     ```   r&   _percentile_quantile_innerr    s     
	B	}}R++,,;<<HE !ellEMM233**	Au{{	#	#!**!!r%   c                 "    [        XSS[        S9$ )NFrn  r  r  r  r  r  r-   r  s     r&   np_percentiler    s    %	uS2E r%   c                 "    [        XSS[        S9$ )NTrn  r  r  r  s     r&   np_nanpercentiler    s    %	tC1D r%   c                 "    [        XSS[        S9$ )NFr  r  r  r  r  s     r&   np_quantiler    s    %	uU4E r%   c                 "    [        XSS[        S9$ )NTr  r  r  r  s     r&   np_nanquantiler    s    %	tE3D r%   c                 ~   ^ [        U [        R                  5      (       d  g [        U R                  5      mU4S jnU$ )Nc                 *  > [         R                  " U R                  U R                  5      nSn[         R                  " U 5       H+  nUR                  5       nT" U5      (       a  M"  XAU'   US-  nM-     US:X  a  [         R                  $ [        X5      $ Nr   r)   )re   r   r   r   rf   rg   rv  r  )r-   r  r  r   rj   r   s        r&   nanmedian_impl$np_nanmedian.<locals>.nanmedian_impl  ss    HHQVVQWW-	IIaLD		A88 !Q	 ! 666MY**r%   r,  )r-   r  r   s     @r&   np_nanmedianr    s2    a%%aggE+  r%   c                    [         R                  " U 5      n[         R                  " U R                  S S 5      nU H@  nX   R	                  5       nSn[        U5      S-
  nU H  n[        XXXg5        UnM     XRU'   MB     U$ )NrT  r   r)   )re   
empty_likendindexr   copyrG   _select_w_nan)	r-   	kth_arrayr   r   sr1  r  r  kths	            r&   np_partition_impl_innerr  	  s|    
 --
C
**QWWSb\
"Ctyy{4y1}C$S/C  A  Jr%   c           	      ^   [         R                  " U [         R                  S9n[         R                  " U R                  S S 5      nU H`  nX   R                  5       n[         R                  " [        U5      5      nSn[        U5      S-
  nU H  n	[        XYXxU5        U	nM     XbU'   Mb     U$ )Nr  rT  r   r)   )	re   r  r5   r  r   r  arangerG   _arg_select_w_nan)
r-   r  r   r   r  r1  idx_arryr  r  r  s
             r&   np_argpartition_impl_innerr    s    
 --
)C
**QWWSb\
"Ctyy{99SY'4y1}CdH=C  A  Jr%   c                    [        U5      R                  [        R                  5      nUR                  S:w  a  [        S5      e[        R                  " [        R                  " U5      U R                  S   :  5      (       a  [        S5      e[        R                  " U5      n[        R                  " U5       H$  u  pEUS:  a  XPR                  S   -   X4'   M   XSU'   M&     [        R                  " U5      $ )ai  
Returns a sorted, unique array of kth values which serve
as indexers for partitioning the input array, a.

If the absolute value of any of the provided values
is greater than a.shape[-1] an exception is raised since
we are partitioning along the last axis (per Numpy default
behaviour).

Values less than 0 are transformed to equivalent positive
index values.
r)   zkth must be scalar or 1-DrT  zkth out of boundsr   )rX  astypere   r   r   r   r  rq  r   r  ndenumerateunique)r-   r  r  r   indexr   s         r&   
valid_kthsr  4  s     $$RXX.I~~455 
vvbffY1772;.//,--
--	
"CnnY/
7wwr{*CJJ	 0 99S>r%   c                    [        U [        R                  [        R                  [        R                  45      (       d  [        S5      e[        U [        R                  5      (       a  U R                  S:X  a  Sn[        U5      e[        USU5      n[        U[        R                  [        R                  45      (       d  [        S5      eS nU$ )N(The first argument must be an array-liker   3The first argument must be at least 1-D (found 0-D)r   Partition index must be integerc                     [        U 5      nUR                  S:X  a  UR                  5       $ [        X!5      n[	        X#5      $ r   )rX  r   r  r  r  r-   r  a_tmpr  s       r&   np_partition_impl'np_partition.<locals>.np_partition_implf  s7    ::?::<"5.I*5<<r%   
rX   r   r   Sequencer[   r   r   r   r  r?  )r-   r  r   kthdtr  s        r&   np_partitionr  W  s     a%++u~~u{{CDDGHH!U[[!!affkCS!!C#&EeemmU]];<<>??= r%   c                    [        U [        R                  [        R                  [        R                  45      (       d  [        S5      e[        U [        R                  5      (       a  U R                  S:X  a  Sn[        U5      e[        USU5      n[        U[        R                  [        R                  45      (       d  [        S5      eS nU$ )Nr  r   r  r   r	  c                     [        U 5      nUR                  S:X  a  UR                  5       R                  S5      $ [	        X!5      n[        X#5      $ )Nr   r5   )rX  r   r  r  r  r  r  s       r&   np_argpartition_impl-np_argpartition.<locals>.np_argpartition_impl  sB    ::?::<&&v.."5.I-e??r%   r  )r-   r  r   r  r  s        r&   np_argpartitionr  q  s     a%++u~~u{{CDDGHH!U[[!!affkCS!!C#&EeemmU]];<<>??@  r%   c                    [        SU 5      [        SU5      4n[        R                  " U[        R                  S9n[	        US   5       H1  n[        [        SXR-   S-   5      US   5      nSXES U24'   SXEUS 24'   M3     U$ )Nr   r  r)   )r#  re   r   r   r3   r  )NMr  r   r   r.   m_maxs          r&   	_tri_implr    s~    1Is1ay E
((5


+C58_C1519%uQx0vvIuvI 
 Jr%   c                 (    [        US5        SS jnU$ )Nr  c                 $    Uc  U n[        XU5      $ r,   )r  )r  r  r  s      r&   tri_implnp_tri.<locals>.tri_impl  s    9Aq!!r%   r   )r   )r  r  r  r  s       r&   np_trir!    s     Q"
 Or%   c                     U R                   S:X  d   e[        U 5      n[        R                  " X4U R                  S9n[        U5       H  nXU'   M	     U$ )ze
Takes a 1d array and tiles it to form a square matrix
- i.e. a facsimile of np.tile(m, (len(m), 1))
r)   r  )r   rG   re   r   r   r3   )r   len_mr   r.   s       r&   _make_squarer$    sO     66Q;;FE
((E>
1C5\A  Jr%   c           	         [         R                  " U R                  S   U R                  S   US9R                  [         R                  5      n[         R
                  " X [         R                  " X R                  S95      $ NrT  r  r  r  re   trir   r  uintwhere
zeros_liker   r   r  masks      r&   np_tril_impl_2dr0    sQ    66!''"+299"''BD88DR]]1GG<==r%   c                     [        US5        SS jnSS jnU R                  S:X  a  U$ U R                  S:X  a  [        $ U$ )Nr  c                 .    [        U 5      n[        X!5      $ r,   )r$  r0  r   r  m_2ds      r&   np_tril_impl_1d my_tril.<locals>.np_tril_impl_1d      At''r%   c                    [         R                  " U R                  S   U R                  S   US9R                  [         R                  5      n[         R
                  " U R                  S S 5      n[         R                  " U 5      n[         R                  " X R                  S9nU H  n[         R                  " X U   U5      XF'   M!     U$ r&  
re   r*  r   r  r+  r  r  r-  r   r,  r   r  r/  r   zzero_optsels          r&   np_tril_impl_multi#my_tril.<locals>.np_tril_impl_multi  s    vvaggbkQWWR[A6==bggFjj"&MM!==WW5CXXdcFH5AF r%   r)   r   r   )r   r   r0  )r   r  r5  r>  s       r&   my_trilrA    sB     Q( 	vv{	
1!!r%   c                 x    [        U S5        [        US5        [        U5      (       d  [        US5        SS jnU$ )Nr  r  r   c                 T    [         R                  " [         R                  " XUS95      $ )Nr  re   nonzeror*  r  r  r   s      r&   np_tril_indices_impl-np_tril_indices.<locals>.np_tril_indices_impl  s    zz"&&+,,r%   r   Nr   r   )r  r  r   rH  s       r&   np_tril_indicesrL    s6     QQq>>C -r%   c                 ^    [        US5        U R                  S:w  a  [        S5      eSS jnU$ )Nr  r   input array must be 2-dc                 `    [         R                  " U R                  S   XR                  S   S9$ Nr   r)   )r  r   )re   tril_indicesr   rh   r  s     r&   np_tril_indices_from_impl7np_tril_indices_from.<locals>.np_tril_indices_from_impl  #    syy|qIIaLAAr%   r@  r   r   r   )rh   r  rS  s      r&   np_tril_indices_fromrW    1     Q
xx1}344B$$r%   c                 
   [         R                  " U R                  S   U R                  S   US-
  S9R                  [         R                  5      n[         R
                  " U[         R                  " X R                  S9U 5      $ Nr'  rT  r)   r(  r  r)  r.  s      r&   np_triu_impl_2dr[    sW    66!''"+A6==bggFD88D"--91==r%   c                     [        US5        SS jnSS jnU R                  S:X  a  U$ U R                  S:X  a  [        $ U$ )Nr  c                 .    [        U 5      n[        X!5      $ r,   )r$  r[  r3  s      r&   np_triu_impl_1d my_triu.<locals>.np_triu_impl_1d  r7  r%   c                    [         R                  " U R                  S   U R                  S   US-
  S9R                  [         R                  5      n[         R
                  " U R                  S S 5      n[         R                  " U 5      n[         R                  " X R                  S9nU H  n[         R                  " X%X   5      XF'   M      U$ rZ  r9  r:  s          r&   np_triu_impl_multi#my_triu.<locals>.np_triu_impl_multi  s    vvaggbkQWWR[AE:AA"''Jjj"&MM!==WW5CXXdaf5AF r%   r)   r   r@  )r   r   r[  )r   r  r^  ra  s       r&   my_triurc    sB     Q( 	vv{	
1!!r%   c                 x    [        U S5        [        US5        [        U5      (       d  [        US5        SS jnU$ )Nr  r  r   c           	      `    [         R                  " S[         R                  " XUS-
  S9-
  5      $ )Nr)   rD  rE  rG  s      r&   np_triu_indices_impl-np_triu_indices.<locals>.np_triu_indices_impl   s%    zz!bffQQU3344r%   rJ  rK  )r  r  r   rf  s       r&   np_triu_indicesrh    s6     QQq>>C 5r%   c                 ^    [        US5        U R                  S:w  a  [        S5      eSS jnU$ )Nr  r   rN  c                 `    [         R                  " U R                  S   XR                  S   S9$ rP  )re   triu_indicesr   rR  s     r&   np_triu_indices_from_impl7np_triu_indices_from.<locals>.np_triu_indices_from_impl.  rU  r%   r@  rV  )rh   r  rl  s      r&   np_triu_indices_fromrn  %  rX  r%   c                     g r,   r$   rh   s    r&   _prepare_arrayrq  3  re  r%   c                 :    U S [         R                  4;   a  S $ S $ )Nc                 .    [         R                  " S5      $ )Nr$   re   arrayrp  s    r&   r  %_prepare_array_impl.<locals>.<lambda>:  s    288B<r%   c                 4    [        U 5      R                  5       $ r,   )rX  rV  rp  s    r&   r  rv  <  s    8C=..0r%   r   nonerp  s    r&   _prepare_array_implrz  7  s    
tUZZ  ''00r%   c                 z   U n [        U[        R                  [        R                  45      (       a  [	        U5      $ [        USS 5      nUb  U" 5       S:X  a  [        R                  $ [        USS 5      nUc  [        S5      e[        U[        R                  5      (       a  UR                  nO[	        U5      $ M  )N__len__r   r   ztype has no dtype attr)rX   r   r  r  r	   r   re   r   r   r  r   )inobjobjlr  s       r&   _dtype_of_compoundr  ?  s    
C
cELL%--899C= CD)=QSAX::S'4(: !9::c5>>**))CB< r%   c                    [        U [        R                  5      (       a4  [        U R                  [        R                  5      (       a  [        S5      e[        U 5      nS n[        U5      (       d  [        U5      nS n[        U5      (       d  [        U5      nUb(  [        R                  " XC5      (       d  Sn[        U5      eUb(  [        R                  " XS5      (       d  Sn[        U5      eSS jnU$ )Nr~  z3dtype of to_begin must be compatible with input aryz1dtype of to_end must be compatible with input aryc                    [        U5      n[        U 5      n[        U5      nUR                  n[        U5      S:  a  [        R                  " [        U5      [        U5      -   [        U5      -   S-
  US9n[        U5      n[        U5      [        U5      -   S-
  n	X7S U& [        R
                  " U5      XxU	& XWU	S & U$ [        R                  " [        U5      [        U5      -   US9n[        U5      nX7S U& XWUS & U$ )Nr   r)   r  )rq  r   rG   re   r   diff)
aryto_endto_beginstartr  end	out_dtyper   	start_idxmid_idxs
             r&   np_ediff1d_impl#np_ediff1d.<locals>.np_ediff1d_implj  s    x(S!V$II	 s8a<((CJS1CH<q@!*,CE
I%j3s8+a/G#
O%'WWS\C'"M 
	 ((CJS1)DCE
I#
O!	
O
r%   r  )
rX   r   r   r   r  r   r  r   re   can_cast)r  r  r  ary_dtto_begin_dt	to_end_dtr   r  s           r&   
np_ediff1dr  P  s     #u{{##cii// !NOO
  $FK!!(2I&v.	r{{;'G'GCS!!R[[%C%CAS!!6 r%   c                     g r,   r$   rp  s    r&   _select_elementr    re  r%   c                 D    [        U SS 5      S:H  nU(       a  S nU$ S nU$ )Nr   r   c                 R    [         R                  " SU R                  S9nXS S & US   $ )Nr)   r  r   )re   ru  r   )rh   r  s     r&   r]  "_select_element_impl.<locals>.impl  s&    SYY/AaDQ4Kr%   c                     U $ r,   r$   rp  s    r&   r]  r    s    Jr%   )r   )rh   zerodr]  s      r&   _select_element_implr    s.    C&!+E	 	r%   c                     g r,   r$   )dxr  s     r&   _get_dr    re  r%   c                 6    [        U 5      (       a  S nU$ S nU$ )Nc                 .    [         R                  " U5      $ r,   re   r  r  r  s     r&   r]  get_d_impl.<locals>.impl  s    ::b>!r%   c                 V    [         R                  " [         R                  " U 5      5      $ r,   )re   r  r  r  s     r&   r]  r    s    772::a=))r%   r  )r  r  r]  s      r&   
get_d_implr    s!    1~~	"
 K	*Kr%   c                     [        U [        R                  [        R                  45      (       a  [	        S5      e[        U [        R
                  5      (       a  U R                  S:X  a  [	        S5      eSS jnU$ )Nzy cannot be a scalarr   zy cannot be 0Dc                     [         R                  " U 5      n[        X5      nUS[        SS 5      4   US[        S S5      4   -   S-  n[         R                  " XE-  S5      n[        U5      nU$ )N.r)   rT         @)re   r  r  rP   r  r  )r  r  r  yarrdy_averet	processeds           r&   r]  np_trapz.<locals>.impl  si    zz!}1Mc5D>)*T#uT22F-GG3NffQY##C(	r%   Nrn  )rX   r   r  r  r   r   r   )r  r  r  r]  s       r&   np_trapzr    s]     !ellEMM233011	Au{{	#	#!*++
 Kr%   c                    UR                   u  pEU[        U 5      :X  d   eXQ:X  d   eU(       aK  [        U5       H;  nUS:X  a  SUSS2U4'   M  [        R                  " XSS2US-
  4   5      USS2U4'   M=     g[        US-
  SS5       H=  nXaS-
  :X  a  SUSS2U4'   M  [        R                  " XSS2US-   4   5      USS2U4'   M?     g)a  
Generate an N-column Vandermonde matrix from a supplied 1-dimensional
array, x. Store results in an output matrix, out, which is assumed to
be of the required dtype.

Values are accumulated using np.multiply to match the floating point
precision behaviour of numpy.vander.
r   r)   NrT  )r   rG   r3   re   r  )r  r  
increasingr   r   r  r.   s          r&   
_np_vanderr    s     99DAA;;6M6qAAvAqD	KKq1q5z?;AqD		  q1ub"%AEzAqD	KKq1q5z?;AqD		 &r%   c                 \    U R                   S:  a  [        S5      eUS:  a  [        S5      eg )Nr)   z.x must be a one-dimensional array or sequence.r   z#Negative dimensions are not allowed)r   r   )r  r  s     r&   _check_vander_paramsr    s1    vvzIJJ1u>?? r%   c                   ^ US [         R                  4;  a*  [        U[         R                  5      (       d  [	        S5      eSU4S jjnSS jn[        U [         R
                  5      (       a2  [        U R                  5      n[        R                  " U[        5      mU$ [        U [         R                  [         R                  45      (       a  U$ g )Nz,Second argument N must be None or an integerc                    > Uc  [        U 5      n[        X5        [        R                  " [        U 5      [	        U5      4TS9n[        XX#5        U$ r  )rG   r  re   r   r  r  )r  r  r  r   r   s       r&   np_vander_impl!np_vander.<locals>.np_vander_impl  sG    9AAQ" hhAA'u51)
r%   c                     Uc  [        U 5      n[        R                  " U 5      n[        X15        [        R                  " [        U 5      [        U5      4UR                  S9n[        X1X$5        U$ r  )rG   re   ru  r  r   r  r   r  )r  r  r  x_arrr   s        r&   np_vander_seq_impl%np_vander.<locals>.np_vander_seq_impl  sW    9AAU& hhAA'u{{;5Z-
r%   r  )r   ry  rX   r?  r   r   r	   r   re   promote_typesr  r[   r  )r  r  r  r  r  x_dtr   s         @r&   	np_vanderr    s    uzz""!U]]++LMM
 !U[[!!   s+	AU^^4	5	5!! 
6r%   c                     [        U[        R                  [        R                  45      (       d  [	        S5      eS n[        U [        R
                  [        R                  45      (       a  S $ U$ )Nzshift must be an integerc                    [         R                  " U 5      n[         R                  " UR                  UR                  S9nUR
                  n[        UR                  5       H%  nXQ-   UR                  -  nXE   UR
                  U'   M'     U$ r  )re   r  r   r   r   r   r3   r   )r-   shiftrh   r   arr_flatr.   r   s          r&   np_roll_implnp_roll.<locals>.np_roll_impl	  sj    jjmhhsyy		2 88sxxA9(C$KCHHSM ! 
r%   c                 .    [         R                  " U 5      $ r,   r  )r-   r  s     r&   r  np_roll.<locals>.<lambda>#	  s    

1r%   )rX   r   r?  r  r   r  )r-   r  r  s      r&   np_rollr  	  sU    eemmU]];<<455
 !ellEMM233--r%      c                 $   SnUnXUS-
     :  a  U$ XS   :  a  gUS::  a(  SnXb:  a  XU   :  a  US-  nXb:  a
  XU   :  a  M  US-
  $ X2S-
  :  a  US-
  nUS:  a  SnXU   :  a8  XUS-
     :  a(  US-
  nU[         :  a  XU[         -
     :  a	  U[         -
  nONUS-
  $ XUS-      :  a  U$ XUS-      :  a  US-   $ US-   nX2[         -
  S-
  :  a  XU[         -      :  a	  U[         -   nXE:  a!  XEU-
  S-	  -   nXU   :  a  US-   nOUnXE:  a  M!  US-
  $ )Nr   r)   rT     r   r   )LIKELY_IN_CACHE_SIZE)keyrh   lengthguessiminimaxr.   imids           r&   binary_search_with_guessr  .	  s    DD !_	1v {jSF]FA jSF]1uz
qy ZUQY19D ++u';;<<33 19 UQYL ^#qy  qy&::Q>?5+?#?@@ #77D +t)*d)!8DD + !8Or%   c                 	   [         R                  " U 5      n[         R                  " U5      n[         R                  " U5      n[        U5      S:X  a  [        S5      e[        U5      [        U5      :w  a  [        S5      eUR                  S:X  a#  [         R
                  " UR                  US   US9$ [         R                  " UR                  US9nUR                  n[        U5      n	US   n
XiS-
     nU	S:X  ae  US   nUS   n[        U5       HJ  nUR                  U   nX:  a  XR                  U'   M'  X:  a  XR                  U'   M<  XR                  U'   ML     U$ SnX::  a  [         R                  " U	S-
  US9nO[         R                  " SUS9nUR                  (       au  [        U	S-
  5       Hc  nSX^S-      X^   -
  -  nXnS-      R                  Xn   R                  -
  U-  nXnS-      R                  Xn   R                  -
  U-  nUSU-  -   UU'   Me     [        U5       GH  nUR                  U   n[         R                  " U5      (       a  UnSnUSU-  -   UR                  U'   MI  [        XU	U5      nUS	:X  a  XR                  U'   Ml  UU	:X  a  XR                  U'   M  UU	S-
  :X  a  UU   UR                  U'   M  UU   U:X  a  UU   UR                  U'   M  UR                  (       a  UU   nOcSUUS-      UU   -
  -  nUUS-      R                  UU   R                  -
  U-  nUUS-      R                  UU   R                  -
  U-  nUSU-  -   nUR                  XU   -
  -  UU   R                  -   n[         R                  " U5      (       aw  UR                  XUS-      -
  -  UUS-      R                  -   n[         R                  " U5      (       a2  UU   R                  UUS-      R                  :X  a  UU   R                  nUR                  XU   -
  -  UU   R                  -   n[         R                  " U5      (       aw  UR                  XUS-      -
  -  UUS-      R                  -   n[         R                  " U5      (       a2  UU   R                  UUS-      R                  :X  a  UU   R                  nUSU-  -   UR                  U'   GM     U$ )
Nr   array of sample points is empty#fp and xp are not of the same size.r)   
fill_valuer   r  ru  r  rT  )re   r  rG   r   r   r   r   r   r3   r   r   r  r   r  )r  xpfpr   dzr  dydreslenxlenxplvalrvalxp_valfp_valr.   x_valr  slopesinv_dxr   r  slopes                         r&   np_interp_impl_complex_innerr  s	  sJ    
AB	BB	BB
2w!|:;;
2w#b'>??	ww!|wwrxxBqE??88BHHE*D77DGEa5Dai=DzAAtAGGAJE~#		!#		!%		! V KC  =XXuqy7FXXau-F;;519%bQi"%/0q5	3v=q5	3v= 29,q		 & tAGGAJExx#b4i/		!(E1=ABw#		!e#		!eai!!u		!A%!!u		!;;"1IE"QU)be"34Fq1uINNRUZZ76ADq1uINNRUZZ76AD 29,E zzUU]3bejj@88D>> ::AE):;bQinnLDxx~~"Q%**1q5	*F!!uzzzzUU]3bejj@88D>> ::AE):;bQinnLDxx~~"Q%**1q5	*F!!uzz#b4i/		!a d Kr%   c                    [         R                  " U [         R                  S9n[         R                  " U[         R                  S9n[         R                  " U[         R                  S9n[        U5      S:X  a  [	        S5      e[        U5      [        U5      :w  a  [	        S5      eUR
                  S:X  a#  [         R                  " UR                  US   US9$ [         R                  " UR                  US9nUR
                  n[        U5      n	US   n
XiS-
     nU	S:X  ae  US   nUS   n[        U5       HJ  nUR                  U   nX:  a  XR                  U'   M'  X:  a  XR                  U'   M<  XR                  U'   ML     U$ SnX::  a  USS  US S -
  USS  US S -
  -  nO[         R                  " SUS9n[        U5       GH  nUR                  U   n[         R                  " U5      (       a  XR                  U'   M>  [        XU	U5      nUS:X  a  XR                  U'   Ma  UU	:X  a  XR                  U'   Mw  UU	S-
  :X  a  UU   UR                  U'   M  UU   U:X  a  UU   UR                  U'   M  UR
                  (       a  UU   nOUUS-      UU   -
  UUS-      UU   -
  -  nUXU   -
  -  UU   -   UR                  U'   [         R                  " UR                  U   5      (       d  GM-  UXUS-      -
  -  UUS-      -   UR                  U'   [         R                  " UR                  U   5      (       d  GM{  UU   UUS-      :X  d  GM  UU   UR                  U'   GM     U$ )Nr  r   r  r  r)   r  rT  )re   r  r   rG   r   r   r   r   r   r3   r   r   r  )r  r  r  r   r  r  r  r  r  r  r  r  r  r  r.   r  r  r  r  s                      r&   np_interp_impl_innerr  	  s	    
ARZZ	(B	Bbjj	)B	Bbjj	)B
2w!|:;;
2w#b'>??	ww!|wwrxxBqE??88BHHE*D77DGEa5Dai=DzAAtAGGAJE~#		!#		!%		! n K[  =fr#2w&2ab6BsG+;<FXXau-FtAGGAJExx$		!(E1=ABw#		!e#		!eai!!u		!A%!!u		!;;"1IEAYA.2a!e9r!u3DEE$16A>		! 88DIIaL))#(Eq1uI,=#>AE#JDIIaLxx		!--"Q%2a!e92D')!u		!G J Kr%   c                   ^^	 [        US5      (       a  UR                  S:  a  [        S5      e[        US5      (       a  UR                  S:  a  [        S5      eSn[        U5      n[        R
                  " U[        R                  5      (       a  [        U5      e[        U5      n[        R                  " U[        R                  5      m[        R
                  " T[        R                  5      (       a  [        m	O[        m	UU	4S jnUU	4S jn[        U [        R                  5      (       a,  [        U [        R                  5      (       a  [        U5      eU$ U$ )Nr   r)   zxp must be 1Dzfp must be 1Dz:Cannot cast array data from complex dtype to float64 dtypec                    > T" XUT5      $ r,   r$   r  r  r  r   r   s      r&   np_interp_impl!np_interp.<locals>.np_interp_implU
  s    QB&&r%   c                 2   > T" XUT5      R                   S   $ r   )r   r  s      r&   np_interp_scalar_impl(np_interp.<locals>.np_interp_scalar_implX
  s    QB&++A..r%   )r  r   r   r  re   r  r  result_typer   r  r  rX   r   r  r  )
r  r  r  complex_dtype_msgxp_dtfp_dtr  r  r   r   s
           @@r&   	np_interpr  :
  s    r6rww{/**r6rww{/** 	E  BE	}}UB..//+,,BENN5"**-E	}}UB..//,$'/ !U\\""a''/00$$r%   c                     U R                   S:X  d   eU R                  u  p[        R                  " US4U R                  S9n[        U5       H&  n[        R                  " XS S 24   5      U-  X4S4'   M(     U$ )Nr   r)   r  r   )r   r   re   r   r   r3   r  )r-   r   r  r   r.   s        r&   row_wise_averager  f
  sh    66Q;;77DA
((Aq6
)C1XFF1T7Oa'qD	  Jr%   c                    Uc  U(       a  SnOSnU R                   S   U-
  n[        US5      nU [        U 5      -  n [        R                  " U [        R
                  " U R                  5      5      nU[        R                  " SU5      -  nU$ )Nr   r)   r  )r   r#  r  re   dotr   Tr  )Xbiasddoffactri   s        r&   np_cov_impl_innerr  s
  s     |DD 771:D tS>D 	!	A 	q"''!##,A4	  AHr%   c                      g r,   r$   r$   r%   r&   _prepare_cov_input_innerr  
  re  r%   c                 B    US [         R                  4;   a  S nU$ S nU$ )Nc                 j    [         R                  " [        U 5      5      nU(       d  UR                  nU$ r,   )re   
atleast_2drX  r  )r   r  rowvarr   m_arrs        r&   r  9_prepare_cov_input_impl.<locals>._prepare_cov_input_inner
  s%    MM(1+.ELr%   c                    [         R                  " [        U 5      5      n[         R                  " [        U5      5      nU(       d>  UR                  S   S:w  a  UR                  nUR                  S   S:w  a  UR                  nUR                  u  pgUR                  u  pXy:w  a  [        S5      e[         R                  " Xh-   U4US9n
XJS U2S S 24'   XZU* S 2S S 24'   U
$ )Nr   r)   z$m and y have incompatible dimensionsr  )re   r  rX  r   r  r   r   )r   r  r  r   r	  y_arrm_rowsm_colsy_rowsy_colsr   s              r&   r  r
  
  s    MM(1+.EMM(1+.E
 ;;q>Q&!GGE;;q>Q&!GGE"[[NF"[[NF !GHH ((FOV4EBC#
O$!Jr%   rx  )r   r  r  r   r  s        r&   _prepare_cov_input_implr  
  s.    T5::	D $#5	4 $#r%   c                 f    U R                   S:X  a!  U R                  S   S:X  a  Sn[        U5      eg g )Nr   r   r)   z2D array containing a single row is unsupported due to ambiguity in type inference. To use numpy.cov in this case simply pass the row as a 1D array, i.e. m[0].)r   r   r<  )r   r   s     r&   _handle_m_dim_changer  
  s6    vv{qwwqzQ? 3	 '{r%   c                     U $ r,   r$   r  s    r&   r  r  
  s    qr%   c                    [         R                  n[        U [        R                  5      (       a  [        U R                  5      nU$ [        U [        R                  [        R                  45      (       a  [        U 5      nU$ [        U [        R                  [        R                  45      (       a  [        5       nU  HG  n[        US5      (       a"  U Vs/ s H  oBR                  U5      PM       nM6  UR                  U5        MI     [        U5      S:  a/  [         R                  " U Vs/ s H  n[        U5      PM     sn6 nU$ [        U5      S:X  a  [        UR!                  5       5      nU$ s  snf s  snf )Nr)  r)   )re   r   rX   r   r   r	   r   r  r  rH   r[   setr  addrG   r  r   )
array_likearray_like_dtcoltypesr   rj   tys         r&   r  r  
  s(   JJM*ekk** !1!12  
Ju}} =	>	> ,  
J =	>	>5CsG$$*-.#Qa#.S!	 
 x=1,,h.Ohx|h.OPM  ]a$X\\^4M / /Ps   E1,E6c                    [        U [        R                  5      (       a+  U R                  S:  a  [	        SR                  U5      5      eg [        U [        R                  5      (       a  [        U R                  S   [        R                  5      (       aV  [        U R                  S   R                  S   [        R                  5      (       a  SR                  U5      n[	        U5      eg g g )Nr   z{0} has more than 2 dimensionsr   )rX   r   r   r   r   formatr  r  )r  namer   s      r&   check_dimensionsr  
  s    *ekk**??Q !A!H!H!NOO 	J	/	/jnnQ'88*..+//2ENNCC6==dC$S)) D 9 
0r%   c                     [         R                  " U 5      (       d  [        S5      eU [        U 5      -
  S:w  a  [        S5      eg )Nz)Cannot convert non-finite ddof to integerr   zddof must be integral value)re   r  r   r  )r   s    r&   _handle_ddofr!  
  s?    ;;tDEEc$i1677 r%   c                     U $ r,   r$   r  s    r&   r  r  
  s    ar%   c                 :    U" U 5        U" U5        [        XX#5      $ r,   )r  )r   r  r  r   r   _DDOF_HANDLER_M_DIM_HANDLERs          r&   _prepare_cov_inputr&  
  s!     1$#A&88r%   c                    US [         R                  4;   n[        U [         R                  5      (       a  U R                  S:X  a  U$ [        U [         R
                  5      (       aj  [        S U R                    5       5      (       a  U$ [        U R                   5      S:X  a.  [        U R                   S   [         R
                  5      (       a  U$ [        U [         R                  [         R                  45      (       a  U$ [        U [         R                  5      (       a4  [        U R                  S   [         R                  5      (       d  U(       a  gg)Nr)   c              3   v   #    U  H/  n[        U[        R                  [        R                  45      v   M1     g 7fr,   )rX   r   r  r  ).0r  s     r&   	<genexpr>)scalar_result_expected.<locals>.<genexpr>
  s.      /-1 !ellEMM:;;-s   79r   TF)r   ry  rX   r   r   	BaseTuplerf  rG   r  r  r  r  )mandatory_inputoptional_inputopt_is_nones      r&   scalar_result_expectedr0  
  s     T5::$66K/5;;//O4H4HA4M/5??33 /'--/ / /O))*a/44Q7II""/ELL%--#@AA/5>>22?..q15>>BBr%   c                     [         R                  " [         R                  " U 5      S:  [         R                  " U 5      U 5      $ r  )re   r,  fabssignr  s    r&   
_clip_corrr4    s)    88BGGAJNBGGAJ22r%   c                 f    [        U R                  5      n[        U R                  5      nUSU-  -   $ )Nru  )r4  r   r  )r  r   r  s      r&   _clip_complexr6    s-    affDaffD"t)r%   c                 `  ^	^
^ [        U S5        [        US5        US [        R                  4;   a  [        m	Og[	        U[        R
                  [        R                  45      (       a  [        m	O1[	        U[        R                  5      (       a  [        m	O[        S5      e[        m
[	        U [        R                  5      (       a  [        m
[        U 5      n[        U5      n[        R                  " XV[        R                   5      mSU	U
U4S jjn  SU	U
U4S jjn[#        X5      (       a  U$ U$ )Nr   r  z)ddof must be a real numerical scalar typec           	      R  > [        XUTUTT5      R                  T5      n[        R                  " [        R                  " UR
                  5      S:H  5      (       a@  [        R                  " UR
                  S   UR
                  S   4[        R                  TS9$ [        XSU5      $ )Nr   r  )	r&  r  re   r  ru  r   r   rv  r  )	r   r  r  r  r   r  r$  r%  r   s	         r&   np_cov_implnp_cov.<locals>.np_cov_impl<  s    qVUD--//5ve} 	
 66"((177#q())77AGGAJ
3!&( ( %Qd33r%   c           	      8  > [        XX$T	TT5      R                  T	5      n[        R                  " [        R                  " UR
                  5      S:H  5      (       a  [        R                  nO[        XSU5      R                  S   n[        R                  " U5      $ r   )	r&  r  re   r  ru  r   rv  r  r   )
r   r  r  r  r   r  variancer$  r%  r   s
          r&   np_cov_impl_single_variable+np_cov.<locals>.np_cov_impl_single_variableF  sv    qV5--//5ve} 	
 66"((177#q())vvH($7<<Q?Hxx!!r%   NTFN)r  r   ry  _handle_ddof_noprX   r?  r  r  r!  r   _handle_m_dim_nopr   r  r  re   r  r   r0  )r   r  r  r  r   m_dty_dtr9  r=  r$  r%  r   s            @@@r&   np_covrD    s     QQ ejj!!(dU]]EMM:;;,Mekk**(MIJJ
 'N!U[[!!- 1D1DNN4rzz2E4 4 BG)-
" 
" a##**r%   c                    ^ [        U 5      n[        U5      n[        R                  " X4[        R                  5      nU[        R                  :X  a  [
        mO[        mSU4S jjnSS jn[        X5      (       a  U$ U$ )Nc                 .  > [         R                  " XU5      n[         R                  " U5      n[         R                  " UR                  5      n[        UR                  S   5       H$  nX6S S 24==   U-  ss'   US S 2U4==   U-  ss'   M&     T" U5      $ r   )re   covdiagsqrtr   r3   r   )r  r  r  ri   r  stddevr.   clip_fns          r&   np_corrcoef_impl%np_corrcoef.<locals>.np_corrcoef_impld  sv    FF1 GGAJqwwqz"AdGvGadGvG # qzr%   c                 8    [         R                  " XU5      nX3-  $ r,   )re   rG  )r  r  r  ri   s       r&    np_corrcoef_impl_single_variable5np_corrcoef.<locals>.np_corrcoef_impl_single_variableo  s    FF1 ur%   NT)r  re   r  r   
complex128r6  r4  r0  )	r  r  r  r  rC  r   rL  rO  rK  s	           @r&   np_corrcoefrS  X  sf     1D1DNN4rzz2E	 a##//r%   c                    ^^ [        U [        R                  [        R                  45      n[	        U 5      (       a  U(       d  S nU$ SmSmUU4S jnU$ )Nc                    [         R                  " U 5      nUR                  S:X  a#  [         R                  " S[        R
                  S9$ [         R                  " [         R                  " [         R                  " U5      5      5      $ )Nr$   )r   r)   r  )	re   r  r   r  r   r5   rU  vstackrF  rY  s     r&   r]  np_argwhere.<locals>.impl  sO    **Q-CyyBxxejj99<<		"**S/ :;;r%   )r   r   )r)   r   c                    > U b3  [        U 5      (       a#  [        R                  " T[        R                  S9$ [        R                  " T[        R                  S9$ r  )r  re   r  r   r5   )r-   falseishtrueishs    r&   r]  rW    s:    }axxuzz::xx

;;r%   )rX   r   r  r  r
   )r-   
use_scalarr]  rY  rZ  s      @@r&   np_argwherer\  }  sO    
 Aemm<=J:	< K 	< Kr%   c                 6    [        U 5      (       a  S nU$ S nU$ )Nc                     [         R                  " U 5      n[         R                  " [         R                  " U5      5      S   $ r   )re   r  rF  rV  rY  s     r&   r]  np_flatnonzero.<locals>.impl  s+    **Q-C::bhhsm,Q//r%   c                     U b  [        U 5      (       a  S/nO[        S5       Vs/ s H  o"PM     nn[        R                  " U[        R
                  S9$ s  snf )Nr   r  )r  r3   re   ru  r   r5   )r-   rA   r  s      r&   r]  r_    sH    }as#(8,8a8,88D

33 -s   Ar  )r-   r]  s     r&   np_flatnonzerora    s'     	0 K	4 Kr%   c                    U R                   S:X  aC  U R                  S   nU R                  S   nSU-   nU(       a  X2-  nXT4$ U[        X#5      -  n XT4$ [        R                  " U R                  5      n[        R
                  " [        R                  " U5      S:H  5      (       d  [        S5      eS[        R                  " US S 5      R                  5       -   nUR                  5       nXT4$ )Nr   r   r)   z/All dimensions of input must be of equal lengthrT  )r   r   r  re   ru  rf  r  r   r   r  r   )r-   wrapr   r  stepr  r   s          r&   _fill_diagonal_paramsre    s    vv{GGAJGGAJ1u%C 9 c!i-C 9 !vvbggen)**NOOBJJuSbz*//11jjl9r%   c                 `    [        X5      u  p4[        SX45       H  nXR                  U'   M     g r   )re  r3   r   )r-   r   rc  r  rd  r.   s         r&   _fill_diagonal_scalarrg    s*    %a.IC1c q	 !r%   c                     [        X5      u  p4Sn[        U5      n[        SX45       H  nX   U R                  U'   US-  nXV-  nM     g r  )re  rG   r3   r   )r-   r   rc  r  rd  ctrv_lenr.   s           r&   _fill_diagonalrk    sL    %a.IC
CHE1c Hq	qk !r%   c                 ^   [         R                  " U R                  5      nUR                  nUR                  n[         R
                  " [         R                  " U5      ) 5      (       d:  [         R
                  " X:  5      (       d  [         R
                  " X:  5      (       a  [        S5      eg Nz'Unable to safely conform val to a.dtype)re   iinfor   r  r#  r  r  r   )r-   r   rn  v_minv_maxs        r&   _check_val_intrq    su    HHQWWEIIEIIE 
vvr{{3  BFF3;$7$7266#+;N;NBCC <Or%   c                 0   [         R                  " U R                  5      nUR                  nUR                  nU[         R
                  " U5         n[         R                  " XS:  5      (       d  [         R                  " XT:  5      (       a  [        S5      eg rm  )re   finfor   r  r#  r  r  r   )r-   r   rs  ro  rp  finite_valss         r&   _check_val_floatru    sp    HHQWWEIIEIIE bkk#&'K	vvk!""bff[-@&A&ABCC 'Br%   c                     U $ r,   r$   r  r  s     r&   r  r    s    1r%   c                     g r,   r$   r  s    r&   rX  rX    re  r%   c                 .  ^ [        U [        R                  5      (       a  S $ [        U [        R                  [        R                  45      (       a  S $ [        U [        R
                  [        R                  45      (       a  [        U 5      mU4S j$ g )Nc                     U $ r,   r$   r  s    r&   r  _asarray_impl.<locals>.<lambda>  s    r%   c                 .    [         R                  " U 5      $ r,   rt  r  s    r&   r  r{    s    !r%   c                 0   > [         R                  " U /TS9$ r  rt  r  r  s    r&   r  r{    s    1#R0r%   )rX   r   r   r  r[   r  r  r	   r~  s    @r&   _asarray_implr    sh    !U[[!!	A4	5	5$$	Aemm4	5	5a[00 
6r%   c                 F  ^ U R                   S:  a  [        U R                  [        R                  5      (       a  [
        mO6[        U R                  [        R                  5      (       a  [        mO[        mSU4S jjnSU4S jjn[        U[        R                  [        R                  [        R                  45      (       a  U$ [        U[        R                  [        R                  [        R                  45      (       a  U$ g SU R                   -  n[        U5      e)Nr)   c                 `   > [        U5      R                  5       nT" X5        [        XU5        g r,   )rX  r  rg  r-   r   rc  tmpvalcheckers       r&   scalar_impl%np_fill_diagonal.<locals>.scalar_impl
  s'    c]**,FA!!$/r%   c                 `   > [        U5      R                  5       nT" X5        [        XU5        g r,   )rX  r  rk  r  s       r&   non_scalar_impl)np_fill_diagonal.<locals>.non_scalar_impl  s'    c]**,FA1d+r%   z4The first argument must be at least 2-D (found %s-D)F)r   rX   r   r   r?  rq  r  ru  
_check_nopr  r[   r  r   r   )r-   r   rc  r  r  r   r  s         @r&   np_fill_diagonalr    s     	vvz aggu}}--$G--&G G	0
	,
 cEKKFGGekk5>>5;;GHH"" I EqvvM#r%   c                 "    SU R                   4-  $ )Nzllvm.rint.f%d)r   )tps    r&   _np_round_intrinsicr    s    bkk^++r%   c                     U" U5      nS nX#4$ )Nc                 4   Uu  nUR                   S   nU R                  U5      nUR                  n[        R                  R                  Xf/5      n[        R                  " Xx[        U5      5      n	UR                  X45      n
[        XUR                  U
5      $ r   )r;   r1   modulellvmliteirFunctionTyper   get_or_insert_functionr  callr   rs   )rv   r9   rw   r;   r   r  lltyr  fntyr  rx   s              r&   rE    _np_round_float.<locals>.codegen&  s    XXa[%%b){{''f5++F,?,CEll2v&!'COOSIIr%   r$   )	typingctxr   rw   rE   s       r&   _np_round_floatr  "  s    
c(C	J <r%   c                 H   [         R                  " U 5      (       d  [         R                  " U 5      (       a  U $ US:  aM  US:  a  SUS-
  -  nSnOSU-  nSnX-  U-  n[         R                  " U5      (       a  U $ [        U5      U-  U-  $ SU* -  nX-  n[        U5      U-  $ )Nr      g      $@gMDrn  )r  rp  r   r  )r  ndigitspow1pow2r  s        r&   round_ndigitsr  4  s    zz!}}

1 !|R< GbL)DD7?DDX::a==H"T)T11 !Hq!D((r%   c                    [        U 5      (       d  [        S5      e[        U[        R                  5      (       d  [        U5      (       d  Sn[        U5      e[        U [        R                  [        R                  [        R                  45      (       a  [        U5      (       as  [        U [        R                  5      (       a  S	S jnU$ [        U [        R                  5      (       a  S	S jnU$ [        U [        R                  5      (       a  S	S jnU$ g S	S jnU$ [        U [        R                  5      (       a  [        U5      (       a  S	S jnU$ S	S jnU$ g )
Nz#The argument "a" must be array-likez5The argument "out" must be an array if it is providedc                 :    US:X  a  [        U 5      $ [        X5      $ r   )r  r  r-   decimalsr   s      r&   r]  impl_np_round.<locals>.impl\  s    1}.q11,Q99r%   c                 :    US:X  a  U $ [        [        X5      5      $ r   )r  r  r  s      r&   r]  r  c  s    1} "=#=>>r%   c                     US:X  a+  [        U R                  5      n[        U R                  5      nO,[        U R                  U5      n[        U R                  U5      n[	        X45      $ r   )r  r   r  r  complex)r-   r  r   r   r  s        r&   r]  r  j  sP    1}.qvv6.qvv6,QVVX>,QVVX>"4..r%   c                 8    [         R                  " X5      US'   U$ r   )re   roundr  s      r&   r]  r  t  s    !.A
r%   c                 \    [         R                  " U 5      n[         R                  " XU5      $ r,   )re   r  r  r  s      r&   r]  r  z  s!    mmA&xxS11r%   c                     U R                   UR                   :w  a  [        S5      e[        R                  " U 5       H  u  p4[        R                  " XA5      X#'   M     U$ )Nzinvalid output shape)r   r   re   r  r  )r-   r  r   r  r   s        r&   r]  r    sH    77cii'$%;<<"$.."3JE!##!8CJ #4
r%   rJ  )	r
   r   rX   r   r   r   r  r?  r  )r-   r  r   r   r]  s        r&   impl_np_roundr  O  s    A?@@sEKK((K,<,<E#!ekk5==%--@AAs!U[[)):
 Au}}--?
 Au}}--/  . K	Au{{	#	#s2 K K 
$r%   c                     [        U [        R                  5      (       a  S nU$ [        U [        R                  5      (       a  S nU$ [	        S5      e)Nc                 j    U S:X  a  Sn U [         R                  -  n [         R                  " U 5      U -  $ )Nr  g#B;)re   pisinr  s    r&   r]  impl_np_sinc.<locals>.impl  s-    DyJA66!9q= r%   c                     [         R                  " U 5      n[         R                  " U 5       H  u  p#[         R                  " U5      X'   M     U$ r,   )re   r-  r  sinc)r  r   r  r   s       r&   r]  r    s9    --"C nnQ/
WWS\
 0Jr%   z,Argument "x" must be a Number or array-like.)rX   r   r  r   r   r  s     r&   impl_np_sincr    sH    !U\\""	!
 	Au{{	#	#	
 KLLr%   c                   ^^ [        S[        R                  -  5      m[        U [        R
                  5      (       a
  SU4S jjnU$ [        U [        R                  5      (       ae  U R                  n[        U[        R                  5      (       a  UR                  mO#[        U[        R                  5      (       a  UmOg SU4S jjnU$ [        SU  35      e)N   c                    > U(       a.  [         R                  " U R                  U R                  5      T-  $ [         R                  " U R                  U R                  5      $ r,   )re   arctan2r  r   )r;  degdeg_mults     r&   r]  ov_np_angle.<locals>.impl  s=    zz!&&!&&1H<<zz!&&!&&11r%   c                    > [         R                  " U TS9n[         R                  " U 5       H  u  p4[         R                  " XA5      X#'   M     U$ r  )re   r-  r  angle)r;  r  r   r  r   	ret_dtypes        r&   r]  r    s=    --3C nnQ/
XXc/
 0Jr%   z6Argument "z" must be a complex or Array[complex]. Got r  )r  re   r  rX   r   r  r   r   r  underlying_floatr  r   )r;  r  r]  r   r  r  s       @@r&   ov_np_angler    s    S255[!H !U\\""	2
 	Au{{	#	#eU]]++..Iu{{++I	
  778c; < 	<r%   zarray.nonzeroc                    UR                   S   nUR                  nUR                  nUR                  n[	        U5      " XUS   5      n[
        R                  " XR                  5      n	[
        R                  " XR                  5      n
UR                  nUR                  nU R                  [        R                  S5      nU R                  [        R                  S5      n[
        R                  " X5      n[
        R                  " XUR                   5       n[
        R"                  " XXU
UU5      n[%        XUU5      nU R'                  XR                  U5      nUR)                  U5         UR+                  UR-                  UR/                  U5      U5      U5        S S S 5        S S S 5        UR/                  U5      4n[1        U5       Vs/ s H  n[3        XUU5      R5                  5       PM      nnU Vs/ s H  n[	        U5      " XU5      PM     nnU Vs/ s H  nUR                  PM     nn[
        R                  " X5      n[
        R                  " XUR                   5       n[
        R"                  " XXU
UU5      n[%        XUU5      nU R'                  XR                  U5      nUR)                  U5         U(       d  U4nUR/                  U5      n[1        U5       H3  n[
        R"                  " XUU   USSU/5      n[7        XUUU   U5        M5     UR+                  UR-                  UU5      U5        S S S 5        S S S 5        U R9                  XR                  U5      n[;        XUR                  U5      $ ! , (       d  f       GN= f! , (       d  f       GN= fs  snf s  snf s  snf ! , (       d  f       N|= f! , (       d  f       N= f)Nr   r)   r$   C)r;   rs   r   r)  r   r   unpack_tupler   stridesrA   layoutr4   r   r5   alloca_once_value	loop_nestr   get_item_pointer2r   is_trueif_thenstorer  loadr3   r   	_getvaluer   
make_tupler   )rv   r9   rw   r;   arytyr   outarytynoutsr  r   r  rA   r  rk   rC  r)  indicesptrr   nz	out_shaper.   outsr   outarys	out_datasr  curr=   s                                r&   array_nonzeror    s    HHQKEOOE{{HKKE
U
Gd1g
6C  ))4E""7KK8G88D\\F 

A.D


uzz1
-C%%g4E			7499	5''$w(.9%5__Wkk37__R MM'++gll5&93?G ! 
6 e$&I5\#! 7XyAKKM! 	 #FJKdsz(#Gc:dGK%,-WcWI- %%g4E			7499	5''$w(.9%5__Wkk37__R ',,u%C5\//)A,09203cU< 7Xwqz3G	 "
 MM'++c3/7 ! 
6$ 

Woot
<CGcoosCC? !  
6	5#K- !  
6	5s]   AN-2NN%N&9N+N0*AO?B N5?O
N	N
N#5
O	?O
Oc                    ^  U 4S jnU$ )Nc                    > [         R                  " U5      R                  T5      n[         R                  " U5      R                  T5      nU (       a  U$ U$ r,   )re   r  r  )	conditionr  r  x_y_r   s        r&   r]  )_where_zero_size_array_impl.<locals>.impl  s@    ZZ]!!%(ZZ]!!%(r&B&r%   r$   )r   r]  s   ` r&   _where_zero_size_array_implr    s    ' Kr%   c                 f    [         R                  " U 5       H  u  pEU(       a  X   OX$   X4'   M     U$ r,   )re   r  )condr  r  rx   r   ri   s         r&   _where_generic_inner_implr    s+    ..&16AF 'Jr%   c                     U R                   nUR                   nUR                   nUR                   n[        U R                  5       H  nXH   (       a  XX   OXh   Xx'   M     U$ r,   )r   r3   r   )	r  r  r  rx   cfxfyfrfr.   s	            r&   _where_fast_inner_implr  
  sO    	B	
B	
B	B499BE Jr%   c                 .   ^ ^^ TS1S14;   mU UU4S jnU$ )Nr  Fc                 6  > [         R                  " U 5      [         R                  " U5      [         R                  " U5      pTn[         R                  " UR                  UR                  UR                  5      n[         R                  " X65      n[         R                  " XF5      n[         R                  " XV5      n	TS:X  a&  [         R
                  " US S S2   TS9R                  n
O[         R
                  " UTS9n
T(       a  [        XxX5      $ [        XxX5      $ )Nr  rT  r  )	re   r  r  r   r  r   r  r  r  )r  r  r  cond1x1y1r   cond_r  r  rx   r   r  use_faster_impls              r&   r]  !_where_generic_impl.<locals>.impl  s    

9-rzz!}bjjm2##EKK288D-__R'__R'S=((52;e466C((5.C)%R==,U@@r%   r$   )r   r  r]  r  s   `` @r&   _where_generic_implr    s"    #.OA" Kr%   c                 F    [        U 5      (       d  Sn[        U5      eS nU$ )N+The argument "condition" must be array-likec                 J    [         R                  " U 5      R                  5       $ r,   )re   r  rF  )r  s    r&   where_cond_none_none)ov_np_where.<locals>.where_cond_none_none2  s    zz)$,,..r%   )r
   r   )r  r   r  s      r&   ov_np_wherer  ,  s(    I&&;S!!/r%   c                 `   [        U 5      (       d  Sn[        U5      e[        U5      (       d  [        U5      (       a  [        S5      e[        X4S5       H1  u  pE[        U5      (       a  M  Sn[        UR	                  U5      5      e   [        U [        R                  5      n[        U[        R                  5      n[        U[        R                  5      nU(       a  [        U5      n	[        U5      n
[        R                  " X5      nS n[        XU4 Vs/ s H
  o" U5      PM     sn5      nU(       a  [        U5      $ U R                  nU(       aD  U(       a=  UR                  UR                  s=:X  a  U R                  :X  a  O  OUR                  nOSn[        X5      $ S nU$ s  snf )Nr  z"Argument "x" or "y" cannot be Nonerw  z0The argument "{}" must be array-like if providedc                     [        U [        R                  5      =(       d0    [        U [        R                  5      =(       a    U R                  S:H  $ r   )rX   r   r  r   r   )args    r&   check_0_dim$ov_np_where_x_y.<locals>.check_0_dimY  s7    c5<<0 @3,>Q@r%   r  c                     [         R                  " [         R                  " U 5      [         R                  " U5      [         R                  " U5      5      $ r,   )re   r,  r  )r  r  r  s      r&   r]  ov_np_where_x_y.<locals>.implh  s.    88BJJy12::a="**Q-PPr%   )r
   r   r   zipr  rX   r   r   r  re   r  rf  r  r  r  )r  r  r  r   r   r  cond_arrr  r  r  rC  r   r  r-   special_0_caser  r]  s                    r&   ov_np_where_x_yr  7  s]   I&&;S!! 1~~QABB!,	$$DC D!122 -
 )U[[1Hq%++&Eq%++&Eq!q!  ,	@ yQ6GH6Gk!n6GHI.u55!!Uxx1887y'7'77"511	Q Is   F+c                     S nU$ )Nc                     U R                   $ r,   )r   rq  s    r&   np_real_implnp_real.<locals>.np_real_implo      xxr%   r$   )r   r  s     r&   np_realr  m       r%   c                     S nU$ )Nc                     U R                   $ r,   )r  rq  s    r&   np_imag_implnp_imag.<locals>.np_imag_implw  r  r%   r$   )r   r  s     r&   np_imagr  u  r  r%   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                 L    [         R                  " U 5       H
  nX!:X  d  M
    g   gr  )re   rf   )rh   r  r  s      r&   np_contains_impl%np_contains.<locals>.np_contains_impl  s!    3Ax   r%   r   )rh   r  r  s      r&   np_containsr    s#    c5;;'' r%   c                 t    [        U 5      (       d  [        S5      e[        U5      (       a  SS jnU$ SS jnU$ )Nz3The argument to np.count_nonzero must be array-likec                 `    [         R                  " U 5      n[         R                  " US:g  5      $ r   )re   rV  r  r-   r]   arr2s      r&   r]  np_count_nonzero.<locals>.impl  s"    88A;D66$!)$$r%   c                 h    U R                  [        R                  5      n[        R                  " X!S9$ )N)r]   )r  re   r   r  r  s      r&   r]  r    s#    88BHH%D66$**r%   r,   )r
   r   r   )r-   r]   r]  s      r&   np_count_nonzeror     s<    AOPP4	% 	+ r%   c                     U $ r,   r$   r  s    r&   r  r    s    r%   c                 .    [         R                  " U 5      $ r,   r  r  s    r&   r  r    s    

1r%   c                 "  ^ [        U [        R                  [        R                  45      (       d  [	        S5      e[        U[        R                  [        R                  [        R
                  45      (       ah  [        U[        R
                  5      (       a  [        mO:[        UR                  [        R                  5      (       d  [	        S5      e[        mU4S jnU$ [        U[        R                  5      (       d  [	        S5      eS nU$ )Nz)arr must be either an Array or a Sequencezobj should be of Integer dtypec                    > [         R                  " [         R                  " U 5      5      n U R                  n[         R                  " U[         R
                  S9nT" U5      nSX1'   X   $ )Nr  F)re   rV  r  r   onesr   )rh   r~  r  keephandlers       r&   np_delete_impl!np_delete.<locals>.np_delete_impl  sN    ((2::c?+CA771BHH-D#,CDI9r%   c                     [         R                  " [         R                  " U 5      5      n U R                  nUnX2* :  d  X2:  a  [	        S5      eUS:  a  X2-  n[         R
                  " U S U XS-   S  45      $ )Nz"obj must be less than the len(arr)r   r)   )re   rV  r  r   
IndexErrorconcatenate)rh   r~  r  poss       r&   np_delete_scalar_impl(np_delete.<locals>.np_delete_scalar_impl  so    ((2::c?+CACbCH !EFF a>>3t9c'(m"<==r%   )
rX   r   r   r  r   	SliceTypenp_delete_handler_isslicer   r?  np_delete_handler_isarray)rh   r~  r(  r.  r'  s       @r&   	np_deleter3    s    
 cEKK899EFF#U^^U__EFFcEOO--/Gcii77!"BCC/G	  #u}}-->??	> %$r%   c                 p    [        U [        R                  5      (       a  U R                  S:X  a  g SS jnU$ )Nr   c                    US:X  a  U R                  5       $ US:  a  [        S5      eU R                  S   nU R                  S S [        X!-
  S5      4-   n[        R
                  " X0R                  5      nUR                  S:X  a  U$ U R                  SU45      nUR                  SUR                  S   45      n[        R
                  " X R                  5      n[        UR                  S   5       Hk  n[        US-
  5       H  n	XXU	S-   4   XXU	4   -
  Xy'   M     [        SU5       H(  n
[        X*-
  S-
  5       H  n	XyS-      Xy   -
  Xy'   M     M*     US X!-
   Xh'   Mm     U$ )Nr   z"diff(): order must be non-negativerT  r)   )
r  r   r   r#  re   r   r   r   rW  r3   )r-   r  r   r  r   a2out2workmajorr.   niters              r&   	diff_implnp_diff_impl.<locals>.diff_impl  sQ   6668Oq5ABBwwr{GGCRLC!$4#66	hhy''*88q=J YYDz"{{B		"./xxgg&288A;'E4!8_AE\*Rq\9 % q!t|a/0A"q5kDG3DG 1 % y/DK ( 
r%   r  )rX   r   r   r   )r-   r  r;  s      r&   np_diff_implr=    s-    a%%1> r%   c                     [        U 5      (       a  [        U5      (       d  [        S5      e[        R                  [        R                  4n[        X5      (       a  [        X5      (       a  S nU$ S nU$ )Nz3Both arguments to "array_equals" must be array-likec                 
    X:H  $ r,   r$   )a1r6  s     r&   r]  np_array_equal.<locals>.impl  s	    8Or%   c                     [         R                  " U 5      n[         R                  " U5      nUR                  UR                  :X  a  [         R                  " X#:H  5      $ gr  )re   r  r   rf  )r@  r6  r-   r  s       r&   r]  rA    s?    

2A

2Aww!''!vvaf~%r%   )r
   r   r   r  r  rX   )r@  r6  acceptedr]  s       r&   np_array_equalrD    se     R  %5b%9%9OPPu||,H"Jr$<$<	 K	 Kr%   c                     [        U 5      (       d  [        U5      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      eSS jnU$ )Nz.intersect1d: first two args must be array-likez5intersect1d: argument "assume_unique" must be booleanc                 z   [         R                  " U 5      n [         R                  " U5      nU(       d-  [         R                  " U 5      n [         R                  " U5      nO U R                  5       n UR                  5       n[         R                  " X45      nUR                  5         USS  US S :H  nUS S U   nU$ )Nr)   rT  )re   r  r  rV  r,  sort)ar1ar2assume_uniqueauxr/  int1ds         r&   np_intersects1d_impl0jit_np_intersect1d.<locals>.np_intersects1d_impl  s    jjojjo))C.C))C.C))+C))+CnncZ(
12w#cr("CRr%   r  r
   r   rX   r   r  r  )rH  rI  rJ  rM  s       r&   jit_np_intersect1drP    s^    
 S!!%5c%:%:JKKmemmT%:;; E F 	F   r%   c                 
   [        U[        R                  5      (       a+  UR                  S:w  a  [	        SR                  U 5      5      eg [        U[        R                  5      (       d  [	        SR                  U 5      5      eg )Nr)   z${0}(): input should have dimension 1z+{0}(): input should be an array or sequence)rX   r   r   r   r   r  r  )	func_nameseqs     r&   validate_1d_array_likerT  -  so    #u{{##88q= !G"(&"35 5  U^^,,J$fY/1 	1 -r%   c                   ^^^ [        SU 5        [        U R                  [        R                  5      (       d  g [        US5        US [        R                  4;  a5  [        SU5        [        R                  m[        S 5       m[        S 5       mO([        R                  m[        S 5       m[        S 5       mSUUU4S jjnU$ )	Nbincount	minlengthc                 J    [        U 5      [        U5      :w  a  [        S5      eg )Nz7bincount(): weights and list don't have the same length)rG   r   r-   r  rW  s      r&   validate_inputs$np_bincount.<locals>.validate_inputsF  s)    1vW%  "3 4 4 &r%   c                      X==   X1   -  ss'   g r,   r$   r   r   r   r  s       r&   
count_itemnp_bincount.<locals>.count_itemL  s    H$Hr%   c                     g r,   r$   rY  s      r&   rZ  r[  S  s    r%   c                     X==   S-  ss'   g r  r$   r]  s       r&   r^  r_  W  s    HMHr%   c                 \  > T
" XU5        US:  a  [        S5      e[        U 5      nUS:  a  U S   OSn[        SU5       H$  nX   S:  a  [        S5      e[        X@U   5      nM&     [        US-   U5      n[        R
                  " UT	5      n[        U5       H  nT" XuX   U5        M     U$ )Nr   z 'minlength' must not be negativerT  r)   z/bincount(): first argument must be non-negative)r   rG   r3   r#  re   r  )r-   r  rW  r  r  r.   
out_lengthr   r^  r  rZ  s           r&   bincount_impl"np_bincount.<locals>.bincount_impl[  s    I.q=?@@FA!2q!Atax  "0 1 1t$E	  I.
hhz9-qAsqtW- 
r%   r   )rT  rX   r   r   r?  r   ry  re   r   r   r5   )r-   r  rW  rd  r^  r  rZ  s       @@@r&   np_bincountrf  7  s    :q)aggu}}--Y,tUZZ((z73 JJ			4 
	4
 
	% 
	% JJ			 
	 
	 
	 & r%   c                    [         R                  " U R                  5      (       a  [         R                  " UR                  5      (       a  [         R                  " U R                  5      (       a   [         R                  " UR                  5      $ [         R                  " UR                  5      (       a  gU R                  UR                  :*  $ g[         R                  " UR                  5      (       a  g[         R                  " U R                  5      (       a?  [         R                  " UR                  5      (       a  U R                  UR                  :*  $ g[         R                  " UR                  5      (       a  gU R                  UR                  :  a  gU R                  UR                  :X  a  U R                  UR                  :*  $ gr  )re   r   r   r  r  s     r&   less_than_or_equal_complexrh  u  s   	xx88AFFxxxx''88AFF##66QVV++ 88AFFxx88AFF##66QVV++ 88AFF##vv#166) vv// r%   c                     [        U [        5      (       d  [        U[        5      (       a  [        X5      $ [        U[        5      (       a  [        R
                  " U5      (       a  gX:*  $ rQ  )rX   r  rh  r  re   r   r  s     r&   _less_than_or_equalrj    sJ    !WAw!7!7)!//	Au		88A;;6Mr%   c                     [        U [        5      (       d  [        U[        5      (       a  [        X5      $ [        U[        5      (       a  [	        X5      $ X:  $ r,   )rX   r  less_than_complexr  less_than_floatr  s     r&   
_less_thanrn    sE    !WAw!7!7 &&	Au		q$$5Lr%   c                 z    [         R                  " U 5      (       a  g[         R                  " U5      (       a  gX:  $ r  )re   r  r  s     r&   _less_then_datetime64rp    s+     
xx{{	xx{{5Lr%   c                 "    [        X5      (       + $ r,   )rp  r  s     r&   _less_then_or_equal_datetime64rr    s    $Q***r%   c                    ^  U 4S jnU$ )Nc                 h   > X#:  a*  X#U-
  S-	  -   nX   nT" XQ5      (       a  US-   nOUnX#:  a  M*  X#4$ r  r$   )r-   key_valr2  rK  r  mid_valcmps         r&   r]  _searchsorted.<locals>.impl  sN    G"3!9:GjG7$$!A+!  r%   r$   )rw  r]  s   ` r&   _searchsortedry    s    	  Kr%   leftrightc                     U[         ;   d   eU R                  S;   a  [        n[        nO[        n[
        nUS:X  a  [        U5      nUnO[        U5      nUn[        U5      [        U5      4$ )NmMrz  )VALID_SEARCHSORTED_SIDEScharrp  rr  rn  rj  ry  r   )np_dtypesidern  le_impl_cmps         r&    make_searchsorted_implementationr    sl    ++++}}"+ v~b!b!E"$4T$:::r%   c                   ^^ [        USU5      nU[        ;  a  [        SU 35      e[        U[        R
                  [        R                  45      (       a  [        UR                  5      nO[        U5      n[        R                  " [        U R                  5      U5      n[        XS5      u  mm[        U[        R
                  5      (       a  SUU4S jjnU$ [        U[        R                  5      (       a  SS jnU$ SU4S jjnU$ )NrZ   z Invalid value given for 'side': c                   > [         R                  " UR                  [         R                  S9nUR                  S   nSn[        U 5      n[        UR                  5       H^  nUR                  U   nT	" XH5      (       a  [        U 5      nO"SnU[        U 5      :  a  US-  nO[        U 5      nUnT
" XXV5      u  pVXSU'   M`     UR                  UR                  5      $ )Nr  r   r)   )	re   r   r   r5   r   rG   r3   rW  r   )r-   rj   r  r   last_key_valr2  rK  r.   ru  r  r  s            r&   r]  searchsorted.<locals>.impl  s    ((1661C66!9LG!fG166]&&)..!!fGGQ'1"%a&&#(W#F  A #  ;;qww''r%   c                 X    [         R                  " U5      n[         R                  " XUS9$ )Nr  )re   r  searchsorted)r-   rj   r  s      r&   r]  r    s     

1A??1d33r%   c                 2   > T" XS[        U 5      5      u  p4U$ r   )rG   )r-   rj   r  rr?   r  s        r&   r]  r    s    q#a&)DAHr%   rz  )r   r~  r   rX   r   r   r  r	   r   re   r  r  )	r-   rj   r  side_valv_dtnp_dtr]  r  r  s	          @@r&   r  r    s    t_d3H//  @
KLL!ekk5>>233 {Xagg.5E25CKE4!U[[!!	( 	(> K 
Au~~	&	&	4 K	 Kr%   c                    ^ [        U [        R                  5      (       a)  U R                  [        R                  ;   a  [        S5      e[        S 5       mSU4S jjnU$ )Nzx may not be complexc                    [        U 5      S:X  a  gU S   nSnU[        U 5      :  a&  X   U:X  a  US-  nU[        U 5      :  a
  X   U:X  a  M  U[        U 5      :X  a  gX   nX:  a-  [        US-   [        U 5      5       H  nUnX   nX:  d  M    g   g[        US-   [        U 5      5       H  nUnX   nX:  d  M    g   g)Nr   r)   rT  )rG   r3   )bins
last_valuer.   
next_values       r&   _monotonicity"np_digitize.<locals>._monotonicity$  s     t9> !W
#d)m: 5FA #d)m: 5 D	>W
"1q5#d),'
!W
*	 -
  1q5#d),'
!W
*	 -
 r%   c                 P  > T" U5      nUS:X  a  [        S5      eU(       aC  US:X  a(  [        U5      [        R                  " US S S2   U SS9-
  $ [        R                  " XSS9$ US:X  a(  [        U5      [        R                  " US S S2   U SS9-
  $ [        R                  " XSS9$ )Nr   z3bins must be monotonically increasing or decreasingrT  rz  r  r{  )r   rG   re   r  )r  r  r{  monor  s       r&   digitize_impl"np_digitize.<locals>.digitize_implI  s    T"19E 
 rz4y2??4":qv#NNNtV<<rz4y2??4":qw#OOOtW==r%   r  )rX   r   r   r   complex_domainr   r   )r  r  r{  r  r  s       @r&   np_digitizer    sS     !U[[!!agg1E1E&E011" "H>. r%   c                    ^ [        U[        [        R                  45      (       a3  US [        R                  4;   a  [        S5      mSU4S jjnU$ SS jn U$ SS jnU$ )Nr  c                    > TnT* n[         R                  " U 5       H#  nUR                  5       nX6:  a  UnXF:  d  M!  UnM%     [         R                  " XX445      $ r,   )re   rf   rg   	histogram)r-   r  r3   bin_minbin_maxr   rj   r  s          r&   histogram_impl$np_histogram.<locals>.histogram_implo  sV    $IIaLD		A{"#{"# ) ||Ag-?@@r%   c                    US::  a  [        S5      eUu  p4X4::  d  [        S5      e[        R                  " U[        R                  5      nXC:  a  XU-
  -  n[        R                  " U 5       Hl  nUR                  5       n[        R                  " X-
  U-  5      n	SU	s=::  a  U:  a  O  OU[        U	5      ==   S-  ss'   MV  X:X  d  M]  XQS-
  ==   S-  ss'   Mn     [        R                  " X4US-   5      n
XZ4$ )Nr   z0histogram(): `bins` should be a positive integerz;histogram(): max must be larger than min in range parameterr)   )
r   re   r  r5   rf   rg   r  r  r  linspace)r-   r  r3   r  r  hist	bin_ratior   rj   r  
bins_arrays              r&   r  r  {  s    19$ &8 9 9#( )$ &> ? ? xxbgg.$ $'(9 :I "		! IIK JJy'@A=D= QLA-L\ Na/N !-  [[4!8D
''r%   c                    [        U5      S-
  n[        U5       H  nX   XS-      ::  a  M  [        S5      e   US   nX   n[        R                  " U[        R
                  5      nUS:  av  [        R                  " U 5       H\  nUR                  5       n	XYs=::  a  U::  d  O  M#  Sn
US-
  nX:  a!  X-   S-   S-	  nXU   :  a  US-
  nOUn
X:  a  M!  Xz==   S-  ss'   M^     Xq4$ )Nr)   z-histogram(): bins must increase monotonicallyr   )rG   _ranger   re   r  r5   rf   rg   )r-   r  r3   nbinsr.   r  r  r  r   rj   lohir  s                r&   r  r    s    IMEE]w$1u+-$ &5 6 6 # 1gGkG88E277+DqyIIaLD		A"272 BB'  "w{q0Cy=!$qB!$B ' HMH! )$ :r%   r  N)rX   r  r   r?  ry  r  )r-   r  r3   r  r  s       @r&   np_histogramr  f  sb    $emm,-- T5::&&,C	AN w(v C	B r%   )ibetar  machepepsnegepepsnegiexpminexpxminmaxexpxmaxirndngrdepsilontinyhuge	precision
resolutionMachAr)r  r  r  r  r#  r  r  r  r  nexpnmantr  r  r  bitsrs  )r  r#  r  rn  c           	         ^^	 [        U SU 5      n[        U5      n U" U5      n[        U Vs/ s H  n[        Xg5      PM     sn5      m	[        UU	4S j5       nU$ ! [         a     g f = fs  snf )Nr   c                    > T" T6 $ r,   r$   )r   	containerrA   s    r&   r]  !generate_xinfo_body.<locals>.impl  s    $r%   )r   r	   r   r_  r   )
r   np_funcr  attrnbtyr  r  r  r]  rA   s
     `      @r&   generate_xinfo_bodyr    sw    3%D~HH .A'!-./D   K   /s   A A+
A('A(c                 \   ^ [        U [        R                  [        [        5      mU4S jnU$ )Nc                    > T" U 5      $ r,   r$   )r   r  s    r&   r]  ol_np_finfo.<locals>.impl  s    %yr%   )r  re   rs  _finfo_supported)r   r]  r  s     @r&   ol_np_finfor    s"    	UBHHe5E	FBKr%   c                 \   ^ [        U [        R                  [        [        5      mU4S jnU$ )Nc                    > T" U 5      $ r,   r$   )int_typer  s    r&   r]  ol_np_iinfo.<locals>.impl  s    (|r%   )r  re   rn  _iinfo_supported)r  r]  r  s     @r&   ol_np_iinfor    s"    	Xrxx8H	IBKr%   c                 "  ^ [         S 5       n[        (       d  U$ [        R                  [        R                  -  nX;   =(       a    X;   nU(       d  U$ [        U 5      n[        U5      n[        R                  " XV5      m[         U4S j5       nU$ )Nc                 X    Sn[        [        U 5      5       H  nX U   X   -  -   nM     U$ r   r3   rG   )r-   r  accr.   s       r&   
_innerprod#_get_inner_prod.<locals>._innerprod  s0    s1vA!qt#C 
r%   c                 n   > [         R                  " U R                  T5      UR                  T5      5      $ r,   )re   r  r  )r-   r  r  s     r&   	_dot_wrap"_get_inner_prod.<locals>._dot_wrap
  s$    66!((2,55r%   )r   
_HAVE_BLASr   real_domainr  r	   re   r  )	dtadtbr  fltyfloatsa_dtb_dtr  r  s	           @r&   _get_inner_prodr    s       :u333D[(S[F}}d)		6 
	6r%   c                     [        U [        R                  5      (       a  U R                  S::  d  [	        SU-  5      eg g )Nr)   z!%s() only supported on 1D arrays )rX   r   r   r   r   )r-   rR  s     r&   
_assert_1dr    s9    !U[[!!vv{AIMNN  "r%   c                     g r,   r$   )ap1ap2mode	directions       r&   _np_correlate_corer    re  r%   c                    ^^ [        U R                  5      n[        UR                  5      n[        R                  " XE5      m[	        U R                  UR                  5      mUU4S jnU$ )Nc                 n  > [        U 5      n[        U5      nXE:  a  [        S5      eUnUnUS:X  a  Xg-
  S-   nSnSn	O6US:X  a  US-
  n	US-
  nXg-   S-
  nOUS:X  a  US-  nXx-
  S-
  n	O[        S5      e[        R                  " UT5      n
US:X  a  SnSnOUS	:X  a  US-
  nS	nO[        S
5      e[	        U5       H  nX-   U-
  nT" U S U X* S  5      X'   X-   nM!     [	        XE-
  S-   5       H  nT" XX-    U5      X'   X-   nM     [	        U	5       H  nX}-
  S-
  nT" X* S  US U 5      X'   X-   nM!     U
$ )Nz''len(ap1)' must greater than 'len(ap2)'r  r)   r   r   samer   z1Invalid 'mode', valid are 'full', 'same', 'valid'rT  zInvalid direction)rG   r   re   r  r3   )r  r  r  r  n1n2r  r  n_leftn_rightr  r   incr.   r  r  	innerprods                  r&   r]  %_np_correlate_core_impl.<locals>.impl!  s    XX7 FGG7?Z!^FFGV^!eGUFZ!^FV^!VFj1nG4 
 hhvr">CC"_1*CC011vAA Ra#bc(3CH)C 
 rw{#A #6CH)C $ wA	A RS3r73CH)C  
 
r%   )r	   r   re   r  r  )	r  r  r  r  r  r  r]  r  r  s	          @@r&   _np_correlate_core_implr    sP    CIIDCIID			$	%B		3995I>@ Kr%   c                 V  ^^ [        U S5        [        US5        [        S 5       n[        S 5       nU R                  [        R                  ;   a(  UR                  [        R                  ;   a  UmUmO,UmUmO'UR                  [        R                  ;   a  UmUmOUmUmSUU4S jjnU$ )Nznp.correlatec                 .    [         R                  " U 5      $ r,   )re   r   r  s    r&   op_conj_np_correlate.<locals>.op_conji  s    wwqzr%   c                     U $ r,   r$   r  s    r&   op_nop_np_correlate.<locals>.op_nopm  s    r%   c                    > [        U 5      n[        U5      nUS:X  a  [        S5      eUS:X  a  [        S5      eX4:  a  [        T" U5      T" U 5      US5      $ [        T" U 5      T" U5      US5      $ Nr   z'a' cannot be emptyz'v' cannot be emptyrT  r)   rG   r   r  )r-   rj   r  lalva_opb_ops        r&   r]  _np_correlate.<locals>.impl  sr    VV723372337%d1gtAwbAA%d1gtAwa@@r%   r  )r  r   r   r   r  )r-   rj   r  r  r  r]  r  r  s         @@r&   _np_correlater  d  s    q.!q.!    	ww%&&&77e***DDDD77e***DDDDA A Kr%   c                 @    [        U S5        [        US5        SS jnU$ )Nznp.convolvec                     [        U 5      n[        U5      nUS:X  a  [        S5      eUS:X  a  [        S5      eX4:  a  [        XS S S2   US5      $ [        XS S S2   US5      $ r  r	  )r-   rj   r  r
  r  s        r&   r]  np_convolve.<locals>.impl  sm    VV723372337%a4R4$::%a4R4$::r%   r   )r  )r-   rj   r  r]  s       r&   np_convolver    s"    q- q- ; Kr%   c                   ^^^ [        U 5      (       d  g [        U [        R                  5      (       a9  [	        U5      (       d  U R
                  UR
                  :X  a  S	S jnU$ S	S jn U$ [        U [        R                  [        R                  45      (       a  [	        U5      (       a  S	S jnU$ S	S jn U$ [        U [        R                  [        R                  45      (       a)  [	        U5      (       a  U OUn[        U5      mS	U4S jjnU$ [        U [        R                  R                  5      (       al  [        U R
                  [        R                  [        R                  45      (       d  [        S5      e[	        U5      (       a  U R
                  OUmS	U4S jjnU$ [        U [        R                  5      (       a*  [        R                   " U R"                  5      mS	U4S jjnU$ S nU$ )
Nc                     U $ r,   r$   r-   r   s     r&   r]  np_asarray.<locals>.impl  s    r%   c                 $    U R                  U5      $ r,   )r  r  s     r&   r]  r    s    xx&r%   c                 .    [         R                  " U 5      $ r,   rt  r  s     r&   r]  r    s    xx{"r%   c                 .    [         R                  " X5      $ r,   rt  r  s     r&   r]  r    s    xx))r%   c                 2   > [         R                  " U T5      $ r,   rt  )r-   r   r  s     r&   r]  r    s    88Ar?"r%   z?asarray support for List is limited to Boolean and Number typesc                 x   > [        U 5      n[        R                  " UTS9n[        U 5       H	  u  pEXSU'   M     U$ r  )rG   re   r   r   )r-   r   r  r  r.   rj   target_dtypes         r&   r]  r    s8    AA((1L1C!!A %Jr%   c                 $   > TR                  5       $ r,   )r  )r-   r   rh   s     r&   r]  r    s    88:r%   r,   )r
   rX   r   r   r   r   r  r[   r  r  r	   
containersListTyper   StringLiteralre   r  rZ   )r-   r   r]  dt_convrh   r  r  s       @@@r&   
np_asarrayr%    s   
 A!U[[!!uEKK!7V KQ'P KM 
A4	5	5 u#B K=*< K9 
Aemm4	5	5"5))!ug	#0 K- 
Au''00	1	1!''ELL%--#@AA./ / #.e"4"4qww%	 K 
Au**	+	+jj)	
 K Kr%   c                   ^ [        U[        R                  5      (       a  [        U5      n[        R
                  " U[        R                  5      (       d  [        R                  mOUm[        R                  4U4S jjnU$ )Nc                 2   > [         R                  " U T5      $ r,   r  )r-   r   r  s     r&   r]  np_asfarray.<locals>.impl  s    ::a$$r%   )rX   r   Typer	   re   r  inexactr   )r-   r   r]  r  s      @r&   np_asfarrayr+    sS     eUZZ((UOE}}UBJJ//BB** 	%r%   c                     S nU$ )Nc                 $   [         R                  " U 5      R                  5       n[         R                  " U5      nUR                  S:X  a  [	        S5      e[         R
                  " X#R                  S  5      (       a'  UR                  UR                  :  a  Sn[	        U5      e[        UR                  UR                  5      n[        U5       Vs/ s H  obU   (       d  M  UR                  U   PM     nn[         R                  " U5      $ s  snf )Nr   z"Cannot extract from an empty arrayz+condition shape inconsistent with arr shape)
re   r  r  r   r   r  r  r3   r   ru  )r  rh   r  r-   r   max_lenr   r   s           r&   np_extract_impl#np_extract.<locals>.np_extract_impl  s    zz)$,,.JJsO66Q;ABB 66$vvw-  TYY%7?CS/! affdii(&+GnBnsS	{qvvc{nBxx} Cs   D"Dr$   )r  rh   r/  s      r&   
np_extractr1    s    ( r%   c                    SS jn[        U [        R                  [        R                  45      (       d  [	        S5      e[        U[        R                  [        R                  45      (       d  [	        S5      e[        U[
        [        R                  [        R                  45      (       d  [	        S5      e[        U S   [        R                  5      (       d  [	        S5      e[        US   [        R                  5      (       d  [	        S5      e[        U S   [        R                  5      (       a7  [        U S   R                  [        R                  5      (       d  [	        S5      e[        U S   [        R                  5      (       aR  [        U S   [        R                  5      (       a%  [        U S   S   [        R                  5      (       d  [	        S	5      e[        U S   [        R                  5      (       a+  U S   R                  US   R                  :w  a  [	        S
5      e[        U S   [        R                  5      (       a  U S   R                  S:  a  [	        S5      eU$ )Nr   c                 2   [        U 5      [        U5      :w  a  [        S5      eU[        R                  " US   R                  US   R
                  5      -  n[        [        U 5      S-
  SS5       H"  nX   nX   n[        R                  " XVU5      nM$     U$ )Nz7list of cases must be same length as list of conditionsr   r)   rT  )rG   r   re   r%  r   r   r3   r,  )condlist
choicelistdefaultr   r.   r  choices          r&   np_select_arr_impl%np_select.<locals>.np_select_arr_impl  s    x=C
O+ - . .
1 3 3Z]5H5HIIs8}q("b1A;D]F((4-C 2 
r%   z"condlist must be a List or a Tuplez$choicelist must be a List or a Tuplez,default must be a scalar (number or boolean)z items of condlist must be arraysz"items of choicelist must be arraysz%condlist arrays must contain booleansz*condlist tuples must only contain booleanszHcondlist and choicelist elements must have the same number of dimensionsr)   z/condlist arrays must be of at least dimension 1r@  )rX   r   ListrH   r   r  r  r  r   r   r   )r4  r5  r6  r8  s       r&   	np_selectr;  	  s   
 hU^^ <==ABBj5::u~~">??CDDgU\\5==ABBKLL hqk5;;//?@@jmU[[11ABB (1+u{{++(1+++U]];; !HII(1+u~~..8A;77x{1~u}}== !MNN8A;,,QK
1 2 22 9 : 	:(1+u{{++0@0@10DNOOr%   c                 <   [        U 5      (       a  [        U5      (       d  [        S5      eSU R                  R                  ;   d  SUR                  R                  ;   a9  U R                  R                  UR                  R                  :w  a  [        S5      eS nU$ )Nz.The arguments to np.union1d must be array-likeunichrz/For Unicode arrays, arrays must have same dtypec                     [         R                  " [         R                  " U 5      5      n[         R                  " [         R                  " U5      5      n[         R                  " [         R                  " X#45      5      $ r,   )re   rV  r  r  r,  )rH  rI  r-   r  s       r&   
union_implnp_union1d.<locals>.union_implD  sH    HHRZZ_%HHRZZ_%yy/00r%   )r
   r   r   r  )rH  rI  r?  s      r&   
np_union1drA  <  st    C  (8(=(=JKK	SYY^^	#x399>>'A
yy~~'KLL1
 r%   c                 2  ^ Sn[        U [        R                  [        R                  [        R                  45      (       d  [        U5      e[        U5      (       a  U R                  mO [        U5      mSU4S jjnU$ ! [         a    [        S5      ef = f)Nz7The argument to np.asarray_chkfinite must be array-likez!dtype must be a valid Numpy dtypec                    > [         R                  " U TS9n [         R                  " U 5       H)  n[         R                  " U5      (       a  M   [	        S5      e   U $ )Nr  z#array must not contain infs or NaNs)re   r  rf   r  r   )r-   r   r.   r  s      r&   r]  "np_asarray_chkfinite.<locals>.impl[  sE    JJq#1A;;q>> !FGG  r%   r,   )
rX   r   r   r  r[   r   r   r   r	   r   )r-   r   r   r]  r  s       @r&   np_asarray_chkfiniterE  L  s     DCa%++u~~u{{CDD#5WW	C%B K ( 	CABB	Cs   +B   Bc                 L  ^^^ [        U[        [        R                  45      (       d  Sn[	        U5      e[        U 5      (       d  Sn[	        U5      e[        U[        R                  [        R                  45      (       d(  [        R                  " U5      (       d  Sn[	        U5      e[        U[        [        R                  45      (       d  Sn[	        U5      e[        SS S 5      4m[        U[        R                  5      (       a4  [        R                  " [        U R                  5      [        U5      5      mO8[        R                  " [        U R                  5      [        R                   5      m[        R"                  " T[        R$                  5      mSUUU4S jjnU$ )Nz&The argument "axis" must be an integerz#The argument "p" must be array-likez'The argument "discont" must be a scalarz&The argument "period" must be a scalarr)   c                 :  > US:w  a  Sn[        U5      e[        R                  " U 5      R                  T5      nUR                  nUS   nUR                  UR                  U-  U45      nUc  US-  nT(       a  [        US5      u  pU
S:H  nOUS-  n	SnU	* n[        UR                  U-  5       GHM  nX   n[        R                  " U5      n[        R                  " X-
  U5      U-   nU(       a!  [        R                  " UU:H  US:  -  U	U5      nUU-
  n[        R                  " [        R                  " U Vs/ s H  n[        U5      PM     sn5      U:  SU5      n[        R                  " [        R                  " U Vs/ s H  n[        U5      PM     sn5      U:  SU5      n[        R
                  " UUR                  5      n[        R                  " U5      nUT   UR                  5       -   UT'   UX'   GMP     UR                  U5      $ s  snf s  snf )NrT  z*Value for argument "axis" is not supportedr   r   T)r   re   r  r  r   rW  r   divmodr3   r  modr,  ru  rq  r  r   )pdiscontr]   periodr   p_init
init_shape	last_axisp_newinterval_highremboundary_ambiguousinterval_lowr.   rowddddmod
ph_correctr  ph_ravelupr   integer_inputslice1s                        r&   r]  numpy_unwrap.<locals>.impl  s   2:>CS/!A%%e,\\
rN	y 8)DE?qjG!'!2M!$"QJM!%%~ v{{i/0A(CBFF2,f5DE!%<"7BF!C!.7J"((B+?BqCFB+?"@7"JA",.Jxx")="Q#a&")= > H! *,HHj.>.>?JBVz'8'8'::BvJEH! 1$ }}Z(( ,@)=s   ;HHNrT  g-DT!@)rX   r  r   r?  r   r
   r  r   r   r  r  rP   re   r  r	   r   r   r  integer)	rJ  rK  r]   rL  r   r]  r   r[  r\  s	         @@@r&   numpy_unwrapr`  e  s(   dS%--0116#A3#w <==''007#fuell3446#AtT"$F&%,,''x0(62BCx0"**=MM%4M') ')R Kr%   c                     [         R                  " SU -
  U S5      n[         R                  " [         R                  " US5      SXS-
  -  -   SXS-
  -  -
  5      $ )Nrn  r   r   r)   )re   r  r,  
less_equalr  r  s     r&   np_bartlett_implrd    sJ    
		"q&!QA88BMM!Q'Qa%[!aq5k/JJr%   c                    [         R                  " SU -
  U S5      nSS[         R                  " [         R                  U-  U S-
  -  5      -  -   S[         R                  " S[         R                  -  U-  U S-
  -  5      -  -   $ )Nrn  r   gzG?r   r)   g{Gz?r  re   r  cosr  rc  s     r&   np_blackman_implrh    so    
		"q&!QA3	QU 3444266#+/QU3445 6r%   c                     [         R                  " SU -
  U S5      nSS[         R                  " [         R                  U-  U S-
  -  5      -  -   $ )Nr)   r   gHzG?gq=
ףp?rf  rc  s     r&   np_hamming_implrj    sB    
		!a%AA$	QU 34444r%   c                     [         R                  " SU -
  U S5      nSS[         R                  " [         R                  U-  U S-
  -  5      -  -   $ )Nr)   r   r   rf  rc  s     r&   np_hanning_implrl    sB    
		!a%AArvvbeeai1q512222r%   c                    ^  U 4S jnU$ )Nc                 h   > [        U [        R                  5      (       d  [        S5      eU4S jnU$ )NM must be an integerc                    > U S:  a#  [         R                  " S[         R                  S9$ U S:X  a#  [         R                  " S[         R                  S9$ T" U 5      $ )Nr)   r$   r  )re   ru  r   r%  )r  funcs    r&   window_impl>window_generator.<locals>.window_overload.<locals>.window_impl  sD    1uxx"**55Avwwq

337Nr%   )rX   r   r?  r   )r  rr  rq  s     r&   window_overload)window_generator.<locals>.window_overload  s-    !U]]++455	 r%   r$   )rq  rt  s   ` r&   window_generatorrv    s     r%   )g4!\Tg}b3<gr넱g^<g"P
g'&&KF5=gbLag$ӛ/=gjzg<t̾=gVg4T&>g0Kg5dMv;p>g"c쑾g$>g'doҾgY(X?>gZY&+g|t(?gRBguZ?gI ^qga?g!Ng-Ί>?g-4pKgw?gWӿg*5N?)gT`g0fFVg!<gA`<gҫ`g8箸g}<g攐*<gbe~g2hϙ]'gE_V=gsk[=g&GCi=gfCg{~5g%t9QgO $=guo >g["d,->gmրVX>gna>g+A>gRx?gI墌k?g	b?c                 x    US   nSn[        S[        U5      5       H  nUnUnX-  U-
  X   -   nM     SUW-
  -  $ )Nr   r  r)   r   r  )r  valsb0b1r.   b2s         r&   _chbevlr|  "  sQ    	aB	B1c$i Vb[47" !
 "r'?r%   c                    U S:  a  U * n U S::  a/  SU -  S-
  n[         R                  " U 5      [        U[        5      -  $ [         R                  " U 5      [        SU -  S-
  [        5      -  [         R
                  " U 5      -  $ )Nr   g       @r   r  g      @@)re   expr|  _i0A_i0BrI  rw  s     r&   _i0r  /  sm    1uBCx1WOvvay71d+++66!9wtax#~t44rwwqzAAr%   c           	      *   [         R                  " U [         R                  S9n[        [         R                  " U5      5      n[	        [        U5      5       H8  n[        U[         R                  " SX   U-
  U-  S-  -
  5      -  5      U-  X5'   M:     U$ )Nr  r)   r  )re   r  r   r  r3   rG   rI  )r  alphabetar  tr.   s         r&   _i0nr  :  sv    
arzz*ABJJtA3q6]4"''!u'=&C"CDDEI  Hr%   c                     [        U [        R                  5      (       d  [        S5      e[        U[        R                  [        R                  45      (       d  [        S5      eS nU$ )Nro  z beta must be an integer or floatc                     U S:  a#  [         R                  " S[         R                  S9$ U S:X  a#  [         R                  " S[         R                  S9$ [         R                  " SU 5      nU S-
  S-  n[        X#U5      $ )Nr)   r$   r  r   r  )re   ru  r   r%  r  r  )r  r  r  r  s       r&   np_kaiser_impl!np_kaiser.<locals>.np_kaiser_implL  sc    q588Bbjj116771BJJ//IIaOQ#Ad##r%   )rX   r   r?  r   r  )r  r  r  s      r&   	np_kaiserr  D  sR    a''011dU]]EKK899<==	$ r%   c                 \   S nU" U 5      u  pEnU" U5      u  pxn	[         R                  " XY5      [         R                  " Xh5      -
  n
[         R                  " Xg5      [         R                  " XI5      -
  n[         R                  " XH5      [         R                  " XW5      -
  nXS'   XS'   XS'   g )Nc                     U S   nU S   nU R                   S   S:X  a  U S   nO0[        R                  " U R                  R	                  S5      U5      nXU4$ )N.r   .r)   rT  r   .r   r   )r   re   r  r   r   )r  x0r  x2s       r&   _cross_preprocessing._cross_operation.<locals>._cross_preprocessing]  sS    vYvY772;!6BQWW\\!_b1Brzr%   r  r  r  )re   r  )r-   r  r   r  a0r@  r6  ry  rz  r{  cp0cp1cp2s                r&   _cross_operationr  Z  s     &a(JBB%a(JBB
++b
B 3
3C
++b
B 3
3C
++b
B 3
3CKKKr%   c                     g r,   r$   r  s     r&   _crossr  r  re  r%   c                    ^ [         R                  " [        U R                  5      [        UR                  5      5      mU R                  S:X  a  UR                  S:X  a  U4S jnU$ U4S jnU$ )Nr)   c                 N   > [         R                  " ST5      n[        XU5        U$ )Nr   )re   r   r  )r-   r  cpr   s      r&   r]  _cross_impl.<locals>.implz  s"    $&BQ2&Ir%   c                    > [         R                  " U S   US   5      R                  n[         R                  " US-   T5      n[	        XU5        U$ )Nr  r  )re   r  r   r   r  )r-   r  r   r  r   s       r&   r]  r    sD    FF1V9ai066E%$,.BQ2&Ir%   )re   r  r	   r   r   )r-   r  r]  r   s      @r&   _cross_implr  v  sT    Xagg.0ABEvv{qvv{	 K	
 Kr%   c                 b    [        U 5      (       a  [        U5      (       d  [        S5      eS nU$ )NInputs must be array-like.c                 4   [         R                  " U 5      n[         R                  " U5      nUR                  S   S;  d  UR                  S   S;  a  [        S5      eUR                  S   S:X  d  UR                  S   S:X  a  [	        X#5      $ [        S5      e)NrT  )r   r   zDIncompatible dimensions for cross product
(dimension must be 2 or 3)r   zDimensions for both inputs is 2.
Please replace your numpy.cross(a, b) call with a call to `cross2d(a, b)` from `numba.np.extensions`.)re   r  r   r   r  r-   r  r  r  s       r&   r]  np_cross.<locals>.impl  s    ZZ]ZZ]88B<v%"V)C- 
 88B<1 1">!H r%   r
   r   r-   r  r]  s      r&   np_crossr    s0    A&6q&9&9677" Kr%   c                     S nU" U 5      u  p4U" U5      u  pV[         R                  " X65      [         R                  " XE5      -
  n[         R                  " U5      $ )Nc                     U S   nU S   nX4$ )Nr  r  r$   )r  r  r  s      r&   r  0_cross2d_operation.<locals>._cross_preprocessing  s    vYvYvr%   )re   r  r  )r-   r  r  r  r@  ry  rz  r  s           r&   _cross2d_operationr    sM    
 "!$FB!!$FB	R	r{{22	2B ::b>r%   c                     g r,   r$   r  s     r&   cross2dr    re  r%   c                 b    [        U 5      (       a  [        U5      (       d  [        S5      eS nU$ )Nr  c                     [         R                  " U 5      n[         R                  " U5      nUR                  S   S:w  d  UR                  S   S:w  a  [        S5      e[	        X#5      $ )NrT  r   zRIncompatible dimensions for 2D cross product
(dimension must be 2 for both inputs))re   r  r   r   r  r  s       r&   r]  cross2d_impl.<locals>.impl  sZ    ZZ]ZZ]88B<1 18  ""))r%   r  r  s      r&   cross2d_implr    s0    A&6q&9&9677* Kr%   c                   ^ [        U [        R                  5      (       d  [        S5      eU R                  S:  a  [        S5      e[        U[
        [        R                  45      (       d  [        S5      e[        S:  mSU4S jjnU$ )Nz#The first argument must be an arrayr)   zarray must be 1Dz$The second argument must be a string)r   r   c                 "  > [         R                  " U 5      nSnUR                  5       nSU;   a#  U H  nUS:X  d  T(       a  US:X  a  US-   nM    O   [        U 5      nSU;   a)  US S S2    H  nUS:X  d  T(       a  US:X  a  US-
  nM    O   X#U $ )Nr   r   r)   r  rT  )re   r  r  rG   )filttrimr  firstr.   lasttrim_escapess         r&   r]  np_trim_zeros.<locals>.impl  s    ZZzz|$;6lqBw!AIE	 
 4y$;"X6lqBw!8D	 
 ~r%   fb)rX   r   r   r   r   strUnicodeTyper   )r  r  r]  r  s      @r&   np_trim_zerosr    sq    dEKK((BCCyy1}/00dS%"3"3455CDD F*L& Kr%   c                     [        U 5      (       d  [        U5      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      eSS jnU$ )Nz+setxor1d: first two args must be array-likez2setxor1d: Argument "assume_unique" must be booleanc                     [         R                  " U 5      n[         R                  " U5      nU(       d-  [         R                  " U5      n[         R                  " U5      nO UR                  5       nUR                  5       n[         R                  " X445      nUR                  5         [         R                  " UR                  S   S-   [         R                  S9nSUS'   SUS'   USS  US S :g  USS& XVSS  US S -     $ )Nr   r)   r  TrT  )	re   r  r  rV  r,  rG  r   r   r   )rH  rI  rJ  r-   r  rK  flags          r&   np_setxor1d_impl)jit_np_setxor1d.<locals>.np_setxor1d_impl  s    JJsOJJsO		!A		!A	A	A nnaV$
xx		!q(9QRWCR(Qr
8d3Bi'((r%   r  rO  )rH  rI  rJ  r  s       r&   jit_np_setxor1dr    sS    S!!%5c%:%:GHH}u}}d&;<<NOO), r%   c                     [        U 5      (       d  [        U5      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      eSS jnU$ )Nz,setdiff1d: first two args must be array-likez3setdiff1d: Argument "assume_unique" must be booleanc                 4   [         R                  " U 5      n [         R                  " U5      nU(       a!  U R                  5       n UR                  5       nO,[         R                  " U 5      n [         R                  " U5      nU [         R                  " XSSS9   $ )NTrJ  invert)re   r  rV  r  in1d)rH  rI  rJ  s      r&   np_setdiff1d_impl+jit_np_setdiff1d.<locals>.np_setdiff1d_impl  sg    jjojjo))+C))+C))C.C))C.C27734EFFr%   r  rO  )rH  rI  rJ  r  s       r&   jit_np_setdiff1dr    sT    S!!%5c%:%:HII}u}}d&;<<OPP	G r%   c                 &   [        U 5      (       d  [        U5      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      eSS jnU$ )Nz'in1d: first two args must be array-likez.in1d: Argument "assume_unique" must be booleanz'in1d: Argument "invert" must be booleanc                    [         R                  " U 5      R                  5       n [         R                  " U5      R                  5       n[        U5      S[        U 5      S-  -  :  a  U(       a>  [         R                  " [        U 5      [         R
                  S9nU H
  nX@U:g  -  nM     U$ [         R                  " [        U 5      [         R
                  S9nU H
  nX@U:H  -  nM     U$ U(       d  [         R                  " U 5      nX   n[         R                  " UR                  [         R
                  S9nSUS S& USS  US S :g  USS & Xt   n [         R                  " U5      S-
  n[         R                  " UR                  [         R                  S9n	XU'   [         R                  " U5      n[         R                  " X45      n
U
R                  SS9nX   n[         R                  " UR                  [         R
                  5      nU(       a  USS  US S :g  US S& OUSS  US S :H  US S& X=SS & [         R                  " U
R                  [         R
                  S9nXU'   U(       a  US [        U 5       $ UW	   $ )	Nr  g(\?r  Tr)   rT  	mergesort)kind)re   r  rV  rG   r%  r   r  argsortr   r   r   r5   r  r,  r   )rH  rI  rJ  r  r/  r-   order1rK  imaskinv_idxarordersarr  r  s                  r&   np_in1d_impl!jit_np_in1d.<locals>.np_in1d_impl-  s    jjo##%jjo##%
 s8b3s8u,,,wws3xrxx8AAX&D  K xxC9AAX&D K  ZZ_F+C88CIIRXX6DD!H12w#cr(*DH)CIIdOa'Ehhtzz9G#FO))C.C^^SJ' 


,ixx"((+QRCH,D"IQRCH,D"IRS	hhrxxrxx0E
 yC>!w<r%   FFrO  )rH  rI  rJ  r  r  s        r&   jit_np_in1dr  $  sv    S!!%5c%:%:CDDmemmT%:;;JKKfu}}d344CDD7 r r%   c                 &   [        U 5      (       d  [        U5      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      e[        U[        R                  [
        45      (       d  [        S5      eSS jnU$ )Nz'isin: first two args must be array-likez.isin: Argument "assume_unique" must be booleanz'isin: Argument "invert" must be booleanc                     [         R                  " U 5      n [         R                  " XUUS9R                  U R                  5      $ )Nr  )re   r  r  rW  r   )r  test_elementsrJ  r  s       r&   np_isin_impl!jit_np_isin.<locals>.np_isin_impls  s6    **W%www]$&&-ggmm&<	=r%   r  rO  )r  r  rJ  r  r  s        r&   jit_np_isinr  i  su    W%%)9-)H)HCDD}u}}d&;<<JKKvt455CDD= r%   r,   r  r  r  r   r@  rJ  r  r  r?  rQ  r  r  r  r  r  r^  r  r  (  __doc__r  collectionsr   ri  llvmlite.irr  numpyre   
numba.corer   r   numba.core.extendingr   r   r   numba.np.numpy_supportr	   r
   r   r   r   r   r   r   numba.core.imputilsr   r   r   r   numba.np.arrayobjr   r   r   r   numba.np.linalgr   r   numba.core.errorsr   r   r   r   r   numba.cpython.unsafe.tupler    r'   r  rL   ra   r  r   ry   r|   r   r5   	DTypeSpecIntegerLiteralr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  aminr!  r#  amaxr,  r3  r8  r=  r>  rG  rL  rO  rQ  rF  r`  re  rf  rl  ry  rz  r  r  r  averager  r  	iscomplexr  isrealr  r  r  isscalarr  r  r  r  r  r  r  r  r  r#  r  r"  r  r  nanminr  nanmaxr$  r0  r-  r6  r3  nanstdr9  nansumr@  nanprodrF  
nancumprodrO  	nancumsumrV  rZ  ra  rd  rg  rk  ro  rr  r|  r  r  r  r  r  _partition_w_nan_argpartition_w_nanr  r  r  r  r  r  medianr  r  r  r  r  r  r  r  r  r  nanpercentiler  quantiler  nanquantiler  	nanmedianr  r  r  r  	partitionr  r  r  r  r*  r!  r$  r0  trilrA  rQ  rL  tril_indices_fromrW  r[  triurc  rk  rh  triu_indices_fromrn  rq  rz  r  ediff1dr  r  r  r  r  trapzr  	trapezoidr  r  vanderr  rollr  r  r  r  r  interpr  r  r  r  r  r  rA  r  r  r!  r@  r&  r0  r4  r6  rG  rD  corrcoefrS  argwherer\  flatnonzerora  re  rg  rk  rq  ru  r  rX  r  fill_diagonalr  r  r  r  aroundr  r  round_r  r  r  r  rF  r  r  r  r  r  r,  r  r  r   r  r  r  containsr  count_nonzeror   r1  r2  deleter3  r  r=  array_equalrD  intersect1drP  rT  rV  rf  rm  rl  rh  rj  rn  rp  rr  ry  r   r~  r  r  digitizer  r3   r  r  r  _mach_ar_supportedr  r  rs  r  rn  r  r  r  r  r  r  r  	correlater  convolver  r  r%  asfarrayr   r+  extractr1  selectr;  union1drA  asarray_chkfiniterE  unwrapr`  rd  rh  rj  rl  rv  bartlettblackmanhamminghanningru  r  r  r|  r  r  kaiserr  r  r  r  crossr  r  r  r  
trim_zerosr  setxor1dr  	setdiff1dr  r  r  isinr  r$   r%   r&   <module>r2     s  
  "    % L LM M MG G/ / ' */ / 5 ]
 %! %!P E! E!V rvvu{{#{EKK(E ) $E  >B rvvu{{EJJ@rvvu{{E$8$8%//J{EKKU__E{EKK)=)=uO$D P F K A$DN rvvu{{U__5{EKK9E : 6E rvvu{{EJJ/rvvu{{E$8$89{EKK4{EKK)=)=>%D ? 5 : 0%DP 
"''f% &  
"))h'! ( !. 
"**i(" ) ". 
"''f% & * 
"&&e$ %   
"&&e$ %        
"&&	"''e$, %  ,^ 
"&&	"''e$, %  ,^  *  *  & 
"))h' ( $  *  *  ")X 
"))h' ( $ 
"&&e$ %   2 
"++j)?, * ?,D 
"&&e$ %  
"**! !H
 
",,  
"))  
"// & 
",,  
"++ 
 
"++& &
 
"++& &
     P P
D 	E: u= "	D9 "t<
 2 2 
"**5 5p 
"))  
"))  
"** & 
")) 0 
"))  
")) * 
"** * 
"-- 0 
",, 0  (		 
.H H 
.H H	 
- . 
"&& 6 6EKK'/  .b 0;<
#$67J$KL &'9(  " ?:6
7 1A!BC$_5H%IJ     0 3 3 
"))  1 1h       F F
 B B
  ""4 
"--  
"

  
"++  
"..  
",, 0  (  *  D 
",, 2 
"//   8 	 	 
"&&
 
    > >
 
"''" "4 
"//
  
  
"


%  
% > >
 
"''" "2 
"//
  
  
"


%  
%	 
.1 1 " 
"**4 4n	 
/ 	 
&  
"(( , FR\\8$ < <6 @ @ 
"))$" $"N 
"'' 2   A AH j jZ U Up 
"))% %V 	 	  0	 

"#$$ $$$N     %[1 ** 8 8 $K0  9 94 3 3   
"&&7 7t 
"++   H 
"++ 0 
".. "  *     D D D D n-
	 
(1 1 
"

 @,
  " ) )4 
"))	"((4  4n 6RYY& 
"''M M& 
"((< <@ rzz5;;',5D - (5Dp    . 
"((    
"((2 2j 
"''  
"''  
(


 
 
"

   -\: ,-EF  
"))+% +%\ 
"''# #L 
".. * 
"..   :1 
"++6 6r #9-$Z0  ! !B     	 	 + +$ %fg%67 ;* 
"//0 0f 
"++A AH 
 
",,O Oh%  
H0	13 
 	7,- + 7,-  
"((  
"(( <O	 

F FR 
",,) )X 
"++ * 
"**4 4n 6bkkZZ   
"** 2 
"))/ /d 
"**  
"

  0 
"))C C\ K K
 6 6 5 5
 3 3
" 	 &'78 9  &'78 9  %o6 7  %o6 7 
xx  B 
xx  : 	 	 B B   
")) *  .	 
&   
"(( 0  &	 
' " 
"-- D 
"++ @ 
",, * 
"''A AH 
"'' r%   