
    i{`             	       &   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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,J-r-  SSK.J/r/  S r0\0" 5       r1\&S 5       r2\&S 5       r3\" \	Rh                  \Rj                  5      \" S\Rj                  5      S 5       5       r6\S 5       r7S r8\" \	Rh                  \Rj                  \Rr                  \Rt                  5      \" \	Rh                  \Rj                  \Rv                  \Rt                  5      \" S\Rj                  \Rr                  \Rt                  5      \" S\Rj                  \Rv                  \Rt                  5      S 5       5       5       5       r<\" \	Rh                  \Rj                  \Rt                  5      \" S\Rj                  \Rt                  5      S 5       5       r=\" \	Rh                  \Rj                  \Rr                  5      \" \	Rh                  \Rj                  \Rv                  5      \" S\Rj                  \Rr                  5      \" S\Rj                  \Rv                  5      S 5       5       5       5       r>S r?\" \	R                  5      \" \Rj                  S5      S 5       5       rA\" \	R                  5      \" \Rj                  S5      S 5       5       rC\" \	R                  5      \" \Rj                  S5      S 5       5       rE\" \	R                  5      \" \Rj                  S5      S 5       5       rG\" \	R                  5      \" \Rj                  S 5      S! 5       5       rI\" \	R                  5      \" \Rj                  S"5      S# 5       5       rK\S$ 5       rL\S% 5       rM\S& 5       rN\" \	R                  5      \" \	R                  5      \" \Rj                  S'5      S( 5       5       5       rQ\" \	R                  5      \" \	R                  5      \" \Rj                  S)5      S* 5       5       5       rT\S+ 5       rU\S, 5       rV\S- 5       rW\" \	R                  5      \" \Rj                  S.5      GSS/ j5       5       rY\S0 5       rZ\S1 5       r[\S2 5       r\S3 r]\" \	R                  5      \" \Rj                  S45      GSS5 j5       5       r_\" \	R                  5      \" \Rj                  S65      S7 5       5       ra\GSS9 j5       rb\" \	R                  5      \" \Rj                  S:5      GSS; j5       5       rd\" \	R                  5      \" \Rj                  S<5      S= 5       5       rf\" \	R                  5      GSS> j5       rhS? ri\" \	R                  5      S@ 5       rk\" \	R                  5      SA 5       rm\" \	R                  5      SB 5       rn\" \	R                  5      SC 5       ro\" \	R                  5      SD 5       rqSE rr\" \	R                  5      GSSF j5       rs\" \	R                  5      GSSG j5       rt\SH 5       ru\SI 5       rv\SJ 5       rwSK rx\" \x" \uS8SL95      ry\" \x" \vS8SL95      rz\" \x" \uSMSL95      r{\" \x" \vSMSL95      r|\SN 5       r}\" \	R                  5      GSSO j5       r~\" \	R                  5      SP 5       r\" \	G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R2                  5      Sa 5       r\Sb:  a  \" \Rj                  Sc5      " \5        \Sd 5       rGSSe jr\" \" \u5      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RL                  5      Sj 5       r\Sk 5       r\Sl 5       r\Sm 5       r\Sn 5       r\So 5       r\Sp 5       rSq r\" \	GR^                  5      Sr 5       r\" \	GRb                  5      Ss 5       r\" \	GRf                  5      St 5       r\" \	GRj                  5      Su 5       r\" \	GRn                  5      Sv 5       r\Sw 5       r\Sx 5       r\Sy 5       r\" \	GRx                  5      Sz 5       r\" \	GR|                  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       rGSS jr\S:  a  \" \	GR                  5      GSS j5       r\Sb:  a  \" \	GR                  5      GSS j5       r\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       Gr\S 5       Gr\S 5       G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.                  \Rj                  5      \" S\Rj                  5      S 5       5       GrS Gr\S 5       Gr\S 5       GrS Gr\" \	GR:                  5      S 5       Gr\" \	GR:                  5      S 5       Gr\" \	GR@                  5      S 5       Gr!\" \	GRD                  5      S 5       Gr#\" \GRH                  5      S 5       Gr%\" \	GRL                  5      GSS j5       Gr'\" S 5      Gr(\" S 5      Gr)\" \	GRT                  5      S 5       Gr+\" \	GRX                  5      GSS j5       Gr-\" \	GR\                  5      S 5       Gr/\" \	GR`                  5      GSS j5       Gr1S Gr2\" \	GRf                  5      GSS j5       Gr4\" \5      Gr5\" \5      Gr6\S 5       Gr7\S 5       Gr8\S 5       Gr9\S 5       Gr:\S 5       Gr;S Gr<G\=" SS15      Gr>S Gr?\" \	GR                  5      GSS j5       Gr@\" \	GR                  5      GSS j5       GrBG\CGrD\" \	GR                  5      GSS j5       GrFSGrG\" SG\G5      GrHSGrI\" SG\I5      GrJSGrK\" SG\K5      GrLS GrMG\M" 5         S GrN\" \	GR                  5      S 5       GrO\" \	GR                  5      S 5       GrPS GrQS GrRS GrS\" G\S5      S 5       GrT\" \	GR                  5      GSS j5       GrV\" \	GR                  5      GSS j5       GrX\" \	GR                  5      GSS j5       GrZ\Sb:  a(  \" \	GR                  5      \	GR                  4S j5       Gr]\" \	GR                  5      S 5       Gr_\" \	GR                  5      GSS j5       Gra\" \	GR                  5      S 5       Grc\" \	GR                  5      GSS j5       Gre\" \	GR                  5      GSS j5       Grg\S 5       Grh\S 5       Gri\S 5       Grj\S 5       GrkS Grl\" \	GR                  5      " G\l" G\h5      5        \" \	GR                  5      " G\l" G\i5      5        \" \	GR                  5      " G\l" G\j5      5        \" \	GR                  5      " G\l" G\k5      5        \	GR                  " / SQ5      Grr\	GR                  " / SQ5      Grs\S 5       Grt\S 5       Gru\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 5       Gr}\GS 5       Gr~GS Gr\" G\5      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SGS j5       Gr\" \	GR                  5      GSGS	 j5       GrGSGS
 jGr\S:  a  \" \	GR                  5      " G\5        \" \	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NumbaDeprecationWarning)tuple_setitemc                  :     [        5         g! [         a     gf = fNFT)r   ImportError     I/mnt/rpi/venvs/whisper/lib/python3.13/site-packages/numba/np/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_indexerE   s	    4Kr&   )	get_value_typer   get_null_valuerangeget_constantr   intpcompile_internalinsert_value)cgctxbuilder	signatureargslltuptytupin_shape_r0   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   UniTupler6   )tyctxrD   shape_tuplefunction_sigrF   rC   rE   s    `   @@r'   _create_tuple_result_shaperM   ,   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*   )r2   r   r3   r7   r   slice2_typer4   r8   )r9   r:   r;   r<   r=   r>   r@   	value_argrR   
slice_datar/   
axis_valuerC   rE   s              r'   rF   !_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_valuerH   rT   r6   Tuple)rJ   rK   valueaxisbeforeafter
types_listrL   rF   rW   rC   rE   s            @@@r'   _gen_index_tuplerb   U   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&   rj   localsreturn_typer7   dictr   contextr:   sigr<   rm   resrl   s         @r'   	array_sumrz      S     ??1D 
"
"7C*.*A # CCWsDDr&   c                     U $ r-   r%   )ri   rk   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poprM   rf   fulltyper4   rb   )ri   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oprl   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   rl   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%   )ri   r^   r   compileds      r'   array_sum_impl_axis1array_sum_axis_dtype.<locals>.array_sum_impl_axis      ""r&   )rt   getattrrf   taker}   r<   rY   r   rZ   r[   r   r   typing_contextresolve_value_typer5   replacer   r   r7   r   )rw   r:   rx   r<   rettyrl   r   ty_arrayty_axisty_dtyper   r   axis_valgen_implr   ry   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-   re   )ri   r   rj   rk   rl   s       r'   rm   'array_sum_dtype.<locals>.array_sum_impl'  ro   r&   rp   rq   rs   rv   s         @r'   array_sum_dtyper   "  r{   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%   )ri   r^   r   s     r'   r   +array_sum_axis.<locals>.array_sum_impl_axisW  r   r&   )rt   r   rf   r   r}   r<   rY   r   rZ   r[   r   r   r   r   r5   r   r   r   r7   r   )rw   r:   rx   r<   r   rl   r   r   r   r   r   msgr   r   r   ry   r   s                   @r'   array_sum_axisr   2  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   rf   timedelta64int64view)r   r]   acc_inits      r'   get_accumulatorr   ^  sF    zzR^^#88E?''. O ::e$Or&   prodc                 8  ^ [        U [        R                  5      (       a)  [        U R                  5      n[        US5      mU4S jnU$ [        U [        R                  [        R                  45      (       a"  [        U 5      R                  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-   re   r.   rj   rk   r   s      r'   array_prod_impl#array_prod.<locals>.array_prod_impln  s,    AYYq\VVX "Hr&   c                    > TU -  $ r-   r%   )r.   r   s    r'   scalar_prod_impl$array_prod.<locals>.scalar_prod_implx  s    a<r&   )	rY   r   Arrayr	   r   r   NumberBooleanr   )r.   r   r   r   r   s       @r'   
array_prodr   f  s}     !U[[!!!"5!,	 	Aemm4	5	5A;##A&	    
6r&   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-   rf   emptysize	enumerateflatr.   outrj   idxrk   r   r   s        r'   array_cumsum_impl'array_cumsum.<locals>.array_cumsum_impl  F    ((1665)CA#AFF+C , Jr&   
rY   r   r   r   signed_domainbool_bitwidthr6   r	   r   )r.   
is_integeris_boolr   r   r   s       @@r'   array_cumsumr   ~  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                 T  ^^ [        U [        R                  [        R                  45      (       a  S nU$ [        U [        R                  [        R
                  45      (       a"  [        U 5      R                  S5      mU4S jnU$ [        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 )Nc                 4    [         R                  " U 5      S-   $ )N        )rf   float64r.   s    r'   _scalar_mean array_mean.<locals>._scalar_mean  s    ::a=3&&r&   r   c                    > U T-   $ r-   r%   )r.   
typed_zeros    r'   r   r     s    z>!r&   c                    > Tn[         R                  " U 5       H  nXR                  5       -  nM     XR                  -  $ r-   )rf   rg   rh   r   r   s      r'   array_mean_impl#array_mean.<locals>.array_mean_impl  s5     AYYq\VVX "vv:r&   )rY   r   Integerr   FloatComplexr	   r   r   r   integer_domain	frozensetr   r   r   )r.   r   	is_numberr   r   r   r   s        @@r'   
array_meanr     s     !emmU]]344	'	AU]]3	4	4a[%%a(
	"	Au{{	#	#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   rf   rg   rh   realconjr   )r.   mssdrk   vals        r'   array_var_impl!array_var.<locals>.array_var_impl  sc    A CYYq\vvx!|rwwsRWWS\122 " <r&   rY   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                 t  ^^ [        U [        R                  [        R                  45      (       a  S nU$ [        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-   r%   r   s    r'   
scalar_minnpy_min.<locals>.scalar_min      Hr&   c                     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   rf   rg   nextr   rh   )r.   it	min_valuer   rk   
comparatorpre_return_funcs        r'   impl_minnpy_min.<locals>.impl_min!      66Q; = > > YYq\HMM!$	9%%D		Aq!!!''	  r&   )rY   r   r   r   r   r   
NPDatetimeNPTimedeltarf   isnatr  r   r  r   r   isnan)r.   r  r!  r+  r)  r*  s       @@r'   npy_minr2        
 !ell5==122	a%%!''E,,e.?.?@AA((#
	AGGU]]	+	+&	 &i0
	AGGU[[	)	)((#
&#
$ Or&   maxc                 t  ^^ [        U [        R                  [        R                  45      (       a  S nU$ [        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-   r%   r   s    r'   
scalar_maxnpy_max.<locals>.scalar_max<  r  r&   c                     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_funcI  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   rk   r)  r*  s        r'   impl_maxnpy_max.<locals>.impl_maxY  r-  r&   )rY   r   r   r   r   r   r.  r/  rf   r0  r  r   r  r   r   r1  )r.   r7  r!  r>  r)  r*  s       @@r'   npy_maxr@  6  r3  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   rf   rg   r&  r   r0  rh   )arryr'  r(  min_idxr   r   rk   s          r'   array_argmin_impl_datetimerG  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$ rB  r   r   r   rf   r1  rE  rk   r(  rF  r   s        r'   array_argmin_impl_floatrL        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   rC  unreachabler*   )r   r   r   RuntimeErrorrK  s        r'   array_argmin_impl_genericrQ    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-   )rY   r   r   r.  r/  rG  r   rL  rQ  r   %build_argmax_or_argmin_with_axis_impl)r.   r^   rW  rV  s      @r'   array_argminr[    ~     !''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*   rD  )rE  r'  r=  max_idxr   r   rk   s          r'   array_argmax_impl_datetimer`    rH  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$ r^  rJ  rE  rk   r=  r_  r   s        r'   array_argmax_impl_floatrc    rM  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$ r^  )r   r   r   rb  s        r'   array_argmax_impl_genericre    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   r4   r!   	transposer   ravelr   rf   r   reshape)r.   r^   tmpr/   transpose_indextransposed_arrr   raveledr   rV  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   r6   tupler4   r   )r.   r^   rV  rq  r   rp  s     ` @@r'   rZ  rZ     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%   rU  s     r'   array_argmax_impl'array_argmax.<locals>.array_argmax_impl7  rY  r&   r-   )rY   r   r   r.  r/  r`  r   rc  re  r   rZ  )r.   r^   rw  rV  s      @r'   array_argmaxry  ,  r\  r&   allc                     [        U [        R                  [        R                  45      (       a  S nU$ [        U [        R                  5      (       a  S nU$ g )Nc                     [        U 5      $ r-   boolr   s    r'   
scalar_allnp_all.<locals>.scalar_allF      7Nr&   c                 l    [         R                  " U 5       H  nUR                  5       (       a  M    g   gr#   re   r.   rk   s     r'   flat_allnp_all.<locals>.flat_allL  s'    YYq\vvxx  " r&   rY   r   r   r   r   )r.   r  r  s      r'   np_allr  @  sK    
 !ellEMM233	 !U[[!!	
 r&   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rf   r1  isinfabs)a_vb_vrtolatol	equal_nan	a_v_isnan	b_v_isnans          r'   _allclose_scalarsr  V  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r  r  r  )r  r.   br  r  r  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rf   asarrayrg   r  rh   )r.   r  r  r  r  bvs         r'   np_allclose_impl_scalar_array2np_allclose.<locals>.np_allclose_impl_scalar_array  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  r  r  r  avs         r'   np_allclose_impl_array_scalar2np_allclose.<locals>.np_allclose_impl_array_scalar  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  )rf   r  broadcast_arraysrg   r  rh   )	r.   r  r  r  r  a_ab_br  r  s	            r'   np_allclose_impl_array_array1np_allclose.<locals>.np_allclose_impl_array_array  sq    

1A

1A**10HC))SJ/(BGGID.2I I  0
 r&   gh㈵>g:0yE>F)	r
   r   rY   floatr   r   r~  r   r   )r.   r  r  r  r  is_a_scalaris_b_scalarr  r  r  r  s              r'   np_allcloser  p  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                     [        U [        R                  [        R                  45      (       a  S nU$ [        U [        R                  5      (       a  S nU$ g )Nc                     [        U 5      $ r-   r}  r   s    r'   
scalar_anynp_any.<locals>.scalar_any  r  r&   c                 l    [         R                  " U 5       H  nUR                  5       (       d  M    g   gr  re   r  s     r'   flat_anynp_any.<locals>.flat_any  s'    YYq\6688 " r&   r  )r.   r  r  s      r'   np_anyr    sK     !ellEMM233	 !U[[!!	
 r&   c                     Ub&  [        U[        R                  5      (       d  SS jnU$ Ub  [        U[        R                  5      (       a  SS jnU$ SS jnU$ )Nc                     [        S5      e)Nz)Numba does not support average with axis.)	TypeError)r.   r^   weightss      r'   np_average_impl#np_average.<locals>.np_average_impl  s    GHHr&   c                 Z    [         R                  " U 5      n[         R                  " U5      $ r-   )rf   r  r   )r.   r^   r  ri   s       r'   r  r    s    jjmwws|#r&   c                 p   [         R                  " U 5      n[         R                  " U5      nUR                  UR                  :w  a  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$ )Nr*   z81D weights expected when shapes of a and weights differ.r   z)Weights sum to zero, can't be normalized.)rf   r  r   r   r  sumZeroDivisionErrormultiply)r.   r^   r  ri   sclavgs         r'   r  r    s    jjm**W-99-||q('45 5 ffWo#:+CE E ffR[[67#=
r&   NN)rY   r   NoneType)r.   r^   r  r  s       r'   
np_averager    sW    
4 @ @	I4 / ?j%..AA$, %$ 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&   )rY   r   r   r   rf   r1  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   rf   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'   rq  iscomplexobj.<locals>.impl  s    yNr&   c                    > T$ r-   r%   r  s    r'   rq  r    s    Nr&   )determine_dtyperY   r   Optionalr   rf   
issubdtypecomplexfloating)r  dtrq  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-   )rf   r  r  s    r'   rq  isrealobj.<locals>.impl  s    ??1%%%r&   r%   r  rq  s     r'   	isrealobjr    s    
&Kr&   c                 *   ^ [        U 5      mU4S jnU$ )Nc                    > T$ r-   r%   )elementry   s    r'   rq  np_isscalar.<locals>.impl(  s    
r&   )r   )r  rq  ry   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-   rf   logical_andr  signbitr  r   fns     r'   rq  is_np_inf_impl.<locals>.impl1  s)    >>"((1+r"**Q-/@AAr&   c                    > [         R                  " [         R                  " U 5      T" [         R                  " U 5      5      U5      $ r-   r  r   s     r'   rq  r  4  s+    >>"((1+r"**Q-/@#FFr&   r-   r   )r  r   r  rq  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>B  s    QBr&   r	  r   s      r'   isposinfr  @  s    	,	'B!"%%r&   c                 
    X:  $ r-   r%   r.   r  s     r'   	less_thanr  F  	    5Lr&   c                 
    X:  $ r-   r%   r  s     r'   greater_thanr  K  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  P  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   )
rf   r  r  rg   r&  r   rh   r1  r   r   r.   ri   r'  
return_valr   rk   comparison_ops         r'   rq  !nan_min_max_factory.<locals>.implX  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   )rf   r  r  rg   r&  r   rh   r1  r  s         r'   rq  r  i  sq    **Q-C3Bbq)JIIKxx{{(77%&
	 
 r&   r%   )r  is_complex_dtyperq  s   `  r'   nan_min_max_factoryr  V  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   Fr  )r  yr  r  r  s        r'   _isclose_itemr"    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      $ Nrh  rk  rf   zerosrH   r   r4   r"  r   	r.   r  r  r  r  r  r!  r   r/   s	            r'   isclose_implisclose.<locals>.isclose_impl  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   )rf   broadcast_shapesr   broadcast_tor'  rH   r   r   rg   r"  rh   )r.   r  r  r  r  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   rY   r  r   r   r~  r   r   r   )r.   r  r  r  r  r)  s         r'   iscloser4    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  rf   r  r  complex_nanminreal_nanminr.   r  s     r'   	np_nanminr9    /    		B	}}R++,,r&   c                     [        U 5      n[        R                  " U[        R                  5      (       a  [        $ [
        $ r-   )r  rf   r  r  complex_nanmaxreal_nanmaxr8  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*   )rf   rg   rh   divide)r.   rj   countr   rk   r1  s        r'   nanmean_impl np_nanmean.<locals>.nanmean_impl  sZ    IIaLD		A88VVX
	 ! yy""r&   rY   r   r   r  r   )r.   rD  r1  s     @r'   
np_nanmeanrG    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      $ rA  )rf   nanmeanrg   rh   r   r   rB  )r.   r   r   rC  r   rk   r   r1  s          r'   nanvar_implnp_nanvar.<locals>.nanvar_impl  s    JJqM IIaLD		A88vvx!|rwwsRWWS\122
 ! yy$$r&   rF  )r.   rK  r1  s     @r'   	np_nanvarrM    s2    a%%aggE%  r&   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                 4    [         R                  " U 5      S-  $ r  )rf   nanvarr   s    r'   nanstd_implnp_nanstd.<locals>.nanstd_impl  s    yy|s""r&   r  )r.   rQ  s     r'   	np_nanstdrS  
  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-   re   )r.   rj   r   rk   r1  rl   s       r'   nansum_implnp_nansum.<locals>.nansum_impl   s<    IIaLD		A88 ! r&   rY   r   r   r   r   r6   r  )r.   r   rV  r1  rl   s      @@r'   	np_nansumrY    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-   re   )r.   rj   r   rk   r1  ones       r'   nanprod_impl np_nanprod.<locals>.nanprod_impl6  s<    IIaLD		A88 ! r&   rX  )r.   r   r]  r1  r\  s      @@r'   
np_nanprodr_  +  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-   )rf   r   r   s    r'   r  np_nancumprod.<locals>.<lambda>H  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   rj   r   rk   is_nanr\  r   s        r'   nancumprod_impl&np_nancumprod.<locals>.nancumprod_implN  sO    ((1665)CA#AFF+1I:FAC , Jr&   rY   r   r   r   r   r   r  )r.   re  rd  r\  r   s     @@@r'   np_nancumprodrh  A  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-   )rf   r   r   s    r'   r  np_nancumsum.<locals>.<lambda>a  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   rj   r   rk   rd  r   rl   s        r'   nancumsum_impl$np_nancumsum.<locals>.nancumsum_implg  sO    ((1665)CA#AFF+1I:FAC , Jr&   rg  )r.   rm  rd  r   rl   s     @@@r'   np_nancumsumro  Z  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)_asarrayrH   r   r.   ri   s     r'   prepare_ptp_inputrs  s  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'   rq  +_compute_current_val_impl_gen.<locals>.impl  sS    #((K,,--
((k...388[%5%566
r&   c                 &   > T" X5      (       a  U$ U $ r-   r%   rv  s     r'   rq  rx    s    S..3?K?r&   )rY   r   r   )r   rw  r   rq  s   `   r'   _compute_current_val_impl_genrz  |  s+    +u}}--	 K	@Kr&   c                     g r-   r%   rw  r   s     r'   _compute_a_maxr}        r&   c                     g r-   r%   r|  s     r'   _compute_a_minr    r~  r&   c                 6    [        [        R                  X5      $ r-   )rz  operatorgtr|  s     r'   _compute_a_max_implr        (kGGr&   c                 6    [        [        R                  X5      $ r-   )rz  r  ltr|  s     r'   _compute_a_min_implr    r  r&   c                     g r-   r%   r   s    r'   _early_returnr    r~  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)rf   r1  r   r   nanr   UNUSEDs    r'   rq   _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  )rf   r1  r  r  s    r'   rq  r    s(    xx}}RVV|#f}$r&   c                    > ST4$ r  r%   r  s    r'   rq  r    s    &= r&   )rY   r   r   r   )r   rq  r  s     @r'   _early_return_implr    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   )rs  r   r4   r   r  r}  r  )	r.   ri   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&   )hasattrrY   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#   )rf   r1  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%   )rE  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  )rE  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  T  sQ     Cq5D6D1uz9Qh:{y22r&   c                    ^ [        U [        R                  5      (       d  g [        U R                  5      R
                  S;   mU4S jnU$ )NmMc                    > U R                  5       nUR                  S   nT(       d  US:X  a  [        R                  $ [	        X5      $ r   )flattenr   rf   r  r  )r.   r  r  is_datetimes      r'   median_implnp_median.<locals>.median_implk  s;     IIK	OOAqAv66MY**r&   )rY   r   r   r	   r   char)r.   r  r  s     @r'   	np_medianr  d  s=    a%%177#((D0K+ 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  )rH   rf   r   r   r   r4   r4  rz  isfiniter  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  v  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)rH   rf   r  r  )r.   nan_maskskip_nanr   s       r'   _can_collect_percentilesr    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   r4   rf   r1  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 )Nr  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-  )
rf   r  r   r  r1  r  r  r   rH   r  )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  rf   r  r  r   rY   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$ )NFr  r  r  r  r  r  r.   r  s     r'   np_percentiler     s    %	uS2E r&   c                 "    [        XSS[        S9$ )NTr  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*   )rf   r   r   r   rg   rh   r  r  )r.   r  r  r   rk   r1  s        r'   nanmedian_impl$np_nanmedian.<locals>.nanmedian_impl'  ss    HHQVVQWW-	IIaLD		A88 !Q	 ! 666MY**r&   rF  )r.   r  r1  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$ )Nrh  r   r*   )rf   
empty_likendindexr   copyrH   _select_w_nan)	r.   	kth_arrayr   r   srE  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.  rh  r   r*   )	rf   r  r6   r  r   r  arangerH   _arg_select_w_nan)
r.   r  r   r   r  rE  idx_arryr  r  r  s
             r'   np_argpartition_impl_innerr  O  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-Drh  zkth out of boundsr   )rq  astyperf   r   r   r   r  r  r   r  ndenumerateunique)r.   r  r  r   indexr   s         r'   
valid_kthsr!  e  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[        S:  a  [        R                  nO [        R                  [        R                  4n[        X45      (       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   r   r   Partition index must be integerc                     [        U 5      nUR                  S:X  a  UR                  5       $ [        X!5      n[	        X#5      $ r   )rq  r   r  r!  r  r.   r  a_tmpr  s       r'   np_partition_impl'np_partition.<locals>.np_partition_impl  s7    ::?::<"5.I*5<<r&   rY   r   r   Sequencer\   r   r   r   r   r   r   )r.   r  r   kthdt	kth_typesr*  s         r'   np_partitionr0    s     a%++u~~u{{CDDGHH!U[[!!affkCS!!C#&EMM	]]EMM2	e''>??= 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[        S:  a  [        R                  nO [        R                  [        R                  4n[        X45      (       d  [        S5      eS nU$ )Nr#  r   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   r6   )rq  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/  r3  s         r'   np_argpartitionr5    s     a%++u~~u{{CDDGHH!U[[!!affkCS!!C#&EMM	]]EMM2	e''>??@  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*   )r4  rf   r   r   r4   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:  )r7  r8  r  s      r'   tri_implnp_tri.<locals>.tri_impl  s    9Aq!!r&   r   )r   )r7  r8  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   rH   rf   r   r   r4   )r   len_mr   r/   s       r'   _make_squarerB    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      $ Nrh  r8  r  r.  rf   trir   r  uintwhere
zeros_liker   r   r  masks      r'   np_tril_impl_2drN    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-   )rB  rN  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$ rD  
rf   rH  r   r  rI  r  r  rK  r   rJ  r   r  rM  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   rN  )r   r  rS  r\  s       r'   my_trilr_    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  rf   nonzerorH  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   rf  s       r'   np_tril_indicesrj    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   )rf   tril_indicesr   ri   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   )ri   r  rq  s      r'   np_tril_indices_fromru  "  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      $ NrE  rh  r*   rF  r.  rG  rL  s      r'   np_triu_impl_2dry  0  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-   )rB  ry  rQ  s      r'   np_triu_impl_1d my_triu.<locals>.np_triu_impl_1d;  rU  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$ rx  rW  rX  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   ry  )r   r  r|  r  s       r'   my_triur  6  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*   rb  rc  re  s      r'   np_triu_indices_impl-np_triu_indices.<locals>.np_triu_indices_implY  s%    zz!bffQQU3344r&   rh  ri  )r  r  r   r  s       r'   np_triu_indicesr  P  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   rl  c                 `    [         R                  " U R                  S   XR                  S   S9$ rn  )rf   triu_indicesr   rp  s     r'   np_triu_indices_from_impl7np_triu_indices_from.<locals>.np_triu_indices_from_implg  rs  r&   r^  rt  )ri   r  r  s      r'   np_triu_indices_fromr  ^  rv  r&   c                     g r-   r%   ri   s    r'   _prepare_arrayr  l  r~  r&   c                 :    U S [         R                  4;   a  S $ S $ )Nc                 .    [         R                  " S5      $ )Nr%   rf   arrayr  s    r'   r  %_prepare_array_impl.<locals>.<lambda>s  s    288B<r&   c                 4    [        U 5      R                  5       $ r-   )rq  rj  r  s    r'   r  r  u  s    8C=..0r&   r   noner  s    r'   _prepare_array_implr  p  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)rY   r   r   r   r	   r   rf   r   r   r-  r   )inobjobjlr  s       r'   _dtype_of_compoundr  x  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.  )r  r   rH   rf   r   diff)
aryto_endto_beginstartr  end	out_dtyper   	start_idxmid_idxs
             r'   np_ediff1d_impl#np_ediff1d.<locals>.np_ediff1d_impl  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  )
rY   r   r   r   r   r   r  r   rf   can_cast)r  r  r  ary_dtto_begin_dt	to_end_dtr   r  s           r'   
np_ediff1dr    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%   r  s    r'   _select_elementr    r~  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   )rf   r  r   )ri   r  s     r'   rq  "_select_element_impl.<locals>.impl  s&    SYY/AaDQ4Kr&   c                     U $ r-   r%   r  s    r'   rq  r    s    Jr&   )r   )ri   zerodrq  s      r'   _select_element_implr    s.    C&!+E	 	r&   c                     g r-   r%   )dxr  s     r'   _get_dr    r~  r&   c                 6    [        U 5      (       a  S nU$ S nU$ )Nc                 .    [         R                  " U5      $ r-   rf   r  r  r  s     r'   rq  get_d_impl.<locals>.impl  s    ::b>!r&   c                 V    [         R                  " [         R                  " U 5      5      $ r-   )rf   r  r  r  s     r'   rq  r    s    772::a=))r&   r  )r  r  rq  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$ )z9Shared implementation for both np.trapz and np.trapezoid.z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*   rh         @)rf   r  r  rQ   r  r  )r!  r  r  yarrdy_averet	processeds           r'   rq  _trapz_impl.<locals>.impl  si    zz!}1Mc5D>)*T#uT22F-GG3NffQY##C(	r&   Nr  )rY   r   r   r   r   r   r   )r!  r  r  rq  s       r'   _trapz_implr    s[    !ellEMM233011	Au{{	#	#!*++
 Kr&   )r      c                     [        XU5      $ r-   r  r!  r  r  s      r'   np_trapzr        1$$r&   c                     [        XU5      $ r-   r  r  s      r'   np_trapezoidr  	  r  r&   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*   Nrh  )r   rH   r4   rf   r  )r  r7  
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  r7  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-  )rH   r  rf   r   r  r  )r  r7  r  r   r   s       r'   np_vander_impl!np_vander.<locals>.np_vander_impl0	  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-  )rH   rf   r  r  r   r  r   r  )r  r7  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   r  rY   r   r   r   r	   r   rf   promote_typesr  r\   r-  )r  r7  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-  )rf   r  r   r   r   r   r4   r   )r.   shiftri   r   arr_flatr/   r   s          r'   np_roll_implnp_roll.<locals>.np_roll_implW	  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>d	  s    

1r&   )rY   r   r   r   r   r   )r.   r  r  s      r'   np_rollr  R	  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*   rh  r  r   r   )LIKELY_IN_CACHE_SIZE)keyri   lengthguessiminimaxr/   imids           r'   binary_search_with_guessr  o	  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.  r  r   rh  )rf   r  rH   r   r   r   r   r   r4   r   r   r   r1  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  	  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  rh  )rf   r  r   rH   r   r   r   r   r   r4   r   r1  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_impl
  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_impl
  s    QB&++A..r&   )r  r   r   r  rf   r  r  result_typer   r  r  rY   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   rf   r   r   r4   r  )r.   r   r  r   r/   s        r'   row_wise_averager  
  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   r4  r  rf   dotr   Tr  )Xbiasddoffactrj   s        r'   np_cov_impl_innerr'  
  s     |DD 771:D tS>D 	!	A 	q"''!##,A4	  AHr&   c                      g r-   r%   r%   r&   r'   _prepare_cov_input_innerr)  
  r~  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-   )rf   
atleast_2drq  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.  )rf   r,  rq  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&   r  )r   r!  r-  r   r)  s        r'   _prepare_cov_input_implr6  
  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   rP  )r   r   s     r'   _handle_m_dim_changer8  
  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 )NrC  r*   )rf   r   rY   r   r   r	   r   r   r   rI   r\   setr  addrH   r  r   )
array_likearray_like_dtcoltypesr   rk   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   )rY   r   r   r   r   formatr-  r  )r=  namer   s      r'   check_dimensionsrD    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)rf   r  r   r  )r%  s    r'   _handle_ddofrF  %  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_inputrK  0  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-   )rY   r   r   r   ).0r  s     r'   	<genexpr>)scalar_result_expected.<locals>.<genexpr>?  s.      /-1 !ellEMM:;;-s   79r   TF)r   r  rY   r   r   	BaseTuplerz  rH   r   r   r-  r  )mandatory_inputoptional_inputopt_is_nones      r'   scalar_result_expectedrU  8  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  )rf   rJ  fabssignr  s    r'   
_clip_corrrY  R  s)    88BGGAJNBGGAJ22r&   c                 f    [        U R                  5      n[        U R                  5      nUSU-  -   $ )Nr  )rY  r   r   )r  r   r   s      r'   _clip_complexr[  W  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  )	rK  r  rf   r  r  r   r   r  r'  )	r   r!  r-  r$  r%  r#  rI  rJ  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   )	rK  r  rf   r  r  r   r  r'  r   )
r   r!  r-  r$  r%  r#  variancerI  rJ  r   s
          r'   np_cov_impl_single_variable+np_cov.<locals>.np_cov_impl_single_variable  sv    qV5--//5ve} 	
 66"((177#q())vvH($7<<Q?Hxx!!r&   NTFN)rD  r   r  _handle_ddof_noprY   r   r   r   rF  r   _handle_m_dim_nopr   r8  r  rf   r  r   rU  )r   r!  r-  r$  r%  m_dty_dtr^  rb  rI  rJ  r   s            @@@r'   np_covri  ^  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   )rf   covdiagsqrtr   r4   r   )r  r!  r-  rj   r  stddevr/   clip_fns          r'   np_corrcoef_impl%np_corrcoef.<locals>.np_corrcoef_impl  sv    FF1 GGAJqwwqz"AdGvGadGvG # qzr&   c                 8    [         R                  " XU5      nX3-  $ r-   )rf   rl  )r  r!  r-  rj   s       r'    np_corrcoef_impl_single_variable5np_corrcoef.<locals>.np_corrcoef_impl_single_variable  s    FF1 ur&   NT)r  rf   r  r   
complex128r[  rY  rU  )	r  r!  r-  r  rh  r   rq  rt  rp  s	           @r'   np_corrcoefrx    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.  )	rf   r  r   r'  r   r6   ri  vstackrd  rr  s     r'   rq  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~  rf   r'  r   r6   )r.   falseishtrueishs    r'   rq  r|    s:    }axxuzz::xx

;;r&   )rY   r   r   r   r
   )r.   
use_scalarrq  r~  r  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   )rf   r  rd  rj  rr  s     r'   rq  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~  r4   rf   r  r   r6   )r.   rB   r  s      r'   rq  r    sH    }as#(8,8a8,88D

33 -s   Ar  )r.   rq  s     r'   np_flatnonzeror    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 lengthrh  )r   r   r  rf   r  rz  r  r   r   r  r   )r.   wrapr   r  stepr  r   s          r'   _fill_diagonal_paramsr    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   )r  r4   r   )r.   r   r  r  r  r/   s         r'   _fill_diagonal_scalarr    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
  )r  rH   r4   r   )r.   r   r  r  r  ctrv_lenr/   s           r'   _fill_diagonalr    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)rf   iinfor   r  r4  r  r  r   )r.   r   r  v_minv_maxs        r'   _check_val_intr    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 r  )rf   finfor   r  r4  r  r  r   )r.   r   r  r  r  finite_valss         r'   _check_val_floatr    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'   rq  rq  .  r~  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>5  s    r&   c                 .    [         R                  " U 5      $ r-   r  r  s    r'   r  r  7  s    !r&   c                 0   > [         R                  " U /TS9$ r-  r  r  r@  s    r'   r  r  :  s    1#R0r&   )rY   r   r   r-  r\   r   r   r	   r  s    @r'   _asarray_implr  2  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-   )rq  r  r  r.   r   r  tmpvalcheckers       r'   scalar_impl%np_fill_diagonal.<locals>.scalar_implK  s'    c]**,FA!!$/r&   c                 `   > [        U5      R                  5       nT" X5        [        XU5        g r-   )rq  r  r  r  s       r'   non_scalar_impl)np_fill_diagonal.<locals>.non_scalar_implP  s'    c]**,FA1d+r&   z4The first argument must be at least 2-D (found %s-D)F)r   rY   r   r   r   r  r   r  
_check_nopr   r\   r-  r   r   )r.   r   r  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<   r2   modulellvmliteirFunctionTyper   get_or_insert_functionr  callr   rt   )rw   r:   rx   r<   r   r  lltyr  fntyr  ry   s              r'   rF    _np_round_float.<locals>.codegeng  s    XXa[%%b){{''f5++F,?,CEll2v&!'COOSIIr&   r%   )	typingctxr   rx   rF   s       r'   _np_round_floatr  c  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Dr  )r  r  r1  r  )r  ndigitspow1pow2r!  s        r'   round_ndigitsr  u  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'   rq  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'   rq  r    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'   rq  r    sP    1}.qvv6.qvv6,QVVX>,QVVX>"4..r&   c                 8    [         R                  " X5      US'   U$ r   )rf   roundr  s      r'   rq  r    s    !.A
r&   c                 \    [         R                  " U 5      n[         R                  " XU5      $ r-   )rf   r  r  r  s      r'   rq  r    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   rf   r  r  )r.   r  r   r   r   s        r'   rq  r    sH    77cii'$%;<<"$.."3JE!##!8CJ #4
r&   rh  )	r
   r   rY   r   r   r   r   r   r   )r.   r  r   r   rq  s        r'   impl_np_roundr    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;)rf   pisinr  s    r'   rq  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-   )rf   rK  r  sinc)r  r   r   r   s       r'   rq  r    s9    --"C nnQ/
WWS\
 0Jr&   z,Argument "x" must be a Number or array-like.)rY   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-   )rf   arctan2r   r   )rY  degdeg_mults     r'   rq  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-  )rf   rK  r  angle)rY  r  r   r   r   	ret_dtypes        r'   rq  r    s=    --3C nnQ/
XXc/
 0Jr&   z6Argument "z" must be a complex or Array[complex]. Got r  )r  rf   r  rY   r   r   r   r   r   underlying_floatr   r   )rY  r  rq  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<   rt   r   rC  r   r   unpack_tupler   stridesrB   layoutr5   r   r6   alloca_once_value	loop_nestr   get_item_pointer2r   is_trueif_thenstorer<  loadr4   r   	_getvaluer   
make_tupler   )rw   r:   rx   r<   arytyr   outarytynoutsr  r   r  rB   r  rl   r\  rC  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-   )rf   r  r  )	conditionr  r!  x_y_r   s        r'   rq  )_where_zero_size_array_impl.<locals>.impl=  s@    ZZ]!!%(ZZ]!!%(r&B&r&   r%   )r   rq  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-   )rf   r  )condr  r!  ry   r   rj   s         r'   _where_generic_inner_implr  D  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   r4   r   )	r  r  r!  ry   cfxfyfrfr/   s	            r'   _where_fast_inner_implr  K  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  rh  r.  )	rf   r  r/  r   r0  r   r"  r  r  )r  r  r!  cond1x1y1r   cond_r  r  ry   r   r  use_faster_impls              r'   rq  !_where_generic_impl.<locals>.implY  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  rq  r  s   `` @r'   _where_generic_implr  V  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-   )rf   r  rd  )r  s    r'   where_cond_none_none)ov_np_where.<locals>.where_cond_none_nones  s    zz)$,,..r&   )r
   r   )r  r   r   s      r'   ov_np_wherer"  m  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 Noner  z0The argument "{}" must be array-like if providedc                     [        U [        R                  5      =(       d0    [        U [        R                  5      =(       a    U R                  S:H  $ r   )rY   r   r   r   r   )args    r'   check_0_dim$ov_np_where_x_y.<locals>.check_0_dim  s7    c5<<0 @3,>Q@r&   r  c                     [         R                  " [         R                  " U 5      [         R                  " U5      [         R                  " U5      5      $ r-   )rf   rJ  r  )r  r  r!  s      r'   rq  ov_np_where_x_y.<locals>.impl  s.    88BJJy12::a="**Q-PPr&   )r
   r   r   ziprB  rY   r   r   r  rf   r  rz  r	  r  r  )r  r  r!  r   r%  rC  cond_arrr  r1  r  rh  r   r&  r.   special_0_caser  rq  s                    r'   ov_np_where_x_yr-  x  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   r  s    r'   np_real_implnp_real.<locals>.np_real_impl      xxr&   r%   )r   r0  s     r'   np_realr3         r&   c                     S nU$ )Nc                     U R                   $ r-   )r   r  s    r'   np_imag_implnp_imag.<locals>.np_imag_impl  r2  r&   r%   )r   r7  s     r'   np_imagr9    r4  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  )rf   rg   )ri   r  r  s      r'   np_contains_impl%np_contains.<locals>.np_contains_impl  s!    3Ax   r&   r  )ri   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   )rf   rj  r  r.   r^   arr2s      r'   rq  np_count_nonzero.<locals>.impl  s"    88A;D66$!)$$r&   c                 h    U R                  [        R                  5      n[        R                  " X!S9$ )N)r^   )r  rf   r   r  rA  s      r'   rq  rC    s#    88BHH%D66$**r&   r-   )r
   r   r   )r.   r^   rq  s      r'   np_count_nonzerorE    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)rf   rj  r  r   onesr   )ri   r  r7  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*   )rf   rj  r  r   
IndexErrorconcatenate)ri   r  r7  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&   )
rY   r   r   r-  r   	SliceTypenp_delete_handler_isslicer   r   np_delete_handler_isarray)ri   r  rM  rS  rL  s       @r'   	np_deleterX    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-negativerh  r*   )
r  r   r   r4  rf   r   r   r   rk  r4   )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  )rY   r   r   r   )r.   r  r`  s      r'   np_diff_implrb    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%   )a1r[  s     r'   rq  np_array_equal.<locals>.implC  s	    8Or&   c                     [         R                  " U 5      n[         R                  " U5      nUR                  UR                  :X  a  [         R                  " X#:H  5      $ gr  )rf   r  r   rz  )re  r[  r.   r  s       r'   rq  rf  F  s?    

2A

2Aww!''!vvaf~%r&   )r
   r   r   r   r   rY   )re  r[  acceptedrq  s       r'   np_array_equalri  :  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*   rh  )rf   r  r  rj  rQ  sort)ar1ar2assume_uniqueauxrM  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   rY   r   r   r~  )rm  rn  ro  rr  s       r'   jit_np_intersect1dru  P  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)rY   r   r   r   r   rB  r-  )	func_nameseqs     r'   validate_1d_array_likery  n  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)rH   r   r.   r  r|  s      r'   validate_inputs$np_bincount.<locals>.validate_inputs  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_item  s    H$Hr&   c                     g r-   r%   r~  s      r'   r  r    s    r&   c                     X==   S-  ss'   g r  r%   r  s       r'   r  r    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 negativerh  r*   z/bincount(): first argument must be non-negative)r   rH   r4   r4  rf   r'  )r.   r  r|  r  r  r/   
out_lengthr   r  r  r  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   )ry  rY   r   r   r   r   r  rf   r   r   r6   )r.   r  r|  r  r  r  r  s       @@@r'   np_bincountr  x  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  )rf   r1  r   r   r  s     r'   less_than_or_equal_complexr    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[        [        R
                  [        R                  45      (       a  [        R                  " U5      (       a  gX:*  $ rv  )	rY   r  r  r  r   float32r   rf   r1  r  s     r'   _less_than_or_equalr    sY    !WAw!7!7)!//	Au}}emm<	=	=88A;;6Mr&   c                     [        U [        5      (       d  [        U[        5      (       a  [        X5      $ [        U[        [        R
                  [        R                  45      (       a  [        X5      $ X:  $ r-   )rY   r  less_than_complexr  r   r  r   less_than_floatr  s     r'   
_less_thanr    sT    !WAw!7!7 &&	Au}}emm<	=	=q$$5Lr&   c                 z    [         R                  " U 5      (       a  g[         R                  " U5      (       a  gX:  $ r
  )rf   r0  r  s     r'   _less_then_datetime64r    s+     
xx{{	xx{{5Lr&   c                 "    [        X5      (       + $ r-   )r  r  s     r'   _less_then_or_equal_datetime64r    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_valrF  r_  r  mid_valcmps         r'   rq  _searchsorted.<locals>.impl  sN    G"3!9:GjG7$$!A+!  r&   r%   )r  rq  s   ` r'   _searchsortedr    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OO[        R                  " U [        R                  5      (       a  [        S:  a  [        U5      nUnO[        U5      nUn[        U5      [        U5      4$ )Nr  r  )r*      )VALID_SEARCHSORTED_SIDESr  r  r  r  r  r  rf   r  inexactr   r   )np_dtypesider  le_impl_cmps         r'    make_searchsorted_implementationr    s    ++++}}"+ v~b!==2::..=73J ""%ED!"%ED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$ )Nr[   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*   )	rf   r   r   r6   r   rH   r4   rk  r   )r.   rk   r  r   last_key_valrF  r_  r/   r  r  r  s            r'   rq  searchsorted.<locals>.implD  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  )rf   r  searchsorted)r.   rk   r  s      r'   rq  r  \  s     

1A??1d33r&   c                 2   > T" XS[        U 5      5      u  p4U$ r   )rH   )r.   rk   r  rr@   r  s        r'   rq  r  `  s    q#a&)DAHr&   r  )r   r  r   rY   r   r   r-  r	   r   rf   r  r  )	r.   rk   r  side_valv_dtnp_dtrq  r  r  s	          @@r'   r  r  2  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*   rh  )rH   r4   )bins
last_valuer/   
next_values       r'   _monotonicity"np_digitize.<locals>._monotonicityl  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 decreasingrh  r  r  r  )r   rH   rf   r  )r  r  r  monor  s       r'   digitize_impl"np_digitize.<locals>.digitize_impl  s    T"19E 
 rz4y2??4":qv#NNNtV<<rz4y2??4":qw#OOOtW==r&   r  )rY   r   r   r   complex_domainr   r   )r  r  r  r  r  s       @r'   np_digitizer  f  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-   )rf   rg   rh   	histogram)r.   r  r4   bin_minbin_maxr   rk   r  s          r'   histogram_impl$np_histogram.<locals>.histogram_impl  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   rf   r'  r6   rg   rh   r  r  r  linspace)r.   r  r4   r  r  hist	bin_ratior   rk   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   )rH   _ranger   rf   r'  r6   rg   rh   )r.   r  r4   nbinsr/   r  r  r  r   rk   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)rY   r  r   r   r  r  )r.   r  r4   r  r  s       @r'   np_histogramr    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  r4  r  r  r  r  nexpnmantr  r  r  bitsr  )r  r4  r  r  c                    ^^ [         S:  a  g S m[        R                  " SS9 mSn [        R                  " SU [        SS9  [
        R                  mS S S 5        [        T5      UU4S j5       ng ! , (       d  f       N$= f)	N)r*      T)recordz(`np.MachAr` is deprecated \(NumPy 1.22\)alwaysz.*numba.*arraymath)messagecategoryr  c            	      (  >^ T" 5       n [        [         Vs/ s H  n[        X5      PM     sn5      mT(       aM  TS   n[        R                  " UR
                  R                  S   [        UR                  UR                  5        U4S jnU$ s  snf )Nr   c                     > [        T 6 $ r-   )r  )_mach_ar_datas   r'   rq  1_gen_np_machar.<locals>.MachAr_impl.<locals>.impl3  s    =))r&   )
rs  _mach_ar_supportedr   warningswarn_explicitr  r<   r    filenamelineno)r  r  wmsgrq  r  	np_MachArws       @r'   MachAr_impl#_gen_np_machar.<locals>.MachAr_impl'  sv    K6HI6Hwq}6HIJQ4D""4<<#4#4Q#7#:#'==#';;0
	* Js   B)r   r  catch_warningsfilterwarningsDeprecationWarningrf   r  r   )r   r   r  r  s     @@r'   _gen_np_macharr    sr    A		 	 	-9#);'<	> II	 
. i  
.	-s   .A00
A>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%  	containerrB   s    r'   rq  !generate_xinfo_body.<locals>.implE  s    $r&   )r   r	   r   rs  r   )
r%  np_funcr  attrnbtyr  r  r  rq  rB   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'   rq  ol_np_finfo.<locals>.implO  s    %yr&   )r  rf   r  _finfo_supported)r   rq  r  s     @r'   ol_np_finfor  K  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'   rq  ol_np_iinfo.<locals>.implX  s    (|r&   )r  rf   r  _iinfo_supported)r  rq  r  s     @r'   ol_np_iinfor  T  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   r4   rH   )r.   r  accr/   s       r'   
_innerprod#_get_inner_prod.<locals>._innerproda  s0    s1vA!qt#C 
r&   c                 n   > [         R                  " U R                  T5      UR                  T5      5      $ r-   )rf   r!  r  )r.   r  r  s     r'   	_dot_wrap"_get_inner_prod.<locals>._dot_wrapu  s$    66!((2,55r&   )r   
_HAVE_BLASr   real_domainr  r	   rf   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 )rY   r   r   r   r   )r.   rw  s     r'   
_assert_1dr,  {  s9    !U[[!!vv{AIMNN  "r&   c                     g r-   r%   )ap1ap2mode	directions       r'   _np_correlate_corer2    r~  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'rh  zInvalid direction)rH   r   rf   r'  r4   )r.  r/  r0  r1  n1n2r  r  n_leftn_rightr  r   incr/   r  r  	innerprods                  r'   rq  %_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   rf   r  r*  )	r.  r/  r0  r1  r(  r)  rq  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-   )rf   r   r  s    r'   op_conj_np_correlate.<locals>.op_conj  s    wwqzr&   c                     U $ r-   r%   r  s    r'   op_nop_np_correlate.<locals>.op_nop  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 emptyrh  r*   rH   r   r2  )r.   rk   r0  lalva_opb_ops        r'   rq  _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.   rk   r0  r@  rC  rq  rJ  rK  s         @@r'   _np_correlaterN    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      $ rF  rG  )r.   rk   r0  rH  rI  s        r'   rq  np_convolve.<locals>.impl  sm    VV723372337%a4R4$::%a4R4$::r&   r   )r,  )r.   rk   r0  rq  s       r'   np_convolverS    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'   rq  np_asarray.<locals>.impl  s    r&   c                 $    U R                  U5      $ r-   )r  rV  s     r'   rq  rW    s    xx&r&   c                 .    [         R                  " U 5      $ r-   r  rV  s     r'   rq  rW  &  s    xx{"r&   c                 .    [         R                  " X5      $ r-   r  rV  s     r'   rq  rW  )  s    xx))r&   c                 2   > [         R                  " U T5      $ r-   r  )r.   r   r@  s     r'   rq  rW  /  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-  )rH   rf   r   r   )r.   r   r  r  r/   rk   target_dtypes         r'   rq  rW  9  s8    AA((1L1C!!A %Jr&   c                 $   > TR                  5       $ r-   )r  )r.   r   ri   s     r'   rq  rW  B  s    88:r&   r-   )r
   rY   r   r   r   r   r-  r\   r   r   r	   
containersListTyper   StringLiteralrf   r  r[   )r.   r   rq  dt_convri   r]  r@  s       @@@r'   
np_asarrayrc    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'   rq  np_asfarray.<locals>.implU  s    ::a$$r&   )rY   r   Typer	   rf   r  r  r   )r.   r   rq  r  s      @r'   np_asfarrayrh  K  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)
rf   r  r  r   r   r  r  r4   r   r  )r  ri   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  ri   rl  s      r'   
np_extractrn  Z  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*   rh  )rH   r   rf   rJ  r   r   r4   rJ  )condlist
choicelistdefaultr   r/   r  choices          r'   np_select_arr_impl%np_select.<locals>.np_select_arr_implw  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^  )rY   r   ListrI   r   r  r   r   r   r   r   )rq  rr  rs  ru  s       r'   	np_selectrx  t  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-   )rf   rj  r  r  rQ  )rm  rn  r.   r  s       r'   
union_implnp_union1d.<locals>.union_impl  sH    HHRZZ_%HHRZZ_%yy/00r&   )r
   r   r   rC  )rm  rn  r|  s      r'   
np_union1dr~    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)rf   r  rg   r  r   )r.   r   r/   r  s      r'   rq  "np_asarray_chkfinite.<locals>.impl  sE    JJq#1A;;q>> !FGG  r&   r-   )
rY   r   r   r-  r\   r   r   r   r	   r   )r.   r   r   rq  r  s       @r'   np_asarray_chkfiniter    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 )Nrh  z*Value for argument "axis" is not supportedr   r   T)r   rf   r  r  r   rk  r   divmodr4   r  modrJ  r  r  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'   rq  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Nrh  g-DT!@)rY   r  r   r   r   r
   r   r   r   r  r   rQ   rf   r  r	   r   r   r  integer)	r  r  r^   r  r   rq  r   r  r  s	         @@@r'   numpy_unwrapr    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      $ )Nr  r   r   r*   )rf   r  rJ  
less_equalr8  r  s     r'   np_bartlett_implr    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      -  -   $ )Nr  r   gzG?r	  r*   g{Gz?r  rf   r  cosr  r  s     r'   np_blackman_implr  %  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?r  r  s     r'   np_hamming_implr  ,  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	  r  r  s     r'   np_hanning_implr  2  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.  )rf   r  r   rJ  )r8  funcs    r'   window_impl>window_generator.<locals>.window_overload.<locals>.window_impl=  sD    1uxx"**55Avwwq

337Nr&   )rY   r   r   r   )r8  r  r  s     r'   window_overload)window_generator.<locals>.window_overload9  s-    !U]]++455	 r&   r%   )r  r  s   ` r'   window_generatorr  8  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      @@)rf   expr  _i0A_i0Brn  r  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  )rf   r  r   r  r4   rH   rn  )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$ )Nr  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  )rf   r  r   rJ  r  r  )r8  r  r  r  s       r'   np_kaiser_impl!np_kaiser.<locals>.np_kaiser_impl  sc    q588Bbjj116771BJJ//IIaOQ#Ad##r&   )rY   r   r   r   r   )r8  r  r  s      r'   	np_kaiserr    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*   rh  r   .r   r   )r   rf   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  )rf   r  )r.   r  r   r  a0re  r[  r  r  r  cp0cp1cp2s                r'   _cross_operationr    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~  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   )rf   r   r  )r.   r  cpr   s      r'   rq  _cross_impl.<locals>.impl  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  )rf   r<  r   r   r  )r.   r  r   r  r   s       r'   rq  r    sD    FF1V9ai066E%$,.BQ2&Ir&   )rf   r  r	   r   r   )r.   r  rq  r   s      @r'   _cross_implr    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)Nrh  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`.)rf   r  r   r   r  r.   r  r1  r2  s       r'   rq  np_cross.<locals>.impl  s    ZZ]ZZ]88B<v%"V)C- 
 88B<1 1">!H r&   r
   r   r.   r  rq  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&   )rf   r  r  )r.   r  r  r  re  r  r  r  s           r'   _cross2d_operationr    sM    
 "!$FB!!$FB	R	r{{22	2B ::b>r&   c                     g r-   r%   r  s     r'   cross2dr    r~  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      $ )Nrh  r   zRIncompatible dimensions for 2D cross product
(dimension must be 2 for both inputs))rf   r  r   r   r  r  s       r'   rq  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  rh  )rf   r  r  rH   )filttrimr1  firstr/   lasttrim_escapess         r'   rq  np_trim_zeros.<locals>.implB  s    ZZzz|$;6lqBw!AIE	 
 4y$;"X6lqBw!8D	 
 ~r&   fb)rY   r   r   r   r   strUnicodeTyper   )r  r  rq  r  s      @r'   np_trim_zerosr  5  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.  Trh  )	rf   r  r  rj  rQ  rl  r   r   r   )rm  rn  ro  r.   r  rp  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  rt  )rm  rn  ro  r  s       r'   jit_np_setxor1dr  X  sS    S!!%5c%:%:GHH}u}}d&;<<NOO), r&   c                    [         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*   rh  	mergesort)kind)rf   r  rj  rH   rJ  r   r'  argsortr   r   r   r6   r  rQ  r   )rm  rn  ro  invertrM  r.   order1rp  imaskinv_idxarordersarr  r  s                  r'   
_in1d_implr  {  s   
 **S/


!C
**S/


!C
 3x"s3x5(((773s82884D"   88CHBHH5D"   Ckxx		2Raqr7c#2h&QRi		$!#((4::RWW5iin	
	#B JJKJ(E
)C88CHHbhh'DWCR(Sb	WCR(Sb	I
((288288
,CJ 9CH~7|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                    [         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 [	        XSSS9   $ )NTro  r
  )rf   r  rj  r  r  )rm  rn  ro  s      r'   np_setdiff1d_impl+jit_np_setdiff1d.<locals>.np_setdiff1d_impl  sc    jjojjo))+C))+C))C.C))C.C:cd4HIIr&   r  rt  )rm  rn  ro  r  s       r'   jit_np_setdiff1dr    sT    S!!%5c%:%:HII}u}}d&;<<OPP	J 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                     [        XX#5      $ r-   )r  )rm  rn  ro  r
  s       r'   np_in1d_impl!jit_np_in1d.<locals>.np_in1d_impl  s    #M::r&   FFrt  )rm  rn  ro  r
  r  s        r'   jit_np_in1dr    su    S!!%5c%:%:CDDmemmT%:;;JKKfu}}d344CDD; 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                 v    [         R                  " U 5      n [        XUUS9R                  U R                  5      $ )Nr  )rf   r  r  rk  r   )r  test_elementsro  r
  s       r'   np_isin_impl!jit_np_isin.<locals>.np_isin_impl  s3    **W%'!'))0)?	@r&   r  rt  )r  r   ro  r
  r!  s        r'   jit_np_isinr#    sv    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^  rh  r  r  rd  rv  r  r  r  rM  rR  r  r  r  (  __doc__r  collectionsr   r  r  llvmlite.irr  numpyrf   
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   r    numba.cpython.unsafe.tupler!   r(   r"  rM   rb   r  r   rz   r}   r   r6   	DTypeSpecIntegerLiteralr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  aminr2  r4  amaxr@  rG  rL  rQ  rR  r[  r`  rc  re  rZ  rt  ry  rz  r  r  r  r  r  r  averager  r  	iscomplexr  isrealr  r  r  isscalarr  r  r
  r  r  r  r  r  r7  r=  r6  r<  r"  r4  nanminr9  nanmaxr>  rJ  rG  rP  rM  nanstdrS  nansumrY  nanprodr_  
nancumprodrh  	nancumsumro  rs  rz  r}  r  r  r  r  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!  	partitionr0  r  r5  r:  rH  r?  rB  rN  trilr_  ro  rj  tril_indices_fromru  ry  triur  r  r  triu_indices_fromr  r  r  r  ediff1dr  r  r  r  r  r  trapzr  	trapezoidr  r  r  vanderr  rollr  r  r  r  r  interpr  r  r'  r)  r6  r8  rf  r  rD  rF  re  rK  rU  rY  r[  rl  ri  corrcoefrx  argwherer  flatnonzeror  r  r  r  r  r  r  rq  r  fill_diagonalr  r  r  r  aroundr  r  round_r  r  r  r  rd  r  r	  r  r  r  rJ  r"  r-  r   r3  r   r9  containsr>  count_nonzerorE  rV  rW  deleterX  r  rb  array_equalri  intersect1dru  ry  r{  r  r  r  r  r  r  r  r  r  r   r  r  r  digitizer  r4   r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r,  r2  r=  	correlaterN  convolverS  r  rc  asfarrayr   rh  extractrn  selectrx  union1dr~  asarray_chkfiniter  unwrapr  r  r  r  r  r  bartlettblackmanhamminghanningr  r  r  r  r  r  kaiserr  r  r  r  crossr  r  r  r  
trim_zerosr  setxor1dr  r  	setdiff1dr  r  in1disinr#  r%   r&   r'   <module>rp     s	  
  "     % L LM M MG G/ / ' *H H 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% & B 
"&&e$ %   
"&&e$ %        
"&&	"''e$2 %  2j 
"&&	"''e$2 %  2j  *  *  & 
"))h' ( $  *  *  ")X 
"))h' ( $ 
"&&e$ % (  2 
"++j)?, * ?,D 
"&&e$ % & 
"** >
 
",,  
"))  
"// & 
",,  
"++ 
 
"++& &
 
"++& &
     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 
",, : 
"//   @ 	 	 
"&&
 
    > >
 
"''" "4 
"//
  
  
"


%  
% > >
 
"''" "2 
"//
  
  
"


%  
%	 
.1 1 " 
"**4 4n	 
/ 	 
& , 6bhh% %
 Fbll% % < <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 ;8 
"//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 
"++ D 7 7t 
",, * 6RWWk" 
"'' r&   