
    ihR             	       %   d Z ddlZddlmZ ddlZddlZddlZddl	m
Z
mZ ddlmZmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZmZmZmZ ddlmZm Z m!Z!m"Z" dd	l#m$Z$ dd
lm%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z- d Z. e.       Z/e%d        Z0e%d        Z1 eejd                  e
jf                         ede
jf                        d               Z4ed        Z5d Z6 eejd                  e
jf                  e
jn                  e
jp                         eejd                  e
jf                  e
jr                  e
jp                         ede
jf                  e
jn                  e
jp                         ede
jf                  e
jr                  e
jp                        d                             Z: eejd                  e
jf                  e
jp                         ede
jf                  e
jp                        d               Z; eejd                  e
jf                  e
jn                         eejd                  e
jf                  e
jr                         ede
jf                  e
jn                         ede
jf                  e
jr                        d                             Z<d Z= eej|                         ee
jf                  d      d               Z? eej                         ee
jf                  d      d               ZA eej                         ee
jf                  d      d               ZC eej                         ee
jf                  d      d               ZE eej                         ee
jf                  d       d!               ZG eej                         ee
jf                  d"      d#               ZIed$        ZJed%        ZKed&        ZL eej                         eej                         ee
jf                  d'      d(                      ZO eej                         eej                         ee
jf                  d)      d*                      ZRed+        ZSed,        ZTed-        ZU eej                         ee
jf                  d.      dd/              ZWed0        ZXed1        ZYed2        ZZd3 Z[ eej                         ee
jf                  d4      dd5              Z] eej                         ee
jf                  d6      d7               Z_edd9       Z` eej                         ee
jf                  d:      dd;              Zb eej                         ee
jf                  d<      d=               Zd eej                        d	d>       Zfd? Zg eej                        d@        Zi eej                        dA        Zk eej                        dB        Zl eej                        dC        Zm eej                        dD        ZodE Zp eej                        ddF       Zq eej                        ddG       ZredH        ZsedI        ZtedJ        ZudK Zv e evesd8L            Zw e evetd8L            Zx e evesdML            Zy e evetdML            ZzedN        Z{ eej                        ddO       Z| eej                        dP        Z~ eej                        dQ        Z eej                        dR        Z eej                        dS        Z eej
                        dT        Z eej                        dU        Z eej                        dV        Z eej                        dW        Z eej                        dX        ZedY        ZdZ Zd[ Zd\ Z ee      d]        Z ee      d^        Zd_ Z ee      d`        Z eej.                        da        Zedbk  r  ee
jf                  dc      e       edd        Zd
deZ e ees            Z e ee            Z e eedMf            Zdg Z e ee            Z e ee            Z e ee            Zedh        Zedi        Z eejH                        dj        Zedk        Zedl        Zedm        Zedn        Zedo        Zedp        Zdq Z eejZ                        dr        Z eej^                        ds        Z eejb                        dt        Z eejf                        du        Z eejj                        dv        Zedw        Zedx        Zedy        Z eejt                        dz        Z eejx                        d{        Zed|        Z eej~                        dd}       Zed~        Zedd       Z eej                        dd       Z eej                        dd       Z eej                        dd       Zedd       Z eej                        dd       Z eej                        dd       Z eej                        dd       Zd Z eeЫ      d        Zd Z eej                        d	d       Zd Z eeի      d        Zd Z ee׫      d        Z eej                        dd       Zedbk\  r  eej                        eګ       ed        Zed        Z eej                        dd       Z eej                        d        ZdZed        Zed        Zed        Z eej                        d        Zed        Zed        Zd Z ee      d        Zed        Z ed       Zd Zd Zed        Z ed       Zed        Zd Zed        Zed        Z eej                        dd       Z eej                        dd       Z eej                        d        Z eej                        d        Zed        Zed        Zed        Z ed        Zed        Z ed       Zd Z ee      d        Z eej                        d
d       Zd Ze%d        Z	ed        Z
 eej                         eej                        dd              Zedbk  r  eej                        e        eej                        d        Z eej"                        d
d       Z eej&                  e
jf                         ede
jf                        d               Zd Zed        Zed        Zd Z eej2                        d        Z eej2                        d        Z eej8                        d        Z eej<                        dÄ        Z eej@                        dĄ        Z! eejD                        ddń       Z# edƄ       Z$ edǄ       Z% eejL                        dȄ        Z' eejP                        ddɄ       Z) eejT                        dʄ        Z+ eejX                        d
d˄       Z-d̄ Z. eej^                        dd̈́       Z0 ee      Z1 ee      Z2ed΄        Z3edτ        Z4edЄ        Z5edф        Z6ed҄        Z7dӄ Z8 e9ddh      Z:dք Z; eejx                        ddׄ       Z< eejz                        d
d؄       Z>e?Z@ eej                        ddل       ZBdڐZC edېeC      ZDdܐZE edݐeE      ZFdސZG edߐeG      ZHd ZI eej                        d        ZJ eej                        d        ZKd ZLd ZMd ZN eeN      d        ZO eej                        dd       ZQ eej                        dd       ZS eej                        dd       ZUedbk  r' eej                        ej                  fd       ZX eej                        d        ZZ eej                        dd       Z\ eej                        d        Z^ eej                        dd       Z` eej                        dd       Zbed        Zced        Zded        Zeed        Zfd Zg  eej                         egec               eej                         eged               eej                         egee               eej                         egef              ej                  g d      Zm ej                  g d      Zned        Zoed        Zped        Zq eej                        d        Zsed        Ztd Zu eeu      d        Zv eej                        d        Zxed        Zyd  Zz eez      d        Z{ eej                        dd       Z} eej                        d
d       Z eej                         d
d       Z eej                        dd       Z eej                        dd       Zy(  z5
Implementation of math operations on Array objects.
    N)
namedtuple)typescgutils)overloadoverload_methodregister_jitable)as_dtypetype_can_asarraytype_is_scalarnumpy_versionis_nonelikecheck_is_integer	lt_floats
lt_complex)lower_builtinimpl_ret_borrowedimpl_ret_new_refimpl_ret_untracked)
make_array	load_item
store_item_empty_nd_impl)ensure_blas)	intrinsic)RequireLiteralValueTypingErrorNumbaValueErrorNumbaNotImplementedErrorNumbaTypeError)tuple_setitemc                  8    	 t                y# t        $ r Y yw xY wNFT)r   ImportError     T/var/www/html/dev/engine/venv/lib/python3.12/site-packages/numba/np/old_arraymath.py_check_blasr'      s%       s   
 	c                     t        |      dz
  t        j                  t        j                         |      }fd}||fS )a  
    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   | j                        }t        j                  |      }|\  }}d }t              D ]m  }	| j	                  t
        j                  |	      }
| j                  ||t        j                  t
        j                        ||
g      }|j                  |||	      }o |S )Nc                     | |   S Nr$   )ais     r&   array_indexerzB_create_tuple_result_shape.<locals>.codegen.<locals>.array_indexerD   s    Q4Kr%   )	get_value_typer   get_null_valuerangeget_constantr   intpcompile_internalinsert_value)cgctxbuilder	signatureargslltuptytupin_shape_r/   r.   dataidxdatand
shape_listtuptys               r&   codegenz+_create_tuple_result_shape.<locals>.codegen<   s    &&u-$$W- 1	 r 	5A((Q7G))'=*/**Z*L+3W*=?D &&sD!4C	5 
r%   )lenr   UniTupler4   )tyctxrB   shape_tuplefunction_sigrD   rA   rC   s    `   @@r&   _create_tuple_result_shaperJ   +   sF     
[	A	BNN5::r*E[1L*   r%   c                 ~  	
 t        |t        j                        st        d      |j                  	t        |      
	
k\  rd		}
|z
  dz
  }g }|t        j                  g|z  z  }|t        j                  gz  }|t        j                  g|z  z  }t        j                  |       |||      }	
fd}||fS )aH  
    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                 n   | j                        }t        j                  |      }|\  }}}d }| j                  ||t	        j
                         g       }	t        d      D ]  }
|j                  ||	|
      } |j                  ||      }t        dz         D ]  }
|j                  ||	|
      } |S )Nc                      t        d d       S r,   )slicer$   r%   r&   create_full_slicez<_gen_index_tuple.<locals>.codegen.<locals>.create_full_slice   s    t$$r%   r   r)   )r0   r   r1   r5   r   slice2_typer2   r6   )r7   r8   r9   r:   r;   r<   r>   	value_argrO   
slice_datar.   
axis_valuerA   rC   s              r&   rD   z!_gen_index_tuple.<locals>.codegen{   s    &&u-$$W- !Iq	% ++G5F,1,=,=,?,.0
 q*% 	;A&&sJ:C	; ""3	:> zA~r* 	;A&&sJ:C	;
r%   )	
isinstancer   Literalr   literal_valuerE   rP   r4   Tuple)rG   rH   valueaxisbeforeafter
types_listrI   rD   rS   rA   rC   s            @@@r&   _gen_index_tupler]   T   s     dEMM*!"DEE##J	[	B R
 FK!OEJ5$$%..J5::,J5$$%--J KK
#EeT2L>   r%   z	array.sumc           	          |j                  d      fd}| j                  ||||t        |j                               }t        | ||j                   |      S )Nr   c                 f    }t        j                  |       D ]  }||j                         z  } |S r,   npnditeritem)arrcvzeros      r&   array_sum_implz!array_sum.<locals>.array_sum_impl   3    3 	AMA	r%   re   localsreturn_typer5   dictr   contextr8   sigr:   rh   resrg   s         @r&   	array_sumrt      Y     ??1D 
"
"7NC*.*A # CCWgsDDr%   c                     | S r,   r$   )rd   rf   s     r&   _array_sum_axis_noprw      s    Jr%   c                       fd}|S )Nc                    | j                   }s|dk  s|dkD  rt        d      ||k\  rt        d      t        | j                        }||   }|j	                  |       t        || j                        }t        j                  |t                    }t        |      D ]  }r t        | j                  |      }|| |   z  }%|dk(  r t        | j                  |d      }	|| |	   z  }J|dk(  r t        | j                  |d      }
|| |
   z  }o|dk(  r t        | j                  |d      }|| |   z  }|dk(  st        | j                  |d      }|| |   z  }  |d      S )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poprJ   ra   fulltyper2   r]   )rd   rY   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oprg   s                r&   innerz gen_sum_axis_impl.<locals>.inner   s    xxax4!8  "G H H
 4<>?? cii$<

48K,dDJ?  / 	0J&6syy*7E'G##122
 19#3CIIz1#MLc,//FQY#3CIIz1#MLc,//FQY#3CIIz1#MLc,//FQY#3CIIz1#MLc,//F+	0, &!}r%   r$   )r   r   r   rg   r   s   ```` r&   gen_sum_axis_implr      s    <z Lr%   c                    |j                   } t        |d|      d      }t        |dd       t        j                  }nt        }|j
                  \  }}}	d}
d}t        |t        j                        r|j                  }|dk  r|j                  |z   }|dk  s||j                  kD  rt        d      | j                  j                  |      }| j                  ||      }|d   ||d   f}|j                  |||	g      }d}
t!        |
|||      }t#        |      fd	}| j%                  ||||      }t'        | ||j                   |      S )
Ndtyper   r|   Fz'axis' entry is out of boundsr{   r:   Tc                      | |      S r,   r$   )rd   rY   r   compileds      r&   array_sum_impl_axisz1array_sum_axis_dtype.<locals>.array_sum_impl_axis      T""r%   )rn   getattrra   takerw   r:   rT   r   rU   rV   r|   r}   typing_contextresolve_value_typer3   replacer   r   r5   r   )rq   r8   rr   r:   rettyrg   r   ty_arrayty_axisty_dtyper   r   axis_valgen_implr   rs   r   s                   @r&   array_sum_axis_dtyper      sO   
 OOE)75'5)!,D ufd#+WW $'HH!XwMN'5==) ..A%]]^;NA(--!?<==((;;NK''@Aw$q')kk'8<k= DIH)H# 
"
"7,?d
KCGWcoosCCr%   c           	          |j                  d      fd}| j                  ||||t        |j                               }t        | ||j                   |      S )Nr   c                 f    }t        j                  |       D ]  }||j                         z  } |S r,   r`   )rd   r   re   rf   rg   s       r&   rh   z'array_sum_dtype.<locals>.array_sum_impl&  ri   r%   rj   rk   rm   rp   s         @r&   array_sum_dtyper   !  ru   r%   c                    |j                   } t        |d|      d      }t        |dd       t        j                  }nt        }|j
                  \  }}d}	d}
t        |t        j                        r|j                  }
|
dk  r|j                  |
z   }
|
dk  s|
|j                  kD  rd|
 d}t        |      | j                  j                  |
      }| j                  ||
      }|d   |f}|j                  ||g      }d}	t!        |	|
||      }t#        |      fd	}| j%                  ||||      }t'        | ||j                   |      S )
Nr   r   r|   Fz'axis' entry (z) is out of boundsr   Tc                      | |      S r,   r$   )rd   rY   r   s     r&   r   z+array_sum_axis.<locals>.array_sum_impl_axisV  r   r%   )rn   r   ra   r   rw   r:   rT   r   rU   rV   r|   r   r   r   r3   r   r   r   r5   r   )rq   r8   rr   r:   r   rg   r   r   r   r   r   msgr   r   r   rs   r   s                   @r&   array_sum_axisr   1  sT   
 OOE)75'5)!,D ufd#+WW ((XwMN'5==) ..A%]]^;NA(--!?">"22DEC!#&&((;;NK''@Aw kk'2k3 DIH)H# 
"
"7,?d
KCGWcoosCCr%   c                     | j                   t        j                  k(  r&t        j                  |      j	                  |       }|S | j                  |      }|S r,   )r   ra   timedelta64int64view)r   rX   acc_inits      r&   get_accumulatorr   ]  sF    zzR^^#88E?''. O ::e$Or%   prodc                     t        | t        j                        r(t        | j                        }t        |d      fd}|S y )Nr)   c                 f    }t        j                  |       D ]  }||j                         z  } |S r,   r`   r-   re   rf   r   s      r&   array_prod_implz#array_prod.<locals>.array_prod_implm  s3    AYYq\ QVVXHr%   )rT   r   Arrayr	   r   r   )r-   r   r   r   s      @r&   
array_prodr   e  s?     !U[[!!"5!,	  "r%   cumsumc                    t        | t        j                        r| j                  t        j                  v }| j                  t        j
                  k(  }|r1| j                  j                  t        j                  j                  k  s|rt        t        j                        nt        | j                        t        d      fd}|S y )Nr   c                     t        j                  | j                        }}t        | j                        D ]  \  }}||z  }|||<    |S r,   ra   emptysize	enumerateflatr-   outre   idxrf   r   r   s        r&   array_cumsum_implz'array_cumsum.<locals>.array_cumsum_impl  Q    ((1665)CA#AFF+ QQC Jr%   
rT   r   r   r   signed_domainbool_bitwidthr4   r	   r   )r-   
is_integeris_boolr   r   r   s       @@r&   array_cumsumr   v  s     !U[[!WW 3 33
''U[[(177++ejj.A.AAUZZ(EQWW%E"5!,	 ! ' "r%   cumprodc                    t        | t        j                        r| j                  t        j                  v }| j                  t        j
                  k(  }|r1| j                  j                  t        j                  j                  k  s|rt        t        j                        nt        | j                        t        d      fd}|S y )Nr)   c                     t        j                  | j                        }}t        | j                        D ]  \  }}||z  }|||<    |S r,   r   r   s        r&   array_cumprod_implz)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                 0   t        | t        j                        r{| j                  t        j                  t        t        j                  g      z  v }|rt        t        j                        }nt        | j                        }t        |d      fd}|S y )Nr   c                     }t        j                  |       D ]  }||j                         z  } || j                  z  S r,   )ra   rb   rc   r   r   s      r&   array_mean_implz#array_mean.<locals>.array_mean_impl  s>     AYYq\ QVVXqvv:r%   )
rT   r   r   r   integer_domain	frozensetr   r	   float64r   )r-   	is_numberr   r   r   s       @r&   
array_meanr     st     !U[[!GGu33i6NNN	U]]+EQWW%E"5!,	 # "r%   varc                 B    t        | t        j                        rd }|S y )Nc                     | j                         }d}t        j                  |       D ]C  }|j                         |z
  }|t        j                  |t        j
                  |      z        z  }E || j                  z  S Nr   )r   ra   rb   rc   realconjr   )r-   mssdrf   vals        r&   array_var_implz!array_var.<locals>.array_var_impl  sj    A CYYq\ 3vvx!|rwwsRWWS\1223 <r%   rT   r   r   )r-   r   s     r&   	array_varr     s$     !U[[!		   "r%   stdc                 B    t        | t        j                        rd }|S y )Nc                 (    | j                         dz  S N      ?)r   r-   s    r&   array_std_implz!array_std.<locals>.array_std_impl  s    557c>!r%   r   )r-   r   s     r&   	array_stdr     s$     !U[[!	" 	 "r%   c                     | |k  S r,   r$   r-   min_vals     r&   min_comparatorr         w;r%   c                     | |kD  S r,   r$   r   s     r&   max_comparatorr     r   r%   c                      yNFr$   r   s    r&   return_falser     s    r%   minc                    t        | t        j                        sy t        | j                  t        j                  t        j
                  f      rt        j                  t        nt        | j                  t        j                        rt        d }t        |      nGt        | j                  t        j                        rt        j                  t        nt        t        fd}|S )Nc                     | j                   |j                   k  ry| j                   |j                   k(  r| j                  |j                  k  ryyNTFr   imagr   s     r&   	comp_funcznpy_min.<locals>.comp_func  ;    vv$7<<'66GLL(r%   c                    | j                   dk(  rt        d      t        j                  |       }t	        |      j                  d      } |      r|S |D ]*  }|j                         } |      r|c S  ||      s)|}, |S )Nr   zDzero-size array to reduction operation minimum which has no identityr   r}   ra   rb   nextr   rc   )r-   it	min_valuer   rf   
comparatorpre_return_funcs        r&   impl_minznpy_min.<locals>.impl_min      66Q; = > > YYq\HMM!$	9% 	D		Aq!!Y'		 r%   )rT   r   r   r   
NPDatetimeNPTimedeltara   isnatr   Complexr   r   Floatisnan)r-   r   r  r  r  s      @@r&   npy_minr         a%!''E,,e.?.?@A((#
	AGGU]]	+&	 &i0
	AGGU[[	)((#
&#
$ Or%   maxc                    t        | t        j                        sy t        | j                  t        j                  t        j
                  f      rt        j                  t        nt        | j                  t        j                        rt        d }t        |      nGt        | j                  t        j                        rt        j                  t        nt        t        fd}|S )Nc                     | j                   |j                   kD  ry| j                   |j                   k(  r| j                  |j                  kD  ryyr   r   )r-   max_vals     r&   r   znpy_max.<locals>.comp_func)  r   r%   c                    | j                   dk(  rt        d      t        j                  |       }t	        |      j                  d      } |      r|S |D ]*  }|j                         } |      r|c S  ||      s)|}, |S )Nr   zDzero-size array to reduction operation maximum which has no identityr  )r-   r  	max_valuer   rf   r  r  s        r&   impl_maxznpy_max.<locals>.impl_max9  r	  r%   )rT   r   r   r   r
  r  ra   r  r   r  r   r   r  r  )r-   r   r  r  r  s      @@r&   npy_maxr    r  r%   c                 J   | j                   dk(  rt        d      t        j                  |       }t	        |      j                  d      }d}t        j                  |      r|S d}|D ]9  }|j                         }t        j                  |      r|c S ||k  r|}|}|dz  }; |S Nr   *attempt to get argmin of an empty sequencer)   r   r}   ra   rb   r  r   r  rc   )arryr  r  min_idxr   r   rf   s          r&   array_argmin_impl_datetimer   N      yyA~EFF	4BRa IG	xx	
C IIK88A;Jy=IGq Nr%   c                    | j                   dk(  rt        d      | j                  D ]  }|}d} n t        j                        rS d}| j                  D ])  }t        j                  |      r|c S ||k  r|}|}|dz  }+ S r  r   r}   r   ra   r  r  rf   r  r  r   s        r&   array_argmin_impl_floatr%  d      yyA~EFFYY 	 
xx	
CYY 88A;Jy=IGq Nr%   c                     | j                   dk(  rt        d      | j                  D ]  }|}d} n t        d      d}| j                  D ]  }||k  r|}|}|dz  } |S )Nr   r  unreachabler)   )r   r}   r   RuntimeErrorr$  s        r&   array_argmin_impl_genericr*  z  s    yyA~EFFYY *	*
 =))
CYY y=IGq	
 Nr%   argminc                     t        | j                  t        j                  t        j                  f      rt
        n1t        | j                  t        j                        rt        nt        t        |      rdfd	}|S t        | |      }|S )Nc                      |       S r,   r$   r-   rY   flatten_impls     r&   array_argmin_implz'array_argmin.<locals>.array_argmin_impl      ?"r%   r,   )rT   r   r   r
  r  r   r  r%  r*  r   %build_argmax_or_argmin_with_axis_impl)r-   rY   r0  r/  s      @r&   array_argminr3    w     !''E,,e.?.?@A1	AGGU[[	).04	#  Bt\
 r%   c                 J   | j                   dk(  rt        d      t        j                  |       }t	        |      j                  d      }d}t        j                  |      r|S d}|D ]9  }|j                         }t        j                  |      r|c S ||kD  r|}|}|dz  }; |S Nr   z*attempt to get argmax of an empty sequencer)   r  )r  r  r  max_idxr   r   rf   s          r&   array_argmax_impl_datetimer8    r!  r%   c                    | j                   dk(  rt        d      | j                  D ]  }|}d} n t        j                        rS d}| j                  D ])  }t        j                  |      r|c S ||kD  r|}|}|dz  }+ S r6  r#  r  rf   r  r7  r   s        r&   array_argmax_impl_floatr;    r&  r%   c                     | j                   dk(  rt        d      | j                  D ]  }|}d} n d}| j                  D ]  }|kD  r|}|}|dz  } S r6  )r   r}   r   r:  s        r&   array_argmax_impl_genericr=    st    yyA~EFFYY 	
 CYY y=IGq	
 Nr%   c                     t        |d       t        j                  t        t	        | j
                              dfd	}|S )z|
    Given a function that implements the logic for handling a flattened
    array, return the implementation function.
    rY   c                    |dk  r| j                   |z   }|dk  s|| j                   k\  rt        d      | j                   dk(  r 	|       S }t        || j                   dz
        D ]  }t        |||dz         } t        || j                   dz
  |      }| j	                  |      }|j
                  d   }|j                         }|j                  | j                  k(  sJ |j                  |z  dk(  sJ t        j                  |j                  |z  
      }t        |j                        D ]  } 	|||z  |dz   |z         ||<    |j                  |j
                  d d       S )Nr   zaxis is out of boundsr)   )r|   r}   r2   r    	transposer   ravelr   ra   r   reshape)r-   rY   tmpr.   transpose_indextransposed_arrr   raveledr   r/  r   tuple_buffers            r&   implz3build_argmax_or_argmin_with_axis_impl.<locals>.impl  sf   !866D=D!8tqvv~455 66Q;?" tQVVaZ( 	/AQA.C	/'QVVaZ>_5   $ &&(||qvv%%%""Q&!+++hh~**a/7sxx 	>A!'!a%Q!"<=CF	> {{>//455r%   r,   )r   r   r4   tupler2   r|   )r-   rY   r/  rI  r   rH  s     ` @@r&   r2  r2    s6    
 T6"JJEqvv'L6> Kr%   argmaxc                     t        | j                  t        j                  t        j                  f      rt
        n1t        | j                  t        j                        rt        nt        t        |      rdfd	}|S t        | |      }|S )Nc                      |       S r,   r$   r.  s     r&   array_argmax_implz'array_argmax.<locals>.array_argmax_impl  r1  r%   r,   )rT   r   r   r
  r  r8  r  r;  r=  r   r2  )r-   rY   rN  r/  s      @r&   array_argmaxrO    r4  r%   allc                     d }|S )Nc                 \    t        j                  |       D ]  }|j                         r y yr"   r`   r-   rf   s     r&   flat_allznp_all.<locals>.flat_all#  s*    1 	A668	 r%   r$   )r-   rT  s     r&   np_allrU     s     Or%   Fc                 H   t        j                  |       }t        j                  |      }|s|s|r|sy|r|r|syyt        j                  |       st        j                  |      r| |k(  S t        j                  | |z
        ||t        j                  |dz        z  z   kD  ryy)NF      ?Tra   r  isinfabs)a_vb_vrtolatol	equal_nan	a_v_isnan	b_v_isnans          r&   _allclose_scalarsrb  ,  s    II Iy Y  88C=BHHSM#:66#)tdRVVC#I->&>>>r%   allclosec                 (   t        |       st        d      t        |      st        d      t        |t        t        j
                  f      st        d      t        |t        t        j
                  f      st        d      t        |t        t        j                  f      st        d      t        | t        j                        }t        |t        j                        }|r
|r	 	 d
d}|S |r
|s	 	 d
d}|S |s
|r	 	 d
d}	|	S |s|s	 	 d
d	}
|
S y y )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                 "    t        | ||||      S )Nr]  r^  r_  )rb  r-   br]  r^  r_  s        r&   np_allclose_impl_scalar_scalarz3np_allclose.<locals>.np_allclose_impl_scalar_scalar`  s    $Q4/8: :r%   c                     t        j                  |      }t        j                  |      D ]"  }t        | |j	                         |||      r" y yNrk  FTra   asarrayrb   rb  rc   )r-   rm  r]  r^  r_  bvs         r&   np_allclose_impl_scalar_arrayz2np_allclose.<locals>.np_allclose_impl_scalar_arrayf  sG    

1Aiil !(BGGIDt3<> ! r%   c                     t        j                  |       } t        j                  |       D ]"  }t        |j	                         ||||      r" y yrp  rq  )r-   rm  r]  r^  r_  avs         r&   np_allclose_impl_array_scalarz2np_allclose.<locals>.np_allclose_impl_array_scalarp  sG    

1Aiil !(ADt3<> ! r%   c                 $   t        j                  |       } t        j                  |      }t        j                  | |      \  }}t        j                  ||f      D ]3  \  }}t	        |j                         |j                         |||      r3 y yrp  )ra   rr  broadcast_arraysrb   rb  rc   )	r-   rm  r]  r^  r_  a_ab_brv  rs  s	            r&   np_allclose_impl_array_arrayz1np_allclose.<locals>.np_allclose_impl_array_arrayz  sz    

1A

1A**1a0HC))S#J/ !B(BGGID.2iI !
 r%   gh㈵>g:0yE>F)	r
   r   rT   floatr   r  boolBooleanNumber)r-   rm  r]  r^  r_  is_a_scalaris_b_scalarrn  rt  rw  r|  s              r&   np_allcloser  F  s(    AEFFAFGGdUEKK01 + , 	, dUEKK01 + , 	, i$!67 $ % 	% Q-KQ-K{BG5:	: .-	[AF49	 -,[AF49	 -,@E38	 ,+ "-[r%   anyc                     d }|S )Nc                 \    t        j                  |       D ]  }|j                         s y yr   r`   rS  s     r&   flat_anyznp_any.<locals>.flat_any  s*    1 	Avvx	 r%   r$   )r-   r  s     r&   np_anyr    s     Or%   c                     |t        |t        j                        rdd}|S |t        |t        j                        rdd}|S dd}|S )Nc                 V    t        j                  |       }t        j                  |      S r,   )ra   rr  r   )r-   rY   weightsrd   s       r&   np_average_implz#np_average.<locals>.np_average_impl  s    **Q-C773<r%   c                 |   t        j                  |       }t        j                  |      }|j                  |j                  k7  r'|t        d      |j                  dk7  rt        d      t        j
                  |      }|dk(  rt        d      t        j
                  t        j                  ||            |z  }|S )NzCNumba does not support average when shapes of a and weights differ.r)   z81D weights expected when shapes of a and weights differ.        z)Weights sum to zero, can't be normalized.)ra   rr  r   	TypeErrorr|   sumZeroDivisionErrormultiply)r-   rY   r  rd   sclavgs         r&   r  z#np_average.<locals>.np_average_impl  s    jjm**W-99-|'45 5 ||q('45 5 ffWo#:+CE E ffR[[g67#=
r%   c                     t        d      )Nz)Numba does not support average with axis.)r  )r-   rY   r  s      r&   r  z#np_average.<locals>.np_average_impl  s     KLLr%   NN)rT   r   NoneType)r-   rY   r  r  s       r&   
np_averager    sR     *Wenn=	 < 5 <:dENN;2 M r%   c                     t        | t        j                  t        j                  f      rt        j
                  S t        d        }|S )z$
    A generic isnan() function
    c                      yr   r$   xs    r&   _trivial_isnanz!get_isnan.<locals>._trivial_isnan  s    r%   )rT   r   r  r  ra   r  r   )r   r  s     r&   	get_isnanr    s<     %%++u}}56xx		 
	r%   c                      t        |       rd S y )Nc                 F    t        j                  |       j                  dk7  S r   ra   rr  r   r  s    r&   <lambda>znp_iscomplex.<locals>.<lambda>      A++q0 r%   r
   r  s    r&   np_iscomplexr        00r%   c                      t        |       rd S y )Nc                 F    t        j                  |       j                  dk(  S r   r  r  s    r&   r  znp_isreal.<locals>.<lambda>  r  r%   r  r  s    r&   	np_isrealr    r  r%   c                    t        |       }t        | t        j                        rt        | j                        }t        j                  |t
        j                        t        | t        j                        rfd}|S fd}|S )Nc                     | yS r   r$   r  iscmplxs    r&   rI  ziscomplexobj.<locals>.impl  s    yNr%   c                     S r,   r$   r  s    r&   rI  ziscomplexobj.<locals>.impl  s    Nr%   )determine_dtyperT   r   Optionalr   ra   
issubdtypecomplexfloating)r  dtrI  r  s      @r&   iscomplexobjr    se     
	B!U^^$QVV$mmB 2 23G!U^^$	 K	Kr%   c                     d }|S )Nc                 .    t        j                  |        S r,   )ra   r  r  s    r&   rI  zisrealobj.<locals>.impl  s    ??1%%%r%   r$   r  rI  s     r&   	isrealobjr    s    
&Kr%   c                 (    t        |       fd}|S )Nc                     S r,   r$   )elementrs   s    r&   rI  znp_isscalar.<locals>.impl  s    
r%   )r   )r  rI  rs   s     @r&   np_isscalarr    s    

!CKr%   c                 :    t        |      rdfd	}|S dfd	}|S )Nc                     t        j                  t        j                  |        t        j                  |                   S r,   ra   logical_andrY  signbitr  r   fns     r&   rI  zis_np_inf_impl.<locals>.impl  s)    >>"((1+r"**Q-/@AAr%   c                     t        j                  t        j                  |        t        j                  |             |      S r,   r  r  s     r&   rI  zis_np_inf_impl.<locals>.impl  s+    >>"((1+r"**Q-/@#FFr%   r,   r   )r  r   r  rI  s     ` r&   is_np_inf_implr    s'     3	B K	G Kr%   c                 4    t        d       }t        | ||      S )Nc                     | S r,   r$   r  s    r&   r  zisneginf.<locals>.<lambda>  s    A r%   r   r  r  s      r&   isneginfr    s    	+	&B!S"%%r%   c                 4    t        d       }t        | ||      S )Nc                     |  S r,   r$   r  s    r&   r  zisposinf.<locals>.<lambda>  s    QB r%   r  r  s      r&   isposinfr    s    	,	'B!S"%%r%   c                     | |k  S r,   r$   r-   rm  s     r&   	less_thanr        q5Lr%   c                     | |kD  S r,   r$   r  s     r&   greater_thanr    r  r%   c                 8    | j                   dk(  rt        d      y )Nr   z3zero-size array to reduction operation not possible)r   r}   r   s    r&   check_arrayr  "  s    vv{NOO r%   c                 $     |r fd}|S  fd}|S )Nc                 
   t        j                  |       }t        |       t        j                  |      }t	        |      j                  d      }|D ]  }|j                         }t        j                  |j                        r"t        j                  |j                        s|}T |j                  |j                        r|}t|j                  |j                  k(  s |j                  |j                        s|} |S r   )
ra   rr  r  rb   r  r   rc   r  r   r   r-   rd   r  
return_valr   rf   comparison_ops         r&   rI  z!nan_min_max_factory.<locals>.impl*  s    **Q-C3Bbq)J 	+IIK88JOO,RXXaff5E!"J$QVVZ__=%&
:??2(A)*J	+ r%   c                    t        j                  |       }t        |       t        j                  |      }t	        |      j                  d      }|D ]4  }|j                         }t        j                  |      r) ||      r3|}6 |S r   )ra   rr  r  rb   r  r   rc   r  r  s         r&   rI  z!nan_min_max_factory.<locals>.impl;  ss    **Q-C3Bbq)J 'IIKxx{(Q7%&
	'
 r%   r$   )r  is_complex_dtyperI  s   `  r&   nan_min_max_factoryr  (  s    	: K
	 Kr%   )r  Tc                 Z   t        j                  |       rt        j                  |      r|S t        j                  |       r t        j                  |      r| dkD  |dkD  k(  S t        j                  |       st        j                  |      ryt        | |z
        ||t        |      z  z   k  S )Nr   FrX  )r  yr]  r^  r_  s        r&   _isclose_itemr  X  s}    	xx{rxx{	!!A1q5!!	!1q5zTD3q6M111r%   c                    t        |       st        d      t        |      st        d      t        |t        t        j
                  f      st        d      t        |t        t        j
                  f      st        d      t        |t        t        j                  f      st        d      t        | t        j                        r t        |t        j                        rd
d}|S t        | t        j                        r t        |t        j                        rd
d}|S t        | t        j                        r t        |t        j                        rd
d}|S d
d	}|S )Nre  rf  rg  rh  ri  c                    | j                  d      }|}t        j                  t        |      t        j                        }t        t        |            D ]  }t        ||   ||||      ||<    |j                  | j                        S Nr@  rC  ra   zerosrE   r   r2   r  r   	r-   rm  r]  r^  r_  r  r  r   r.   s	            r&   isclose_implzisclose.<locals>.isclose_imply  sr    		"AA((3q6288,C3s8_ G&qtQdIFAG;;qww''r%   c                    | }|j                  d      }t        j                  t        |      t        j                        }t        t        |            D ]  }t        |||   |||      ||<    |j                  |j                        S r  r  r  s	            r&   r  zisclose.<locals>.isclose_impl  sr    A		"A((3q6288,C3s8_ G&q!A$dIFAG;;qww''r%   c                    t        j                  | j                  |j                        }t        j                  | |      }t        j                  ||      }t        j                  t        |      t         j                        }t        t        j                  ||f            D ]6  \  }	\  }
}t        |
j                         |j                         |||      ||	<   8 t        j                  ||      S Nr   )ra   broadcast_shapesr   broadcast_tor  rE   r   r   rb   r  rc   )r-   rm  r]  r^  r_  r   a_b_r   r.   rv  rs  s               r&   r  zisclose.<locals>.isclose_impl  s    ''9EE*BE*B((3r7"((3C(B8)<= 28B&rwwy"'')T4'02A2 ??3..r%   c                      t        | ||||      S r,   )r  rl  s        r&   r  zisclose.<locals>.isclose_impl  s     AtT9==r%   r}  )
r
   r   rT   r~  r   r  r  r  r   r  )r-   rm  r]  r^  r_  r  s         r&   iscloser  d  s)   AEFFAFGGdUEKK01 + , 	, dUEKK01 + , 	, i$!67 $ % 	% !U[[!jELL&A	(B 3 
Au||	$Au{{)C	(0 ! 
Au{{	#
1ekk(B		/ 	> r%   c                 x    t        |       }t        j                  |t        j                        rt        S t
        S r,   )r  ra   r  r  complex_nanminreal_nanminr-   r  s     r&   	np_nanminr    ,    		B	}}R++,r%   c                 x    t        |       }t        j                  |t        j                        rt        S t
        S r,   )r  ra   r  r  complex_nanmaxreal_nanmaxr  s     r&   	np_nanmaxr    r  r%   c                 r    t        | t        j                        sy t        | j                        fd}|S )Nc                     d}d}t        j                  |       D ]3  }|j                         } |      r||j                         z  }|dz  }5 t        j                  ||      S Nr  r   r)   )ra   rb   rc   divide)r-   re   countr   rf   r  s        r&   nanmean_implz np_nanmean.<locals>.nanmean_impl  sa    IIaL 	D		A8QVVX
		 yyE""r%   rT   r   r   r  r   )r-   r  r  s     @r&   
np_nanmeanr    s/    a%aggE	# r%   c                 r    t        | t        j                        sy t        | j                        fd}|S )Nc                 T   t        j                  |       }d}d}t        j                  |       D ]a  }|j                         } |      r|j                         |z
  }|t        j                  |t        j
                  |      z        z  }|dz  }c t        j                  ||      S r  )ra   nanmeanrb   rc   r   r   r   )r-   r   r   r  r   rf   r   r  s          r&   nanvar_implznp_nanvar.<locals>.nanvar_impl  s    JJqM IIaL 	D		A8vvx!|rwwsRWWS\122
	 yye$$r%   r  )r-   r  r  s     @r&   	np_nanvarr	    s/    a%aggE%  r%   c                 B    t        | t        j                        sy d }|S )Nc                 2    t        j                  |       dz  S r   )ra   nanvarr   s    r&   nanstd_implznp_nanstd.<locals>.nanstd_impl  s    yy|s""r%   r   )r-   r  s     r&   	np_nanstdr    s     a%# r%   c                    t        | t        j                        sy t        | j                  t        j                        rt        j
                  }n| j                  } |d      t        | j                        fd}|S )Nr   c                 |    }t        j                  |       D ]   }|j                         } |      r||z  }" |S r,   r`   )r-   re   r   rf   r  rg   s       r&   nansum_implznp_nansum.<locals>.nansum_impl  sA    IIaL 	D		A8Q	 r%   rT   r   r   r   Integerr4   r  )r-   r   r  r  rg   s      @@r&   	np_nansumr    s\    a%!''5==)

8DaggE r%   c                    t        | t        j                        sy t        | j                  t        j                        rt        j
                  }n| j                  } |d      t        | j                        fd}|S )Nr)   c                 |    }t        j                  |       D ]   }|j                         } |      r||z  }" |S r,   r`   )r-   re   r   rf   r  ones       r&   nanprod_implz np_nanprod.<locals>.nanprod_impl  sA    IIaL 	D		A8Q	 r%   r  )r-   r   r  r  r  s      @@r&   
np_nanprodr    s\    a%!''5==)


(CaggE r%   c                     t        | t        j                        sy t        | j                  t        j                  t        j
                  f      rd S | j                  t               d      fd}|S )Nc                 ,    t        j                  |       S r,   )ra   r   r   s    r&   r  znp_nancumprod.<locals>.<lambda>  s    A r%   r)   c                     t        j                  | j                        }}t        | j                        D ]  \  }} |       r||z  }|||<    |S r,   r   )r-   r   re   r   rf   is_nanr  r   s        r&   nancumprod_implz&np_nancumprod.<locals>.nancumprod_impl   sZ    ((1665)CA#AFF+ Q1I:FAC Jr%   rT   r   r   r   r  r  r  )r-   r  r  r  r   s     @@@r&   np_nancumprodr     s^    a%!''EMM5==9:&&5!Ah	 r%   c                     t        | t        j                        sy t        | j                  t        j                  t        j
                  f      rd S | j                  t               d      fd}|S )Nc                 ,    t        j                  |       S r,   )ra   r   r   s    r&   r  znp_nancumsum.<locals>.<lambda>3  s    1 r%   r   c                     t        j                  | j                        }}t        | j                        D ]  \  }} |       r||z  }|||<    |S r,   r   )r-   r   re   r   rf   r  r   rg   s        r&   nancumsum_implz$np_nancumsum.<locals>.nancumsum_impl9  sZ    ((1665)CA#AFF+ Q1I:FAC Jr%   r  )r-   r$  r  r   rg   s     @@@r&   np_nancumsumr%  ,  s^    a%!''EMM5==9:%%5!Qx	 r%   c                 N    t        |       }t        |      dk(  rt        d      |S )Nr   z&zero-size array reduction not possible)_asarrayrE   r}   r-   rd   s     r&   prepare_ptp_inputr)  E  s'    
1+C
3x1}ABB
r%   c                 T     t        |t        j                        r fd}|S  fd}|S )Nc                      |j                   | j                         r|S |j                   | j                   k(  r |j                  | j                        r|S | S r,   r   current_valr   r   s     r&   rI  z+_compute_current_val_impl_gen.<locals>.implU  sM    #((K,,-
((k...388[%5%56
r%   c                      ||       r|S | S r,   r$   r,  s     r&   rI  z+_compute_current_val_impl_gen.<locals>.impl]  s    S+.3?K?r%   )rT   r   r  )r   r-  r   rI  s   `   r&   _compute_current_val_impl_genr/  N  s(    +u}}-	 K	@Kr%   c                      y r,   r$   r-  r   s     r&   _compute_a_maxr2  b      r%   c                      y r,   r$   r1  s     r&   _compute_a_minr5  f  r3  r%   c                 8    t        t        j                  | |      S r,   )r/  operatorgtr1  s     r&   _compute_a_max_implr9  j      (k3GGr%   c                 8    t        t        j                  | |      S r,   )r/  r7  ltr1  s     r&   _compute_a_min_implr=  o  r:  r%   c                      y r,   r$   r   s    r&   _early_returnr@  t  r3  r%   c                     dt        | t        j                        rfd}|S t        | t        j                        rfd}|S fd}|S )Nr   c                     t        j                  | j                        rZt        j                  | j                        r&dt         j                  t         j                  dz  z   fS dt         j                  dz   fS dfS )NT              ?y                F)ra   r  r   r   nanr   UNUSEDs    r&   rI  z _early_return_impl.<locals>.impl|  s\    xx!88CHH%"&&2+!555",,f}$r%   c                 Z    t        j                  |       rdt         j                  fS dfS r   )ra   r  rD  rE  s    r&   rI  z _early_return_impl.<locals>.impl  s&    xx}RVV|#f}$r%   c                     dfS r   r$   rE  s    r&   rI  z _early_return_impl.<locals>.impl  s    &= r%   )rT   r   r  r  )r   rI  rF  s     @r&   _early_return_implrI  x  sH    F#u}}%	%" K 
C	%	% K	!Kr%   c                     t        | d      r/t        | j                  t        j                        rt        d      d }|S )Nr   +Boolean dtype is unsupported (as per NumPy)c                     t        |       }|j                  }|d   }|d   }t        |j                        D ]3  }||   }t	        |      \  }}|r|c S t        ||      }t        ||      }5 ||z
  S r   )r)  r   r2   r   r@  r2  r5  )	r-   rd   a_flata_mina_maxr.   r   take_branchretvals	            r&   np_ptp_implznp_ptp.<locals>.np_ptp_impl  s    "q	q	sxx 	/A)C"/"4K"5#.E"5#.E	/ u}r%   )hasattrrT   r   r   r  r   )r-   rR  s     r&   np_ptprT    s9     q'aggu}}-KLL" r%   )r{   r   ptpc                 d    t        j                  |       ryt        j                  |      ry| |k  S r"   )ra   r  r  s     r&   nan_aware_less_thanrW    s'    	xx{88A;q5Lr%   c                      d fd	}|S )Nc                    ||z   dz	  } 	| |   | |         r$| |   | |   c| |<   | |<   r||   ||   c||<   ||<    	| |   | |         r$| |   | |   c| |<   | |<   r||   ||   c||<   ||<    	| |   | |         r$| |   | |   c| |<   | |<   r||   ||   c||<   ||<   | |   }| |   | |   c| |<   | |<   r||   ||   c||<   ||<   |}|dz
  }	 ||k  r# 	| |   |      r|dz  }||k  r 	| |   |      r||k\  r# 	|| |         r|dz  }||k\  r 	|| |         r||k\  rn/| |   | |   c| |<   | |<   r||   ||   c||<   ||<   |dz  }|dz  }| |   | |   c| |<   | |<   r||   ||   c||<   ||<   |S Nr)   r$   )
AlowhighImidpivotr.   jargpartition	pivotimpls
           r&   
_partitionz&_partition_factory.<locals>._partition  sG   Tza QsVQsV$sVQsVNAcFAcF!"33##QtWaf%fagOAdGQsV"#C&!D'$3QsVQsV$sVQsVNAcFAcF!"33###C&!D'$3fagOAdGQsV1Hd(y1u5Q d(y1u5s(y!5Q s(y!5Av1qtJAaD!A$qT1Q4
!adFAFA  $1!agdGQqTMAaD!D'r%   r,   r$   )rc  rb  rd  s   `` r&   _partition_factoryre    s    ,Z r%   )rb  c                      d fd	}|S )Nc                      | |||      }||k7  r,||k  r|dz   } | |||      }n|dz
  } | |||      }||k7  r,| |   S )zJ
        Select the k'th smallest element in array[low:high + 1].
        r)   r$   )r  kr\  r]  r   r.   partitionimpls         r&   _selectz _select_factory.<locals>._select  si     $T3/1f1u!e!$T371u!$T37 1f Awr%   r,   r$   )ri  rj  s   ` r&   _select_factoryrk    s     Nr%   c                     	 ||kD  sJ t        | ||      }||k  r|dz   }n:||dz   kD  r|dz
  }n,||k(  rt        | |dz   |dz   |       nt        | |||dz
         nZ| |   | |dz      fS )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)   )rd  rj  )r  rh  r\  r]  r.   s        r&   _select_tworm    s     czztS$'q5a%CQYq5D!VD!a%Q-D!S!a%(  7DQKr%   c                 ~    d}|dz
  }|dz	  }|dz  dk(  rt        | |dz
  ||      \  }}||z   dz  S t        | |||      S )zt
    The main logic of the median() call.  *temp_arry* must be disposable,
    as this function will mutate it.
    r   r)   r{   )rm  rj  )	temp_arrynr\  r]  halfr-   rm  s          r&   _median_innerrr  &  s]     Cq5D6D1uz9dQhT:1A{y$T22r%   c                 B    t        | t        j                        sy d }|S )Nc                 X    | j                         }|j                  d   }t        ||      S r   )flattenr   rr  )r-   ro  rp  s      r&   median_implznp_median.<locals>.median_impl;  s*     IIK	OOAY**r%   r   )r-   rv  s     r&   	np_medianrw  6  s     a%+ r%   c                    t        |       }|dk(  r4t        j                  t        |      | d   t        j                        }|S t        j                  t        |      t        j                        }t        t        |            D ]  }||   }|dk(  rht        j                  |       }t        j                  t        j                  |              rt        j                  |       rwt        j                  }ne|dk(  rt        j                  |       }t        j                  t        j                  |              r!t        j                  | t        j                  k(        }t        j                  | t        j                   k(        }|||z   z
  }	|	dk(  rt        j                  }|dk(  r|dk(  rt        j                  }|dkD  rt        j                  }|	dk(  r|dkD  r~|dk7  ryt        j                  }nhd|dz
  t        j                  |d      z  z   }
t        j                  |
      }|
|z
  }t!        | t#        |dz
        d|dz
        \  }}|d|z
  z  ||z  z   }|||<    |S )Nr)   r   r  d   r{         Y@)rh  r\  r]  )rE   ra   r   r   r   r2   r  rP  isfiniterD  r   r  inftrue_dividemathfloorrm  int)r-   qrp  r   r.   
percentiler   num_pos_infnum_neg_inf
num_finiterankfr   loweruppers                  r&   _collect_percentiles_innerr  E  s    	AAAvggc!fad"**5T JQ hhs1vRZZ0s1v %	A1J S ffQiFF2;;q>**C(( ff qffQiFF2;;q>**"$&&bff"5K"$&&rvvg"6K!"kK&?!@J!Q ff"a'AF ff"Q ff!Q&?*a/&(ff AER^^J%FFFJJt$1H*1AE
QPuq1uo	1CFK%	N Jr%   c                     |r| |    } t        |       dk(  ryt        j                  |      ryt        |       dk(  r| d   }t        j                  |      S y)Nr   Fr)   T)rE   ra   r  r{  )r-   nan_maskskip_nanr   s       r&   _can_collect_percentilesr  z  sS    xiLq6Q;66(
1v{d{{3r%   c                    d}| j                   dk(  rX| j                  dk  rIt        | j                        D ]/  }| |   dk  s!| |   |kD  st        j                  | |         s,d} |S  |S t        j
                  t        j                  |             s0t        j
                  | dk        st        j
                  | |kD        rd}|S )NTr)   
   r  F)r|   r   r2   ra   r  r  )r  q_upper_boundvalidr.   s       r&   check_validr    s    E 	vv{qvv{qvv 	AtczQqTM1RXXad^
 L	 L 66"((1+"&&S/RVVA<M5NELr%   c                 4    t        | d      st        d      y )Nrz  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                 4    t        | d      st        d      y )NrW  r  z%Quantiles must be in the range [0, 1]r  r  s    r&   quantile_is_validr    s    q,@AA -r%   c                    t        j                  |t         j                        j                         } ||       ||z  }t        j                  | t         j                        j                         }t        j                  |      }t        |||      r||    }t        ||      }|S t        j                  t        |      t         j                        }|S r  )
ra   rr  r   ru  r  r  r  r   rE   rD  )r-   r  check_qfactorr  ro  r  r   s           r&   _collect_percentilesr    s    


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

1BJJ/779Ixx	"H	8X>xi(	(A6 J ggc!fbff%Jr%   c                 J   t        |       }t        j                  |t        j                        rt	        d      fd}fd}t        |t        j                  t        j                  f      r|S t        |t        j                        r|j                  dk(  r|S |S )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                 (    t        | |      d   S r   r  r-   r  r  r  r  s     r&   np_percentile_q_scalar_implz?_percentile_quantile_inner.<locals>.np_percentile_q_scalar_impl  s    #Aq'68DQGGr%   c                 "    t        | |      S r,   r  r  s     r&   np_percentile_implz6_percentile_quantile_inner.<locals>.np_percentile_impl  s    #Aq'68DDr%   r   )r  ra   r  r  r   rT   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**	Au{{	#!**!!r%   c                 *    t        | |ddt              S )NFrW  r  r  r  r  r  r-   r  s     r&   np_percentiler    s    %	1uS2E r%   c                 *    t        | |ddt              S )NTrW  r  r  r  s     r&   np_nanpercentiler    s    %	1tC1D r%   c                 *    t        | |ddt              S )NFrz  r  r  r  r  s     r&   np_quantiler    s    %	1uU4E r%   c                 *    t        | |ddt              S )NTrz  r  r  r  s     r&   np_nanquantiler    s    %	1tE3D r%   c                 r    t        | t        j                        sy t        | j                        fd}|S )Nc                    t        j                  | j                  | j                        }d}t        j                  |       D ]%  }|j                         } |      r|||<   |dz  }' |dk(  rt         j                  S t        ||      S Nr   r)   )ra   r   r   r   rb   rc   rD  rr  )r-   ro  rp  r   rf   r  s        r&   nanmedian_implz$np_nanmedian.<locals>.nanmedian_impl  sz    HHQVVQWW-	IIaL 	D		A8 	!Q		 666MY**r%   r  )r-   r  r  s     @r&   np_nanmedianr    s/    a%aggE+  r%   c                     t        j                  |       }t        j                  | j                  d d       }|D ]A  }| |   j	                         }d}t        |      dz
  }|D ]  }t        ||||       |} |||<   C |S )Nr@  r   r)   )ra   
empty_likendindexr   copyrE   _select_w_nan)	r-   	kth_arrayr   r   sr  r\  r]  kths	            r&   np_partition_impl_innerr  	  s    
 --
C
**QWWSb\
"C 	tyy{4y1} 	C$S$/C	 A	 Jr%   c           	      ^   t        j                  | t         j                        }t        j                  | j                  d d       }|D ]`  }| |   j                         }t        j                  t        |            }d}t        |      dz
  }|D ]  }	t        ||	|||       |	} |||<   b |S )Nr  r@  r   r)   )	ra   r  r4   r  r   r  arangerE   _arg_select_w_nan)
r-   r  r   r   r  r  idx_arryr\  r]  r  s
             r&   np_argpartition_impl_innerr    s    
 --
)C
**QWWSb\
"C 
tyy{99SY'4y1} 	CdCdH=C	 A
 Jr%   c                    t        |      j                  t        j                        }|j                  dk7  rt        d      t        j                  t        j                  |      | j                  d   k\        rt        d      t        j                  |      }t        j                  |      D ]%  \  }}|dk  r|| j                  d   z   ||<   !|||<   ' t        j                  |      S )a  
    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-Dr@  zkth out of boundsr   )r'  astypera   r   r|   r}   r  rZ  r   r  ndenumerateunique)r-   r  r  r   indexr   s         r&   
valid_kthsr  4  s     $$RXX.I~~455 
vvbffY1772;./,--
--	
"CnnY/ 
s7qwwr{*CJCJ	 99S>r%   c                    t        | t        j                  t        j                  t        j                  f      st        d      t        | t        j                        r| j                  dk(  rd}t        |      t        |d|      }t        |t        j                  t        j                  f      st        d      d }|S )N(The first argument must be an array-liker   3The first argument must be at least 1-D (found 0-D)r   Partition index must be integerc                     t        |       }|j                  dk(  r|j                         S t        ||      }t	        ||      S r   )r'  r   r  r  r  r-   r  a_tmpr  s       r&   np_partition_implz'np_partition.<locals>.np_partition_implf  s;    ::?::<"5#.I*5)<<r%   
rT   r   r   SequencerW   r   r|   r   r  r  )r-   r  r   kthdtr  s        r&   np_partitionr  W  s     a%++u~~u{{CDGHH!U[[!affkCS!!C#&EeemmU]];<>??= r%   c                    t        | t        j                  t        j                  t        j                  f      st        d      t        | t        j                        r| j                  dk(  rd}t        |      t        |d|      }t        |t        j                  t        j                  f      st        d      d }|S )Nr  r   r  r   r  c                     t        |       }|j                  dk(  r|j                         j                  d      S t	        ||      }t        ||      S )Nr   r4   )r'  r   r  r  r  r  r  s       r&   np_argpartition_implz-np_argpartition.<locals>.np_argpartition_impl  sF    ::?::<&&v.."5#.I-eY??r%   r  )r-   r  r   r  r  s        r&   np_argpartitionr  q  s     a%++u~~u{{CDGHH!U[[!affkCS!!C#&EeemmU]];<>??@  r%   c                    t        d|       t        d|      f}t        j                  |t        j                        }t	        |d         D ]3  }t        t        d||z   dz         |d         }d||d |f<   d|||d f<   5 |S )Nr   r  r)   )r  ra   r   r   r2   r   )NMrh  r   r   r.   m_maxs          r&   	_tri_implr    s    1Is1ay E
((5


+C58_ C1q519%uQx0AvvIAuvI
 Jr%   c                 &    t        |d       dd}|S )Nrh  c                 $    || }t        | ||      S r,   )r  )r  r  rh  s      r&   tri_implznp_tri.<locals>.tri_impl  s    9AAq!!r%   r   )r   )r  r  rh  r  s       r&   np_trir    s     Q"
 Or%   c                     | j                   dk(  sJ t        |       }t        j                  ||f| j                        }t        |      D ]  }| ||<   	 |S )zq
    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|   rE   ra   r   r   r2   )r   len_mr   r.   s       r&   _make_squarer    sX     66Q;;FE
((E5>
1C5\ A Jr%   c                    t        j                  | j                  d   | j                  d   |      j                  t         j                        }t        j
                  || t        j                  | | j                              S Nr@  r  rh  r  ra   trir   r  uintwhere
zeros_liker   r   rh  masks      r&   np_tril_impl_2dr    sU    66!''"+299"''BD88D!R]]1AGG<==r%   c                 z    t        |d       dd}dd}| j                  dk(  r|S | j                  dk(  rt        S |S )Nrh  c                 0    t        |       }t        ||      S r,   )r  r  r   rh  m_2ds      r&   np_tril_impl_1dz my_tril.<locals>.np_tril_impl_1d      AtQ''r%   c                    t        j                  | j                  d   | j                  d   |      j                  t         j                        }t        j
                  | j                  d d       }t        j                  |       }t        j                  || j                        }|D ]  }t        j                  || |   |      ||<   ! |S r  
ra   r  r   r  r  r  r  r  r   r  r   rh  r  r   zzero_optsels          r&   np_tril_impl_multiz#my_tril.<locals>.np_tril_impl_multi  s    vvaggbkQWWR[A6==bggFjj"&MM!==QWW5 	6CXXdAcFH5AcF	6r%   r)   r{   r   )r   r|   r  )r   rh  r  r   s       r&   my_trilr    sB     Q( 	vv{	
1!!r%   c                 l    t        | d       t        |d       t        |      st        |d       dd}|S )Nrp  rh  r   c                 X    t        j                  t        j                  | ||            S )Nrh  ra   nonzeror  rp  rh  r   s      r&   np_tril_indices_implz-np_tril_indices.<locals>.np_tril_indices_impl  s    zz"&&A+,,r%   r   Nr   r   )rp  rh  r   r	  s       r&   np_tril_indicesr    s4     QQq>C -r%   c                 Z    t        |d       | j                  dk7  rt        d      dd}|S )Nrh  r{   input array must be 2-dc                 f    t        j                  | j                  d   || j                  d         S Nr   r)   )rh  r   )ra   tril_indicesr   rd   rh  s     r&   np_tril_indices_from_implz7np_tril_indices_from.<locals>.np_tril_indices_from_impl  %    syy|qCIIaLAAr%   r  r   r|   r   )rd   rh  r  s      r&   np_tril_indices_fromr    1     Q
xx1}344B$$r%   c                    t        j                  | j                  d   | j                  d   |dz
        j                  t         j                        }t        j
                  |t        j                  | | j                        |       S Nr  r@  r)   r  r  r  r  s      r&   np_triu_impl_2dr    sY    66!''"+A6==bggFD88D"--91==r%   c                 z    t        |d       dd}dd}| j                  dk(  r|S | j                  dk(  rt        S |S )Nrh  c                 0    t        |       }t        ||      S r,   )r  r  r  s      r&   np_triu_impl_1dz my_triu.<locals>.np_triu_impl_1d  r  r%   c                    t        j                  | j                  d   | j                  d   |dz
        j                  t         j                        }t        j
                  | j                  d d       }t        j                  |       }t        j                  || j                        }|D ]  }t        j                  ||| |         ||<   ! |S r  r  r  s          r&   np_triu_impl_multiz#my_triu.<locals>.np_triu_impl_multi  s    vvaggbkQWWR[AE:AA"''Jjj"&MM!==QWW5 	6CXXdHaf5AcF	6r%   r)   r{   r  )r   r|   r  )r   rh  r  r  s       r&   my_triur     sB     Q( 	vv{	
1!!r%   c                 l    t        | d       t        |d       t        |      st        |d       dd}|S )Nrp  rh  r   c           	      d    t        j                  dt        j                  | ||dz
        z
        S )Nr)   r  r  r  s      r&   np_triu_indices_implz-np_triu_indices.<locals>.np_triu_indices_impl   s'    zz!bffQQU3344r%   r
  r  )rp  rh  r   r#  s       r&   np_triu_indicesr$    s4     QQq>C 5r%   c                 Z    t        |d       | j                  dk7  rt        d      dd}|S )Nrh  r{   r  c                 f    t        j                  | j                  d   || j                  d         S r  )ra   triu_indicesr   r  s     r&   np_triu_indices_from_implz7np_triu_indices_from.<locals>.np_triu_indices_from_impl.  r  r%   r  r  )rd   rh  r(  s      r&   np_triu_indices_fromr)  %  r  r%   c                      y r,   r$   rd   s    r&   _prepare_arrayr,  3  r3  r%   c                 6    | d t         j                  fv rd S d S )Nc                 ,    t        j                  d      S )Nr$   ra   arrayr+  s    r&   r  z%_prepare_array_impl.<locals>.<lambda>:  s    288B< r%   c                 4    t        |       j                         S r,   )r'  rB  r+  s    r&   r  z%_prepare_array_impl.<locals>.<lambda><  s    8C=..0 r%   r   noner+  s    r&   _prepare_array_implr4  7  s    
tUZZ  ''00r%   c                 ^   | }	 t        |t        j                  t        j                  f      rt	        |      S t        |dd       }| |       dk(  rt        j                  S t        |dd       }|t        d      t        |t        j                        r|j                  }nt	        |      S )N__len__r   r   ztype has no dtype attr)rT   r   r  r  r	   r   ra   r   r   r  r   )inobjobjlr  s       r&   _dtype_of_compoundr:  ?  s    
C
cELL%--89C= CD)=QSAX::S'4(: !9::c5>>*))CB< r%   c                    t        | t        j                        r/t        | j                  t        j                        rt        d      t        |       }d }t        |      st        |      }d }t        |      st        |      }|#t        j                  ||      sd}t        |      |#t        j                  ||      sd}t        |      dd}|S )NrK  z3dtype of to_begin must be compatible with input aryz1dtype of to_end must be compatible with input aryc                    t        |      }t        |       }t        |      }|j                  }t        |      dkD  rt        j                  t        |      t        |      z   t        |      z   dz
  |      }t        |      }t        |      t        |      z   dz
  }	||d | t        j
                  |      |||	 |||	d  |S t        j                  t        |      t        |      z   |      }t        |      }||d | |||d  |S )Nr   r)   r  )r,  r   rE   ra   r   diff)
aryto_endto_beginstartr_  end	out_dtyper   	start_idxmid_idxs
             r&   np_ediff1d_implz#np_ediff1d.<locals>.np_ediff1d_implj  s    x(S!V$II	 s8a<((CJS1CH<q@!*,CE
I%j3s8+a/G#C
O%'WWS\C	'"CM 
	 ((CJS1)DCE
I#C
O!C	
O
r%   r  )
rT   r   r   r   r  r   r:  r   ra   can_cast)r>  r?  r@  ary_dtto_begin_dt	to_end_dtr   rF  s           r&   
np_ediff1drK  P  s     #u{{#cii/ !NOO
  $FK!(2I&v.	r{{;'GCS!!R[[F%CAS!!6 r%   c                      y r,   r$   r+  s    r&   _select_elementrM    r3  r%   c                 :    t        | dd       dk(  }|rd }|S d }|S )Nr|   r   c                 X    t        j                  d| j                        }| |d d  |d   S )Nr)   r  r   )ra   r0  r   )rd   r  s     r&   rI  z"_select_element_impl.<locals>.impl  s(    SYY/AAaDQ4Kr%   c                     | S r,   r$   r+  s    r&   rI  z"_select_element_impl.<locals>.impl  s    Jr%   )r   )rd   zerodrI  s      r&   _select_element_implrS    s.    C&!+E	 	r%   c                      y r,   r$   )dxr  s     r&   _get_drV    r3  r%   c                 ,    t        |       rd }|S d }|S )Nc                 ,    t        j                  |      S r,   ra   rr  r  rU  s     r&   rI  zget_d_impl.<locals>.impl  s    ::b>!r%   c                 R    t        j                  t        j                  |             S r,   )ra   r=  rr  rZ  s     r&   rI  zget_d_impl.<locals>.impl  s    772::a=))r%   r  )r  rU  rI  s      r&   
get_d_implr\    s    1~	"
 K	*Kr%   c                     t        | t        j                  t        j                  f      rt	        d      t        | t        j
                        r| j                  dk(  rt	        d      dd}|S )Nzy cannot be a scalarr   zy cannot be 0Dc                     t        j                  |       }t        ||      }|dt        dd       f   |dt        d d      f   z   dz  }t        j                  ||z  d      }t        |      }|S )N.r)   r@         @)ra   rr  rV  rN   r  rM  )r  r  rU  yarrdy_averet	processeds           r&   rI  znp_trapz.<locals>.impl  sm    zz!}1bMc5D>)*T#uT22F-GG3NffQY##C(	r%   NrW  )rT   r   r  r  r   r   r|   )r  r  rU  rI  s       r&   np_trapzrf    sW     !ellEMM23011	Au{{	#!*++
 Kr%   c                 ~   |j                   \  }}|t        |       k(  sJ ||k(  sJ |rGt        |      D ]8  }|dk(  r
d|dd|f<   t        j                  | |dd|dz
  f         |dd|f<   : yt        |dz
  dd      D ];  }||dz
  k(  r
d|dd|f<   t        j                  | |dd|dz   f         |dd|f<   = y)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)   Nr@  )r   rE   r2   ra   r  )r  r  
increasingr   r   rp  r.   s          r&   
_np_vanderri    s     99DAqA;;6M6q 	<AAvAqD	KK3q1q5z?;AqD			< q1ub"% 	<AAEzAqD	KK3q1q5z?;AqD			<r%   c                 X    | j                   dkD  rt        d      |dk  rt        d      y )Nr)   z.x must be a one-dimensional array or sequence.r   z#Negative dimensions are not allowed)r|   r}   )r  r  s     r&   _check_vander_paramsrk    s1    vvzIJJ1u>?? r%   c                 z   |d t         j                  fvr%t        |t         j                        st	        d      dfd	}dd}t        | t         j
                        r1t        | j                        }t        j                  |t              |S t        | t         j                  t         j                  f      r|S y )Nz,Second argument N must be None or an integerc                     |t        |       }t        | |       t        j                  t        |       t	        |      f      }t        | |||       |S r  )rE   rk  ra   r   r  ri  )r  r  rh  r   r   s       r&   np_vander_implz!np_vander.<locals>.np_vander_impl  sM    9AAQ" hhAA'u51aS)
r%   c                     |t        |       }t        j                  |       }t        ||       t        j                  t        |       t        |      f|j                        }t        ||||       |S r  )rE   ra   r0  rk  r   r  r   ri  )r  r  rh  x_arrr   s        r&   np_vander_seq_implz%np_vander.<locals>.np_vander_seq_impl  s]    9AAUA& hhAA'u{{;5!Z-
r%   r   )r   r3  rT   r  r   r   r	   r   ra   promote_typesr  rW   r  )r  r  rh  rn  rq  x_dtr   s         @r&   	np_vanderrt    s    uzz""!U]]+LMM
 !U[[!   s+	AU^^4	5!! 
6r%   c                     t        |t        j                  t        j                  f      st	        d      d }t        | t        j
                  t        j                  f      rd S |S )Nzshift must be an integerc                    t        j                  |       }t        j                  |j                  |j                        }|j
                  }t        |j                        D ]&  }||z   |j                  z  }||   |j
                  |<   ( |S r  )ra   rr  r   r   r   r   r2   r   )r-   shiftrd   r   arr_flatr.   r   s          r&   np_roll_implznp_roll.<locals>.np_roll_impl	  ss    jjmhhsyy		2 88sxx 	(Au9(C$QKCHHSM	( 
r%   c                 ,    t        j                  |       S r,   rY  )r-   rw  s     r&   r  znp_roll.<locals>.<lambda>#	  s    

1 r%   )rT   r   r  r  r   r  )r-   rw  ry  s      r&   np_rollr{  	  sO    eemmU]];<455
 !ellEMM23--r%      c                    d}|}| ||dz
     kD  r|S | |d   k  ry|dk  r'd}||k  r| ||   k\  r|dz  }||k  r	| ||   k\  r|dz
  S ||dz
  kD  r|dz
  }|dk  rd}| ||   k  r7| ||dz
     k  r'|dz
  }|t         kD  rg| ||t         z
     k\  rX|t         z
  }nN|dz
  S | ||dz      k  r|S | ||dz      k  r|dz   S |dz   }||t         z
  dz
  k  r| ||t         z      k  r	|t         z   }||k  r!|||z
  dz	  z   }| ||   k\  r|dz   }n|}||k  r!|dz
  S )Nr   r)   r@     rz   r{   )LIKELY_IN_CACHE_SIZE)keyrd   lengthguessiminimaxr.   imids           r&   binary_search_with_guessr  .	  s    DD S!_	s1v {&jSCF]FA &jSCF]1uvz
qy SZUQY19D ++3u';;<<33 19 UQYL S^#qy  qyV&::Q>?s5+?#?@@ #77D +t)*#d)!8DD + !8Or%   c                 v	   t        j                  |       }t        j                  |      }t        j                  |      }t        |      dk(  rt        d      t        |      t        |      k7  rt        d      |j                  dk(  r%t        j
                  |j                  |d   |      S t        j                  |j                  |      }|j                  }t        |      }	|d   }
||	dz
     }|	dk(  rd|d   }|d   }t        |      D ]J  }|j                  |   }||k  r|
|j                  |<   '||kD  r||j                  |<   <||j                  |<   L |S d}|	|k  rt        j                  |	dz
  |      }nt        j                  d|      }|j                  ryt        |	dz
        D ]h  }d||dz      ||   z
  z  }||dz      j                  ||   j                  z
  |z  }||dz      j                  ||   j                  z
  |z  }|d|z  z   ||<   j t        |      D ]  }|j                  |   }t        j                  |      r|}d}|d|z  z   |j                  |<   Bt        |||	|      }|d	k(  r|
|j                  |<   e||	k(  r||j                  |<   z||	dz
  k(  r||   |j                  |<   ||   |k(  r||   |j                  |<   |j                  r||   }ncd||dz      ||   z
  z  }||dz      j                  ||   j                  z
  |z  }||dz      j                  ||   j                  z
  |z  }|d|z  z   }|j                  |||   z
  z  ||   j                  z   }t        j                  |      rq|j                  |||dz      z
  z  ||dz      j                  z   }t        j                  |      r1||   j                  ||dz      j                  k(  r||   j                  }|j                  |||   z
  z  ||   j                  z   }t        j                  |      rq|j                  |||dz      z
  z  ||dz      j                  z   }t        j                  |      r1||   j                  ||dz      j                  k(  r||   j                  }|d|z  z   |j                  |<    |S )
Nr   array of sample points is empty#fp and xp are not of the same size.r)   
fill_valuer   r  rC  r  r@  )ra   rr  rE   r}   r   r   r   r   r2   r   r   r   r  r  )r  xpfpr   dzrU  dydreslenxlenxplvalrvalxp_valfp_valr.   x_valra  slopesinv_dxr   r   slopes                         r&   np_interp_impl_complex_innerr  s	  sw    
AB	BB	BB
2w!|:;;
2w#b'>??	ww!|wwrxxBqE??88BHHE*D77DGEa5Deai=DzAAt 	&AGGAJEv~#		!#		!%		!	&V KC  D=XXuqy7FXXau-F;;519% -bQi"Q%/01q5	A3v=1q5	A3v= 29,q		- t 0	0A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 zzURU]3bejj@88D> ::AE):;bQinnLDxx~"Q%**1q5	*F!!uzzzzURU]3bejj@88D> ::AE):;bQinnLDxx~"Q%**1q5	*F!!uzz#b4i/		!a0	0d Kr%   c                    t        j                  | t         j                        }t        j                  |t         j                        }t        j                  |t         j                        }t        |      dk(  rt	        d      t        |      t        |      k7  rt	        d      |j
                  dk(  r%t        j                  |j                  |d   |      S t        j                  |j                  |      }|j
                  }t        |      }	|d   }
||	dz
     }|	dk(  rd|d   }|d   }t        |      D ]J  }|j                  |   }||k  r|
|j                  |<   '||kD  r||j                  |<   <||j                  |<   L |S d}|	|k  r|dd  |d d z
  |dd  |d d z
  z  }nt        j                  d|      }t        |      D ]  }|j                  |   }t        j                  |      r||j                  |<   8t        |||	|      }|dk(  r|
|j                  |<   [||	k(  r||j                  |<   p||	dz
  k(  r||   |j                  |<   ||   |k(  r||   |j                  |<   |j
                  r||   }n||dz      ||   z
  ||dz      ||   z
  z  }||||   z
  z  ||   z   |j                  |<   t        j                  |j                  |         s||||dz      z
  z  ||dz      z   |j                  |<   t        j                  |j                  |         s_||   ||dz      k(  so||   |j                  |<    |S )Nr  r   r  r  r)   r  r@  )ra   rr  r   rE   r}   r   r   r   r   r2   r   r  r  )r  r  r  r   r  rU  r  r  r  r  r  r  r  r  r.   r  ra  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eai=DzAAt 	&AGGAJEv~#		!#		!%		!	&n K[  D=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)#(EBq1uI,=#>AE#JDIIaLxx		!-"Q%2a!e92D')!u		!G#	-J Kr%   c                 t  	 t        |d      r|j                  dkD  rt        d      t        |d      r|j                  dkD  rt        d      d}t        |      }t	        j
                  |t        j                        rt        |      t        |      }t	        j                  |t        j                        t	        j
                  t        j                        rt        	nt        		fd}	fd}t        | t        j                        r't        | t        j                        rt        |      |S |S )Nr|   r)   zxp must be 1Dzfp must be 1Dz:Cannot cast array data from complex dtype to float64 dtypec                      | ||      S r,   r$   r  r  r  r   r   s      r&   np_interp_implz!np_interp.<locals>.np_interp_implU
  s    QB&&r%   c                 4     | ||      j                   d   S r   )r   r  s      r&   np_interp_scalar_implz(np_interp.<locals>.np_interp_scalar_implX
  s    QB&++A..r%   )rS  r|   r   r  ra   r  r  result_typer   r  r  rT   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                     | j                   dk(  sJ | j                  \  }}t        j                  |df| j                        }t        |      D ]&  }t        j                  | |d d f         |z  ||df<   ( |S )Nr{   r)   r  r   )r|   r   ra   r   r   r2   r  )r-   r   rp  r   r.   s        r&   row_wise_averager  f
  ss    66Q;;77DAq
((Aq6
)C1X (FF1QT7Oa'AqD	( Jr%   c                    ||rd}nd}| j                   d   |z
  }t        |d      }| t        |       z  } t        j                  | t        j
                  | j                              }|t        j                  d|      z  }|S )Nr   r)   r  )r   r  r  ra   dotr   Tr}  )Xbiasddoffactre   s        r&   np_cov_impl_innerr  s
  s     |DD 771:D tS>D 	!	A 	q"''!##,A4	  AHr%   c                       y r,   r$   r$   r%   r&   _prepare_cov_input_innerr  
  r3  r%   c                 >    |d t         j                  fv rd }|S d }|S )Nc                 ^    t        j                  t        |             }|s|j                  }|S r,   )ra   
atleast_2dr'  r  )r   r  rowvarr   m_arrs        r&   r  z9_prepare_cov_input_impl.<locals>._prepare_cov_input_inner
  s%    MM(1+.ELr%   c                    t        j                  t        |             }t        j                  t        |            }|s<|j                  d   dk7  r|j                  }|j                  d   dk7  r|j                  }|j                  \  }}|j                  \  }}	||	k7  rt        d      t        j                  ||z   |f|      }
||
d |d d f<   ||
| d d d f<   |
S )Nr   r)   z$m and y have incompatible dimensionsr  )ra   r  r'  r   r  r}   r   )r   r  r  r   r  y_arrm_rowsm_colsy_rowsy_colsr   s              r&   r  z9_prepare_cov_input_impl.<locals>._prepare_cov_input_inner
  s    MM(1+.EMM(1+.E
 ;;q>Q&!GGE;;q>Q&!GGE"[[NFF"[[NFF !GHH ((FVOV4EBC#C
O$C!Jr%   r2  )r   r  r  r   r  s        r&   _prepare_cov_input_implr  
  s.    T5::	D $#5	4 $#r%   c                 b    | j                   dk(  r | j                  d   dk(  rd}t        |      y y )Nr{   r   r)   z2D array containing a single row is unsupported due to ambiguity in type inference. To use numpy.cov in this case simply pass the row as a 1D array, i.e. m[0].)r|   r   r)  )r   r   s     r&   _handle_m_dim_changer  
  s6    vv{qwwqzQ? 3	 '{r%   c                     | S r,   r$   r  s    r&   r  r  
  s    q r%   c                    t         j                  }t        | t        j                        rt        | j                        }|S t        | t        j                  t        j                  f      rt        |       }|S t        | t        j                  t        j                  f      rt               }| D ]?  }t        |d      r |D cg c]  }|j                  |       c} /|j                  |       A t        |      dkD  r+t        j                  |D cg c]  }t        |       c} }|S t        |      dk(  rt        |j!                               }|S c c}w c c}w )Nr  r)   )ra   r   rT   r   r   r	   r   r  r  rF   rW   setrS  addrE   rr  r   )
array_likearray_like_dtcoltypesr   rf   tys         r&   r  r  
  s   JJM*ekk* !1!12  
Ju}} =	> ,  
J =	>5 	"CsG$*-.Qa.S!		"
 x=1,,h.Ox|.OPM  ]a$X\\^4M / /Ps   EEc                    t        | t        j                        r*| j                  dkD  rt	        dj                  |            y t        | t        j                        ryt        | j                  d   t        j                        rQt        | j                  d   j                  d   t        j                        rdj                  |      }t	        |      y y y )Nr{   z{0} has more than 2 dimensionsr   )rT   r   r   r|   r   formatr  r  )r  namer   s      r&   check_dimensionsr  
  s    *ekk*??Q !A!H!H!NOO 	J	/jnnQ'8*..+//2ENNC6==dC$S)) D 9 
0r%   c                 |    t        j                  |       st        d      | t        |       z
  dk7  rt        d      y )Nz)Cannot convert non-finite ddof to integerr   zddof must be integral value)ra   r{  r}   r  )r  s    r&   _handle_ddofr  
  s<    ;;tDEEc$i1677 r%   c                     | S r,   r$   r  s    r&   r  r  
  s    a r%   c                 >     ||         ||       t        | |||      S r,   )r  )r   r  r  r   r  _DDOF_HANDLER_M_DIM_HANDLERs          r&   _prepare_cov_inputr  
  s%     1$#Aq&%88r%   c                 T   |d t         j                  fv }t        | t         j                        r| j                  dk(  r|S t        | t         j
                        r_t        d | j                   D              r|S t        | j                         dk(  r)t        | j                   d   t         j
                        r|S t        | t         j                  t         j                  f      r|S t        | t         j                        r*t        | j                  d   t         j                        s|ryy)Nr)   c              3   p   K   | ].  }t        |t        j                  t        j                  f       0 y wr,   )rT   r   r  r  ).0r  s     r&   	<genexpr>z)scalar_result_expected.<locals>.<genexpr>
  s,      / !ellEMM:; /s   46r   TF)r   r3  rT   r   r|   	BaseTuplerP  rE   r  r  r  r  )mandatory_inputoptional_inputopt_is_nones      r&   scalar_result_expectedr  
  s     T5::$66K/5;;/O4H4HA4M/5??3 /'--/ /O))*a/44Q7I""/ELL%--#@A/5>>2?..q15>>Br%   c                     t        j                  t        j                  |       dkD  t        j                  |       |       S rZ  )ra   r  fabssignr  s    r&   
_clip_corrr    s)    88BGGAJNBGGAJ22r%   c                 f    t        | j                        }t        | j                        }|d|z  z   S )NrC  )r  r   r   )r  r   r   s      r&   _clip_complexr    s-    affDaffD"t)r%   c                 .  	
 t        | d       t        |d       |d t        j                  fv rt        	n]t	        |t        j
                  t        j                  f      rt        	n,t	        |t        j                        rt        	nt        d      t        
t	        | t        j                        rt        
t        |       }t        |      }t        j                  ||t        j                         d	
fd	}	 	 d	
fd	}t#        | |      r|S |S )Nr   r  z)ddof must be a real numerical scalar typec           	      L   t        | |||      j                        }t        j                  t        j                  |j
                        dk(        rBt        j                  |j
                  d   |j
                  d   ft        j                        S t        |||      S )Nr   r  )	r  r  ra   r  r0  r   r   rD  r  )	r   r  r  r  r  r  r  r  r   s	         r&   np_cov_implznp_cov.<locals>.np_cov_impl<  s    q!VUD--//5ve} 	
 66"((177#q()77AGGAJ
3!&( ( %Qd33r%   c           	      .   t        | |||	      j                  	      }t        j                  t        j                  |j
                        dk(        rt        j                  }nt        |||      j                  d   }t        j                  |      S r   )	r  r  ra   r  r0  r   rD  r  r   )
r   r  r  r  r  r  variancer  r  r   s
          r&   np_cov_impl_single_variablez+np_cov.<locals>.np_cov_impl_single_variableF  sy    q!VT5--//5ve} 	
 66"((177#q()vvH(D$7<<Q?Hxx!!r%   NTFN)r  r   r3  _handle_ddof_noprT   r  r  r  r  r   _handle_m_dim_nopr   r  r  ra   r  r   r  )r   r  r  r  r  m_dty_dtr  r  r  r  r   s            @@@r&   np_covr    s     QQ ejj!!(dU]]EMM:;,Mekk*(MIJJ
 'N!U[[!- 1D1DNN4rzz2E4 BG)-
" a#**r%   c                     t        |       }t        |      }t        j                  ||t        j                        }|t        j                  k(  rt
        nt        dfd	}dd}t        | |      r|S |S )Nc                 (   t        j                  | ||      }t        j                  |      }t        j                  |j                        }t        |j                  d         D ]$  }||d d fxx   |z  cc<   |d d |fxx   |z  cc<   &  |      S r   )ra   covdiagsqrtr   r2   r   )r  r  r  re   ra  stddevr.   clip_fns          r&   np_corrcoef_implz%np_corrcoef.<locals>.np_corrcoef_impld  s    FF1a GGAJqwwqz" 	AadGvGadGvG	 qzr%   c                 :    t        j                  | ||      }||z  S r,   )ra   r  )r  r  r  re   s       r&    np_corrcoef_impl_single_variablez5np_corrcoef.<locals>.np_corrcoef_impl_single_variableo  s    FF1a 1ur%   NT)r  ra   r  r   
complex128r  r  r  )	r  r  r  rs  r  r   r  r  r  s	           @r&   np_corrcoefr  X  sg     1D1DNN4rzz2E	 a#//r%   c                     t        | t        j                  t        j                  f      }t	        |       r|sd }|S ddfd}|S )Nc                 
   t        j                  |       }|j                  dk(  r%t        j                  dt        j
                        S t        j                  t        j                  t        j                  |                  S )Nr$   )r   r)   r  )	ra   rr  r   r  r   r4   rA  vstackr  r(  s     r&   rI  znp_argwhere.<locals>.impl  sO    **Q-CyyBxxejj99<<		"**S/ :;;r%   )r   r   )r)   r   c                     | 0t        |       r%t        j                  t        j                        S t        j                  t        j                        S r  )r  ra   r  r   r4   )r-   falseishtrueishs    r&   rI  znp_argwhere.<locals>.impl  s8    }axxuzz::xx

;;r%   )rT   r   r  r  r
   )r-   
use_scalarrI  r  r  s      @@r&   np_argwherer  }  sL    
 Aemm<=J:	< K 	< Kr%   c                 ,    t        |       rd }|S d }|S )Nc                     t        j                  |       }t        j                  t        j                  |            d   S r   )ra   rr  r  rB  r(  s     r&   rI  znp_flatnonzero.<locals>.impl  s+    **Q-C::bhhsm,Q//r%   c                     | t        |       rdg}nt        d      D cg c]  }| }}t        j                  |t        j
                        S c c}w )Nr   r  )r  r2   ra   r0  r   r4   )r-   r@   r  s      r&   rI  znp_flatnonzero.<locals>.impl  sE    }as#(8,a,,88D

33 -s   	Ar  )r-   rI  s     r&   np_flatnonzeror	    s$     	0 K	4 Kr%   c                    | j                   dk(  rA| j                  d   }| j                  d   }d|z   }|r	||z  }||fS |t        ||      z  }||fS t        j                  | j                        }t        j
                  t        j                  |      dk(        st        d      dt        j                  |d d       j                         z   }|j                         }||fS )Nr{   r   r)   z/All dimensions of input must be of equal lengthr@  )r|   r   r   ra   r0  rP  r=  r}   r   r  r   )r-   wrapr   rp  steprB  r   s          r&   _fill_diagonal_paramsr    s    vv{GGAJGGAJ1ua%C 9 c!Qi-C 9 !vvbggen)*NOOBJJuSbz*//11jjl9r%   c                 d    t        | |      \  }}t        d||      D ]  }|| j                  |<    y r   )r  r2   r   )r-   r   r  rB  r  r.   s         r&   _fill_diagonal_scalarr    s7    %a.IC1c4  q	r%   c                     t        | |      \  }}d}t        |      }t        d||      D ]  }||   | j                  |<   |dz  }||z  }  y r  )r  rE   r2   r   )r-   r   r  rB  r  ctrv_lenr.   s           r&   _fill_diagonalr    s[    %a.IC
CHE1c4  Hq	qEkr%   c                 :   t        j                  | j                        }|j                  }|j                  }t        j
                  t        j                  |             s0t        j
                  ||k        st        j
                  ||kD        rt        d      y Nz'Unable to safely conform val to a.dtype)ra   iinfor   r   r  r  r{  r}   )r-   r   r  v_minv_maxs        r&   _check_val_intr    sp    HHQWWEIIEIIE 
vvr{{3 BFF3;$7266#+;NBCC <Or%   c                    t        j                  | j                        }|j                  }|j                  }|t        j
                  |         }t        j                  ||k        st        j                  ||kD        rt        d      y r  )ra   finfor   r   r  r{  r  r}   )r-   r   r  r  r  finite_valss         r&   _check_val_floatr    sn    HHQWWEIIEIIE bkk#&'K	vvkE!"bff[5-@&ABCC 'Br%   c                     | S r,   r$   r  r  s     r&   r  r    s    1 r%   c                      y r,   r$   r  s    r&   r'  r'    r3  r%   c                    t        | t        j                        rd S t        | t        j                  t        j                  f      rd S t        | t        j
                  t        j                  f      rt        |       fdS y )Nc                     | S r,   r$   r  s    r&   r  z_asarray_impl.<locals>.<lambda>  s     r%   c                 ,    t        j                  |       S r,   r/  r  s    r&   r  z_asarray_impl.<locals>.<lambda>  s    ! r%   c                 4    t        j                  | g      S r  r/  r  r  s    r&   r  z_asarray_impl.<locals>.<lambda>  s    1#R0 r%   )rT   r   r   r  rW   r  r  r	   r%  s    @r&   _asarray_implr&    s_    !U[[!	A4	5$$	Aemm4	5a[00 
6r%   c                    | j                   dkD  rt        | j                  t        j                        rt
        n1t        | j                  t        j                        rt        nt        dfd	}dfd	}t        |t        j                  t        j                  t        j                  f      r|S t        |t        j                  t        j                  t        j                  f      r|S y d| j                   z  }t        |      )Nr)   c                 d    t        |      j                         } | |       t        | ||       y r,   )r'  ru  r  r-   r   r  tmpvalcheckers       r&   scalar_implz%np_fill_diagonal.<locals>.scalar_impl
  s+    c]**,FAv!!S$/r%   c                 d    t        |      j                         } | |       t        | ||       y r,   )r'  ru  r  r)  s       r&   non_scalar_implz)np_fill_diagonal.<locals>.non_scalar_impl  s+    c]**,FAv1fd+r%   z4The first argument must be at least 2-D (found %s-D)F)r|   rT   r   r   r  r  r  r  
_check_nopr  rW   r  r   r   )r-   r   r  r,  r.  r   r+  s         @r&   np_fill_diagonalr1    s     	vvz aggu}}-$G-&G G	0
	,
 cEKKFGekk5>>5;;GH"" I EqvvM#r%   c                 "    d| j                   fz  S )Nzllvm.rint.f%d)r   )tps    r&   _np_round_intrinsicr4    s    bkk^++r%   c                       ||      }d }||fS )Nc                 :   |\  }|j                   d   }| j                  |      }|j                  }t        j                  j                  ||g      }t        j                  ||t        |            }	|j                  |	|f      }
t        | ||j                  |
      S r   )r:   r0   modulellvmliteirFunctionTyper   get_or_insert_functionr4  callr   rn   )rq   r8   rr   r:   r   r3  lltyr7  fntyr  rs   s              r&   rD   z _np_round_float.<locals>.codegen&  s    XXa[%%b){{''tf5++FD,?,CEll2v&!'7COOSIIr%   r$   )	typingctxr   rr   rD   s       r&   _np_round_floatr@  "  s    
c(C	J <r%   c                 $   t        j                  |       st        j                  |       r| S |dk\  rG|dkD  rd|dz
  z  }d}nd|z  }d}| |z  |z  }t        j                  |      r| S t        |      |z  |z  S d| z  }| |z  }t        |      |z  S )Nr      g      $@gMDrW  )r~  rY  r  r@  )r  ndigitspow1pow2r  s        r&   round_ndigitsrF  4  s    zz!}

1 !|R< GbL)DD7?DDX::a=H"T)T11 !Hq!D((r%   c                 L   t        |       st        d      t        |t        j                        st        |      sd}t        |      t        | t        j                  t        j                  t        j                  f      rrt        |      r`t        | t        j                        rd	d}|S t        | t        j                        rd	d}|S t        | t        j                        rd	d}|S d	d}|S y t        | t        j                        rt        |      rd	d}|S d	d}|S y )
Nz#The argument "a" must be array-likez5The argument "out" must be an array if it is providedc                 :    |dk(  rt        |       S t        | |      S r   )r@  rF  r-   decimalsr   s      r&   rI  zimpl_np_round.<locals>.impl\  s!    1}.q11,Q99r%   c                 :    |dk(  r| S t        t        | |            S r   )r  rF  rI  s      r&   rI  zimpl_np_round.<locals>.implc  s     1} "=H#=>>r%   c                     |dk(  r+t        | j                        }t        | j                        }n,t        | j                  |      }t        | j                  |      }t	        ||      S r   )r@  r   r   rF  complex)r-   rJ  r   r   r   s        r&   rI  zimpl_np_round.<locals>.implj  sR    1}.qvv6.qvv6,QVVX>,QVVX>"4..r%   c                 8    t        j                  | |      |d<   |S r   )ra   roundrI  s      r&   rI  zimpl_np_round.<locals>.implt  s    !X.A
r%   c                 Z    t        j                  |       }t        j                  | ||      S r,   )ra   r  rO  rI  s      r&   rI  zimpl_np_round.<locals>.implz  s#    mmA&xx8S11r%   c                     | j                   |j                   k7  rt        d      t        j                  |       D ]  \  }}t        j                  ||      ||<     |S )Nzinvalid output shape)r   r}   ra   r  rO  )r-   rJ  r   r  r   s        r&   rI  zimpl_np_round.<locals>.impl  sS    77cii'$%;<<"$.."3 9JE3!##x!8CJ9
r%   r
  )	r
   r   rT   r   r   r   r  r  r  )r-   rJ  r   r   rI  s        r&   impl_np_roundrR  O  s     A?@@sEKK(K,<E#!ekk5==%--@As!U[[):
 Au}}-?
 Au}}-/  K . 
Au{{	#s2 K K 
$r%   c                     t        | t        j                        rd }|S t        | t        j                        rd }|S t	        d      )Nc                 f    | dk(  rd} | t         j                  z  } t        j                  |       | z  S )Nr  g#B;)ra   pisinr  s    r&   rI  zimpl_np_sinc.<locals>.impl  s-    DyJA66!9q= r%   c                     t        j                  |       }t        j                  |       D ]  \  }}t        j                  |      ||<    |S r,   )ra   r  r  sinc)r  r   r  r   s       r&   rI  zimpl_np_sinc.<locals>.impl  sB    --"C nnQ/ *
sWWS\E
*Jr%   z,Argument "x" must be a Number or array-like.)rT   r   r  r   r   r  s     r&   impl_np_sincrY    sB    !U\\"	!
 	Au{{	#	
 KLLr%   c                    t        dt        j                  z        t        | t        j
                        rdfd	}|S t        | t        j                        rY| j                  }t        |t        j                        r|j                  nt        |t        j                        r|ny dfd	}|S t        d|        )N   c                     |r-t        j                  | j                  | j                        z  S t        j                  | j                  | j                        S r,   )ra   arctan2r   r   )r  degdeg_mults     r&   rI  zov_np_angle.<locals>.impl  s=    zz!&&!&&1H<<zz!&&!&&11r%   c                     t        j                  |       }t        j                  |       D ]  \  }}t        j                  ||      ||<     |S r  )ra   r  r  angle)r  r^  r   r  r   	ret_dtypes        r&   rI  zov_np_angle.<locals>.impl  sH    --3C nnQ/ 0
sXXc3/E
0Jr%   z6Argument "z" must be a complex or Array[complex]. Got r/  )r~  ra   rU  rT   r   r  r   r   r  underlying_floatr  r   )r  r^  rI  r   r_  rb  s       @@r&   ov_np_anglerd    s    S255[!H !U\\"	2
 	Au{{	#eU]]+..Iu{{+I	
  778c; < 	<r%   zarray.nonzeroc                 ~   |j                   d   }|j                  }|j                  }|j                  } t	        |      | ||d         }t        j                  ||j                        }	t        j                  ||j                        }
|j                  }|j                  }| j                  t        j                  d      }| j                  t        j                  d      }t        j                  ||      }t        j                  ||	|j                         5 }t        j"                  | |||	|
||      }t%        | |||      }| j'                  ||j                  |      }|j)                  |      5  |j+                  |j-                  |j/                  |      |      |       d d d        d d d        |j/                  |      f}t1        |      D cg c]  }t3        | |||      j5                           }}|D cg c]  } t	        |      | ||       }}|D cg c]  }|j                   }}t        j                  ||      }t        j                  ||	|j                         5 }t        j"                  | |||	|
||      }t%        | |||      }| j'                  ||j                  |      }|j)                  |      5  |s|f}|j/                  |      }t1        |      D ]3  }t        j"                  | |||   |dd|g      }t7        | ||||   |       5 |j+                  |j-                  ||      |       d d d        d d d        | j9                  ||j                  |      }t;        | ||j                  |      S # 1 sw Y   xY w# 1 sw Y   xY wc c}w c c}w c c}w # 1 sw Y   oxY w# 1 sw Y   sxY w)Nr   r)   r$   C)r:   rn   r   r  r   r   unpack_tupler   stridesr@   layoutr3   r   r4   alloca_once_value	loop_nestr   get_item_pointer2r   is_trueif_thenstorer  loadr2   r   	_getvaluer   
make_tupler   )rq   r8   rr   r:   arytyr   outarytynoutsr>  r   rh  r@   ri  rg   r  r  indicesptrr   nz	out_shaper.   outsr   outarys	out_datasr  curr<   s                                r&   array_nonzeror~    sg    HHQKEOOE{{HKKE
*U
GWd1g
6C  #))4E""7CKK8G88D\\F 

A.D


uzz1
-C%%gt4E			7E499	5 H''$w(.9%5__Wekk37__R  	HMM'++gll5&93?G	HH e$&I5\# 7GXyAKKM #D #FJKs#z(#GWc:KGK%,-c-I- %%gt4E			7E499	5 8''$w(.9%5__Wekk37__R  	8',,u%C5\ H//)A,09203cU< 7GXwqz3G	H
 MM'++c3/7	88$ 

Wcoot
<CGWcoosCC?	H 	HH H#K-	8 	88 8s]   AN12M>#N#N;NN"'AN3?A:N'9N3>N	NN'N0	,N33N<c                       fd}|S )Nc                     t        j                  |      j                        }t        j                  |      j                        }| r|S |S r,   )ra   rr  r  )	conditionr  r  x_y_r   s        r&   rI  z)_where_zero_size_array_impl.<locals>.impl  s@    ZZ]!!%(ZZ]!!%(r&B&r%   r$   )r   rI  s   ` r&   _where_zero_size_array_implr    s    ' Kr%   c                 ^    t        j                  |       D ]  \  }}|r||   n||   ||<    |S r,   )ra   r  )condr  r  rs   r   re   s         r&   _where_generic_inner_implr    s8    ..& +Q1S6AcFC+Jr%   c                     | j                   }|j                   }|j                   }|j                   }t        | j                        D ]  }||   r||   n||   ||<    |S r,   )r   r2   r   )	r  r  r  rs   cfxfyfrfr.   s	            r&   _where_fast_inner_implr  
  s\    	B	
B	
B	B499 *A1BqE1*Jr%   c                 *     dhdhfv  fd}|S )Nrf  Fc                 4   t        j                  |       t        j                  |      t        j                  |      }}}t        j                  |j                  |j                  |j                        }t        j                  ||      }t        j                  ||      }t        j                  ||      }	dk(  r(t        j
                  |d d d         j                  }
nt        j
                  |      }
rt        |||	|
      S t        |||	|
      S )Nr  r@  r  )	ra   rr  r  r   r  r   r  r  r  )r  r  r  cond1x1y1r   cond_r  r  rs   r   ri  use_faster_impls              r&   rI  z!_where_generic_impl.<locals>.impl  s    

9-rzz!}bjjm2r##EKK288Du-__R'__R'S=((52;e466C((5.C)%R==,UBC@@r%   r$   )r   ri  rI  r  s   `` @r&   _where_generic_implr    s"    #.OA" Kr%   c                 <    t        |       sd}t        |      d }|S )N+The argument "condition" must be array-likec                 H    t        j                  |       j                         S r,   )ra   rr  r  )r  s    r&   where_cond_none_nonez)ov_np_where.<locals>.where_cond_none_none2  s    zz)$,,..r%   )r
   r   )r  r   r  s      r&   ov_np_wherer  ,  s%    I&;S!!/r%   c                    t        |       sd}t        |      t        |      st        |      rt        d      t        ||fd      D ],  \  }}t        |      rd}t        |j	                  |             t        | t        j                        }t        |t        j                        }t        |t        j                        }|rt        |      }	t        |      }
t        j                  |	|
      }d }t        | ||fD cg c]
  } ||       c}      }|rt        |      S | j                  }|r=|r;|j                  |j                  cxk(  r| j                  k(  rn n|j                  }nd}t        ||      S d }|S c c}w )Nr  z"Argument "x" or "y" cannot be Noner  z0The argument "{}" must be array-like if providedc                     t        | t        j                        xs+ t        | t        j                        xr | j                  dk(  S r   )rT   r   r  r   r|   )args    r&   check_0_dimz$ov_np_where_x_y.<locals>.check_0_dimY  s7    c5<<0 @3,>Q@r%   r[  c                     t        j                  t        j                  |       t        j                  |      t        j                  |            S r,   )ra   r  rr  )r  r  r  s      r&   rI  zov_np_where_x_y.<locals>.implh  s.    88BJJy12::a="**Q-PPr%   )r
   r   r   zipr  rT   r   r   r  ra   rr  rP  r  ri  r  )r  r  r  r   r  r  cond_arrrp  r  rs  r  r   r  r-   special_0_caseri  rI  s                    r&   ov_np_where_x_yr  7  s\   I&;S!! 1~QABB!Q, 3	T$DC D!1223
 )U[[1Hq%++&Eq%++&Eq!q!  t,	@ y!Q6GHk!nHI.u55!!Uxx1887y'7'77"5&11	Q Is   Fc                     d }|S )Nc                     | j                   S r,   )r   r?  s    r&   np_real_implznp_real.<locals>.np_real_implo      xxr%   r$   )r   r  s     r&   np_realr  m       r%   c                     d }|S )Nc                     | j                   S r,   )r   r?  s    r&   np_imag_implznp_imag.<locals>.np_imag_implw  r  r%   r$   )r   r  s     r&   np_imagr  u  r  r%   c                 B    t        | t        j                        sy d }|S )Nc                 F    t        j                  |       D ]	  }||k(  s	 y yr   )ra   rb   )rd   r  r  s      r&   np_contains_implz%np_contains.<locals>.np_contains_impl  s(    3 	ACx	 r%   r   )rd   r  r  s      r&   np_containsr    s     c5;;' r%   c                 \    t        |       st        d      t        |      rdd}|S dd}|S )Nz3The argument to np.count_nonzero must be array-likec                 \    t        j                  |       }t        j                  |dk7        S r   )ra   rB  r  r-   rY   arr2s      r&   rI  znp_count_nonzero.<locals>.impl  s"    88A;D66$!)$$r%   c                 n    | j                  t        j                        }t        j                  ||      S )N)rY   )r  ra   r   r  r  s      r&   rI  znp_count_nonzero.<locals>.impl  s%    88BHH%D66$T**r%   r,   )r
   r   r   )r-   rY   rI  s      r&   np_count_nonzeror    s6    AOPP4	% 	+ r%   c                     | S r,   r$   r  s    r&   r  r    s     r%   c                 ,    t        j                  |       S r,   rY  r  s    r&   r  r    s    

1 r%   c                    t        | t        j                  t        j                  f      st	        d      t        |t        j                  t        j                  t        j
                  f      r]t        |t        j
                        rt        n5t        |j                  t        j                        st	        d      t        fd}|S t        |t        j                        st	        d      d }|S )Nz)arr must be either an Array or a Sequencezobj should be of Integer dtypec                     t        j                  t        j                  |             } | j                  }t        j                  |t         j
                        } |      }d||<   | |   S )Nr  F)ra   rB  rr  r   onesr   )rd   r8  r  keephandlers       r&   np_delete_implz!np_delete.<locals>.np_delete_impl  sR    ((2::c?+CA771BHH-D#,CDIt9r%   c                     t        j                  t        j                  |             } | j                  }|}|| k  s||k\  rt	        d      |dk  r||z  }t        j
                  | d | | |dz   d  f      S )Nz"obj must be less than the len(arr)r   r)   )ra   rB  rr  r   
IndexErrorconcatenate)rd   r8  r  poss       r&   np_delete_scalar_implz(np_delete.<locals>.np_delete_scalar_impl  sw    ((2::c?+CACqbC1H !EFF aq>>3t9c#'(m"<==r%   )
rT   r   r   r  r   	SliceTypenp_delete_handler_isslicer   r  np_delete_handler_isarray)rd   r8  r  r  r  s       @r&   	np_deleter    s    
 cEKK89EFF#U^^U__EFcEOO-/Gcii7!"BCC/G	  #u}}->??	> %$r%   c                 b    t        | t        j                        r| j                  dk(  ry dd}|S )Nr   c                    |dk(  r| j                         S |dk  rt        d      | j                  d   }| j                  d d t        ||z
  d      fz   }t	        j
                  || j                        }|j                  dk(  r|S | j                  d|f      }|j                  d|j                  d   f      }t	        j
                  || j                        }t        |j                  d         D ]m  }t        |dz
        D ]  }	|||	dz   f   |||	f   z
  ||	<    t        d|      D ])  }
t        ||
z
  dz
        D ]  }	||	dz      ||	   z
  ||	<    + |d ||z
   ||<   o |S )Nr   z"diff(): order must be non-negativer@  r)   )
r  r}   r   r  ra   r   r   r   rC  r2   )r-   rp  r   ry  r   a2out2workmajorr.   niters              r&   	diff_implznp_diff_impl.<locals>.diff_impl  s}   6668Oq5ABBwwr{GGCRLCq!$4#66	hhy!''*88q=J YYDz"{{B		"./xxagg&288A;' 		*E4!8_ :UAE\*Rq\9Q: q! 4te|a/0 4A"1q5kDG3DG44 yq/DK		* 
r%   rP  )rT   r   r   r|   )r-   rp  r  s      r&   np_diff_implr    s*    a%1> r%   c                     t        |       rt        |      st        d      t        j                  t        j                  f}t        | |      rt        ||      rd }|S d }|S )Nz3Both arguments to "array_equals" must be array-likec                     | |k(  S r,   r$   )a1r  s     r&   rI  znp_array_equal.<locals>.impl  s    8Or%   c                     t        j                  |       }t        j                  |      }|j                  |j                  k(  rt        j                  ||k(        S yr   )ra   rr  r   rP  )r  r  r-   rm  s       r&   rI  znp_array_equal.<locals>.impl  sA    

2A

2Aww!''!vva1f~%r%   )r
   r   r   r  r  rT   )r  r  acceptedrI  s       r&   np_array_equalr    s]     R %5b%9OPPu||,H"hJr8$<	 K	 Kr%   c                     t        |       st        |      st        d      t        |t        j                  t
        f      st        d      dd}|S )Nz.intersect1d: first two args must be array-likez5intersect1d: argument "assume_unique" must be booleanc                 h   t        j                  |       } t        j                  |      }|s+t        j                  |       } t        j                  |      }n | j                         } |j                         }t        j                  | |f      }|j                          |dd  |d d k(  }|d d |   }|S )Nr)   r@  )ra   rr  r  rB  r  sort)ar1ar2assume_uniqueauxr  int1ds         r&   np_intersects1d_implz0jit_np_intersect1d.<locals>.np_intersects1d_impl  s    jjojjo))C.C))C.C))+C))+Cnnc3Z(
12w#cr("CRr%   r/  r
   r   rT   r   r  r  )r  r  r  r  s       r&   jit_np_intersect1dr    sU    
 S!%5c%:JKKmemmT%:; E F 	F   r%   c                     t        |t        j                        r*|j                  dk7  rt	        dj                  |             y t        |t        j                        st	        dj                  |             y )Nr)   z${0}(): input should have dimension 1z+{0}(): input should be an array or sequence)rT   r   r   r|   r   r  r  )	func_nameseqs     r&   validate_1d_array_liker  -  si    #u{{#88q= !G"(&"35 5  U^^,J$fY/1 	1 -r%   c                 x   t        d|        t        | j                  t        j                        sy t        |d       |d t        j                  fvr5t        d|       t        j                  t        d        t        d        n(t        j                  t        d        t        d        dfd	}|S )	Nbincount	minlengthc                 H    t        |       t        |      k7  rt        d      y )Nz7bincount(): weights and list don't have the same length)rE   r}   r-   r  r  s      r&   validate_inputsz$np_bincount.<locals>.validate_inputsF  s)    1vW%  "3 4 4 &r%   c                 $    | |xx   ||   z  cc<   y r,   r$   r   r   r   r  s       r&   
count_itemznp_bincount.<locals>.count_itemL  s    H$Hr%   c                      y r,   r$   r  s      r&   r  z$np_bincount.<locals>.validate_inputsS  s    r%   c                     | |xx   dz  cc<   y rZ  r$   r  s       r&   r  znp_bincount.<locals>.count_itemW  s    HMHr%   c                 V    
| ||       |dk  rt        d      t        |       }|dkD  r| d   nd}t        d|      D ]$  }| |   dk  rt        d      t        || |         }& t        |dz   |      }t	        j
                  |	      }t        |      D ]  } ||| |   |        |S )Nr   z 'minlength' must not be negativer@  r)   z/bincount(): first argument must be non-negative)r}   rE   r2   r  ra   r  )r-   r  r  rp  rO  r.   
out_lengthr   r  rC  r  s           r&   bincount_implz"np_bincount.<locals>.bincount_impl[  s    7I.q=?@@FA!2q! 	%Atax  "0 1 1qt$E		% I.
hhz9-q 	.AsAqtW-	.
r%   r   )r  rT   r   r   r  r   r3  ra   r   r   r4   )r-   r  r  r  r  rC  r  s       @@@r&   np_bincountr  7  s    :q)aggu}}-Y,tUZZ((z73 JJ			4 
	4
 
	% 
	% JJ			 
	 
	 
	& r%   c                 8   t        j                  | j                        rt        j                  |j                        rwt        j                  | j                        rt        j                  |j                        S t        j                  |j                        ry| j                  |j                  k  S yt        j                  |j                        ryt        j                  | j                        r9t        j                  |j                        r| j                  |j                  k  S yt        j                  |j                        ry| j                  |j                  k  ry| j                  |j                  k(  r| j                  |j                  k  S yr   )ra   r  r   r   r  s     r&   less_than_or_equal_complexr  u  s   	xx88AFFxxxx''88AFF#66QVV++ 88AFFxx88AFF#66QVV++ 88AFF#vv#166) vv// r%   c                     t        | t              st        |t              rt        | |      S t        |t              rt	        j
                  |      ry| |k  S r  )rT   rM  r  r~  ra   r  r  s     r&   _less_than_or_equalr    sC    !WAw!7)!Q//	Au	88A;6Mr%   c                     t        | t              st        |t              rt        | |      S t        |t              rt	        | |      S | |k  S r,   )rT   rM  less_than_complexr~  less_than_floatr  s     r&   
_less_thanr    sB    !WAw!7 A&&	Au	q!$$q5Lr%   c                 d    t        j                  |       ryt        j                  |      ry| |k  S r  )ra   r  r  s     r&   _less_then_datetime64r     s)     
xx{	xx{q5Lr%   c                     t        ||        S r,   )r   r  s     r&   _less_then_or_equal_datetime64r    s    $Q***r%   c                       fd}|S )Nc                 d    ||k  r'|||z
  dz	  z   }| |   } ||      r|dz   }n|}||k  r'||fS rZ  r$   )r-   key_valr  r7  rE  mid_valcmps         r&   rI  z_searchsorted.<locals>.impl  sW    'G"3!9:GjG7G$!A+!  r%   r$   )r  rI  s   ` r&   _searchsortedr    s    	  Kr%   leftrightc                     |t         v sJ | j                  dv rt        }t        }nt        }t
        }|dk(  rt        |      }|}nt        |      }|}t        |      t        |      fS )NmMr	  )VALID_SEARCHSORTED_SIDEScharr   r  r  r  r  r   )np_dtypesider<  le_impl_cmps         r&    make_searchsorted_implementationr    sl    ++++}}"+ v~b!b!E"$4T$:::r%   c                    t        |d|      }|t        vrt        d|       t        |t        j
                  t        j                  f      rt        |j                        }nt        |      }t        j                  t        | j                        |      }t        ||      \  t        |t        j
                        r	dfd	}|S t        |t        j                        rdd}|S dfd	}|S )NrV   z Invalid value given for 'side': c                    t        j                  |j                  t         j                        }|j                  d   }d}t        |       }t        |j                        D ]\  }|j                  |   } 	||      rt        |       }n!d}|t        |       k  r|dz  }nt        |       }|} 
| |||      \  }}|||<   ^ |j                  |j                        S )Nr  r   r)   )	ra   r   r   r4   r   rE   r2   rC  r   )r-   rf   r  r   last_key_valr  r7  r.   r  r  r  s            r&   rI  zsearchsorted.<locals>.impl  s    ((1661C66!9LG!fG166] !&&)g.!!fGGQ'1"%a&&#(GWg#F  A!  ;;qww''r%   c                 \    t        j                  |      }t        j                  | ||      S )Nr  )ra   rr  searchsorted)r-   rf   r  s      r&   rI  zsearchsorted.<locals>.impl  s"    

1A??1ad33r%   c                 6     | |dt        |             \  }}|S r   )rE   )r-   rf   r  rr>   r  s        r&   rI  zsearchsorted.<locals>.impl  s     Aq#a&)DAqHr%   r	  )r   r  r   rT   r   r   r  r	   r   ra   rr  r  )	r-   rf   r  side_valv_dtnp_dtrI  r  r  s	          @@r&   r  r    s    t_d3H//  @
KLL!ekk5>>23 {Xagg.5E25(CKE4!U[[!	(> K 
Au~~	&	4 K	 Kr%   c                     t        | t        j                        r'| j                  t        j                  v rt        d      t        d        dfd	}|S )Nzx may not be complexc                 t   t        |       dk(  ry| d   }d}|t        |       k  r$| |   |k(  r|dz  }|t        |       k  r	| |   |k(  r|t        |       k(  ry| |   }||k  r,t        |dz   t        |             D ]  }|}| |   }||kD  s y yt        |dz   t        |             D ]  }|}| |   }||k  s y y)Nr   r)   r@  )rE   r2   )bins
last_valuer.   
next_values       r&   _monotonicityz"np_digitize.<locals>._monotonicity$  s     t9> !W
#d)mQ: 5FA #d)mQ: 5 D	>!W

"1q5#d), '
!!W

*	
  1q5#d), '
!!W

*	
 r%   c                 T    |      }|dk(  rt        d      |rG|dk(  r*t        |      t        j                  |d d d   | d      z
  S t        j                  || d      S |dk(  r*t        |      t        j                  |d d d   | d      z
  S t        j                  || d      S )Nr   z3bins must be monotonically increasing or decreasingr@  r	  r  r
  )r}   rE   ra   r  )r  r#  r
  monor&  s       r&   digitize_implz"np_digitize.<locals>.digitize_implI  s    T"19E 
 rz4y2??4":qv#NNNtQV<<rz4y2??4":qw#OOOtQW==r%   r/  )rT   r   r   r   complex_domainr   r   )r  r#  r
  r)  r&  s       @r&   np_digitizer+    sP     !U[[!agg1E1E&E011" "H>. r%   c                     t        |t        t        j                  f      r-|d t        j                  fv rt        d      dfd	}|S dd}|S dd}|S )Nr|  c                     } }t        j                  |       D ]!  }|j                         }||kD  r|}||k  s |}# t        j                  | |||f      S r,   )ra   rb   rc   	histogram)r-   r#  r2   bin_minbin_maxr   rf   r|  s          r&   histogram_implz$np_histogram.<locals>.histogram_implo  sc    $IIaL $D		A{"#{"#$ ||Atgw-?@@r%   c                    |dk  rt        d      |\  }}||k  st        d      t        j                  |t        j                        }||kD  r|||z
  z  }t        j                  |       D ]h  }|j                         }t        j                  ||z
  |z        }	d|	cxk  r|k  rn n|t        |	      xx   dz  cc<   S||k(  sY||dz
  xx   dz  cc<   j t        j                  |||dz         }
||
fS )Nr   z0histogram(): `bins` should be a positive integerz;histogram(): max must be larger than min in range parameterr)   )
r}   ra   r  r4   rb   rc   r~  r  r  linspace)r-   r#  r2   r/  r0  hist	bin_ratior   rf   rm  
bins_arrays              r&   r1  z$np_histogram.<locals>.histogram_impl{  s    19$ &8 9 9#( ')$ &> ? ? xxbgg.W$ $'(9 :I "		! 0 IIK JJGy'@A=D= QLA-L'\ Na/N0  [['4!8D
Z''r%   c                    t        |      dz
  }t        |      D ]  }||   ||dz      k  rt        d       |d   }||   }t        j                  |t        j
                        }|dkD  rrt        j                  |       D ]Z  }|j                         }	||	cxk  r|k  sn !d}
|dz
  }|
|k  r!|
|z   dz   dz	  }|	||   k  r|dz
  }n|}
|
|k  r!||
xx   dz  cc<   \ ||fS )Nr)   z-histogram(): bins must increase monotonicallyr   )rE   _ranger}   ra   r  r4   rb   rc   )r-   r#  r2   nbinsr.   r/  r0  r4  r   rf   lohir_  s                r&   r1  z$np_histogram.<locals>.histogram_impl  s   IMEE] 6Aw$q1u+-$ &5 6 66 1gG5kG88E277+DqyIIaL "D		A"a272 BBr'  "Bw{q0tCy=!$qB!$B r' HMH!"$ :r%   r  N)rT   r  r   r  r3  r~  )r-   r#  r2   r1  r|  s       @r&   np_histogramr=  f  s_    $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@  rB  rC  r?  r  rF  r   rD  rA  nexpnmantrM  rN  rK  bitsr  )r   r  rR  r  c           	         	 t        | d|       }t        |      }	  ||      }t        |D cg c]  }t        ||       c}      	t        	fd       }|S # t        $ r Y y w xY wc c}w )Nr   c                       S r,   r$   )r  	containerr@   s    r&   rI  z!generate_xinfo_body.<locals>.impl  s    $r%   )r   r	   r}   rJ  r   )
r  np_funcrU  attrnbtyr  r  r  rI  r@   s
     `      @r&   generate_xinfo_bodyrY    su    3%D~HH .A'!Q-./D   K   /s   A A'	A$#A$c                 Z    t        | t        j                  t        t              fd}|S )Nc                      |       S r,   r$   )r   r  s    r&   rI  zol_np_finfo.<locals>.impl  s    %yr%   )rY  ra   r  _finfo_supported)r   rI  r  s     @r&   ol_np_finfor]    s"    	UBHHe5E	FBKr%   c                 Z    t        | t        j                  t        t              fd}|S )Nc                      |       S r,   r$   )int_typer  s    r&   rI  zol_np_iinfo.<locals>.impl  s    (|r%   )rY  ra   r  _iinfo_supported)r`  rI  r  s     @r&   ol_np_iinforb    s"    	Xrxx8H	IBKr%   c                    t         d        }t        s|S t        j                  t        j                  z  }| |v xr ||v }|s|S t        |       }t        |      }t        j                  ||      t         fd       }|S )Nc                 X    d}t        t        |             D ]  }|| |   ||   z  z   } |S r   r2   rE   )r-   rm  accr.   s       r&   
_innerprodz#_get_inner_prod.<locals>._innerprod  s9    s1v 	$A!qt#C	$
r%   c                 l    t        j                  | j                        |j                              S r,   )ra   r  r  )r-   rm  r  s     r&   	_dot_wrapz"_get_inner_prod.<locals>._dot_wrap
  s$    66!((2,55r%   )r   
_HAVE_BLASr   real_domainr*  r	   ra   rr  )	dtadtbrg  fltyfloatsa_dtb_dtri  r  s	           @r&   _get_inner_prodrr    s       u333DD[(SD[F}}dD)		6 
	6r%   c                 t    t        | t        j                        r| j                  dk  st	        d|z        y y )Nr)   z!%s() only supported on 1D arrays )rT   r   r   r|   r   )r-   r  s     r&   
_assert_1drt    s6    !U[[!vv{AIMNN  "r%   c                      y r,   r$   )ap1ap2mode	directions       r&   _np_correlate_corerz    r3  r%   c                     t        | j                        }t        |j                        }t        j                  ||      t	        | j                  |j                        fd}|S )Nc                 v   t        |       }t        |      }||k  rt        d      |}|}|dk(  r||z
  dz   }d}d}	n6|dk(  r|dz
  }	|dz
  }||z   dz
  }n|dk(  r|dz  }||z
  dz
  }	nt        d      t        j                  |      }
|dk(  rd}d}n|d	k(  r|dz
  }d	}nt        d
      t	        |      D ]"  }||z   |z
  } | d | || d        |
|<   ||z   }$ t	        ||z
  dz         D ]  } | |||z    |      |
|<   ||z   } t	        |	      D ]"  }||z
  dz
  } | | d  |d |       |
|<   ||z   }$ |
S )Nz''len(ap1)' must greater than 'len(ap2)'r  r)   r   r   samer{   z1Invalid 'mode', valid are 'full', 'same', 'valid'r@  zInvalid direction)rE   r}   ra   r  r2   )rv  rw  rx  ry  n1n2r  rp  n_leftn_rightrc  r   incr.   rh  r  	innerprods                  r&   rI  z%_np_correlate_core_impl.<locals>.impl!  s    XX7 FGG7?aZ!^FFGV^!eGUFaZ!^FV^!VF&j1nG4 
 hhvr">CC"_1*CC011v 	AAA Ra#qbc(3CH)C	
 rBw{# 	A QR#6CH)C	 w 	AA	A aRS3r73CH)C	
 
r%   )r	   r   ra   rr  rr  )	rv  rw  rx  ry  rp  rq  rI  r  r  s	          @@r&   _np_correlate_core_implr    sR    CIIDCIID			$	%B		3995I>@ Kr%   c                 F   t        | d       t        |d       t        d        }t        d        }| j                  t        j                  v r&|j                  t        j                  v r||n*||n%|j                  t        j                  v r||n||dfd	}|S )Nznp.correlatec                 ,    t        j                  |       S r,   )ra   r   r  s    r&   op_conjz_np_correlate.<locals>.op_conji  s    wwqzr%   c                     | S r,   r$   r  s    r&   op_nopz_np_correlate.<locals>.op_nopm  s    r%   c                     t        |       }t        |      }|dk(  rt        d      |dk(  rt        d      ||k  rt         |       |       |d      S t         |        |      |d      S Nr   z'a' cannot be emptyz'v' cannot be emptyr@  r)   rE   r}   rz  )r-   rf   rx  lalva_opb_ops        r&   rI  z_np_correlate.<locals>.impl  st    VV723372337%d1gtAwbAA%d1gtAwa@@r%   r  )rt  r   r   r   r*  )r-   rf   rx  r  r  rI  r  r  s         @@r&   _np_correlater  d  s    q.!q.!    	ww%&&&77e***DDDD77e***DDDDA Kr%   c                 >    t        | d       t        |d       dd}|S )Nznp.convolvec                     t        |       }t        |      }|dk(  rt        d      |dk(  rt        d      ||k  rt        || d d d   |d      S t        | |d d d   |d      S r  r  )r-   rf   rx  r  r  s        r&   rI  znp_convolve.<locals>.impl  ss    VV723372337%a4R4$::%a4R4$::r%   r   )rt  )r-   rf   rx  rI  s       r&   np_convolver    s"    q- q- ; Kr%   c                 `   t        |       sy t        | t        j                        r0t	        |      s| j
                  |j
                  k(  rd	d}|S d	d}|S t        | t        j                  t        j                  f      rt	        |      rd	d}|S d	d}|S t        | t        j                  t        j                  f      r"t	        |      r| n|}t        |      d	fd	}|S t        | t        j                  j                        r`t        | j
                  t        j                  t        j                  f      st        d      t	        |      r| j
                  n|d	fd	}|S t        | t        j                        r't        j                   | j"                        d	fd	}|S d }|S )
Nc                     | S r,   r$   r-   r   s     r&   rI  znp_asarray.<locals>.impl  s    r%   c                 $    | j                  |      S r,   )r  r  s     r&   rI  znp_asarray.<locals>.impl  s    xx&r%   c                 ,    t        j                  |       S r,   r/  r  s     r&   rI  znp_asarray.<locals>.impl  s    xx{"r%   c                 .    t        j                  | |      S r,   r/  r  s     r&   rI  znp_asarray.<locals>.impl  s    xx5))r%   c                 0    t        j                  |       S r,   r/  )r-   r   r  s     r&   rI  znp_asarray.<locals>.impl  s    88Ar?"r%   z?asarray support for List is limited to Boolean and Number typesc                 |    t        |       }t        j                  |      }t        |       D ]
  \  }}|||<    |S r  )rE   ra   r   r   )r-   r   r9  rc  r.   rf   target_dtypes         r&   rI  znp_asarray.<locals>.impl  sA    AA((1L1C!! 1AJr%   c                 $    j                         S r,   )r  )r-   r   rd   s     r&   rI  znp_asarray.<locals>.impl  s    88:r%   r,   )r
   rT   r   r   r   r   r  rW   r  r  r	   
containersListTyper   StringLiteralra   rr  rV   )r-   r   rI  dt_convrd   r  r  s       @@@r&   
np_asarrayr    sk   
 A!U[[!uEKK!7V KQ'P KM 
A4	5 u#B K=*< K9 
Aemm4	5"5)!ug	#0 K- 
Au''00	1!''ELL%--#@A./ / #.e"4qww%	 K 
Au**	+jj)	
 K Kr%   c                     t        |t        j                        rt        |      }t	        j
                  |t        j                        st        j                  n|t        j                  ffd	}|S )Nc                 0    t        j                  |       S r,   rY  )r-   r   rU  s     r&   rI  znp_asfarray.<locals>.impl  s    ::a$$r%   )rT   r   Typer	   ra   r  inexactr   )r-   r   rI  rU  s      @r&   np_asfarrayr    sM     eUZZ(UOE}}UBJJ/BB** 	%r%   c                     d }|S )Nc                     t        j                  |       j                         }t        j                  |      }|j                  dk(  rt	        d      t        j
                  ||j                  d        r&|j                  |j                  kD  rd}t	        |      t        |j                  |j                        }t        |      D cg c]  }||   s	|j                  |    }}t        j                  |      S c c}w )Nr   z"Cannot extract from an empty arrayz+condition shape inconsistent with arr shape)
ra   rr  ru  r   r}   r  r   r2   r   r0  )r  rd   r  r-   r   max_lenr   r   s           r&   np_extract_implz#np_extract.<locals>.np_extract_impl  s    zz)$,,.JJsO66Q;ABB 66$qvvw- TYY%7?CS/! affdii(&+GnBsS	qvvc{BBxx} Cs   
C;C;r$   )r  rd   r  s      r&   
np_extractr    s    ( r%   c                 `   dd}t        | t        j                  t        j                  f      st	        d      t        |t        j                  t        j                  f      st	        d      t        |t
        t        j                  t        j                  f      st	        d      t        | d   t        j                        st	        d      t        |d   t        j                        st	        d      t        | d   t        j                        r2t        | d   j                  t        j                        st	        d      t        | d   t        j                        rHt        | d   t        j                        r t        | d   d   t        j                        st	        d	      t        | d   t        j                        r*| d   j                  |d   j                  k7  rt	        d
      t        | d   t        j                        r| d   j                  dk  rt	        d      |S )Nr   c                 .   t        |       t        |      k7  rt        d      |t        j                  |d   j                  |d   j
                        z  }t        t        |       dz
  dd      D ]#  }| |   }||   }t        j                  |||      }% |S )Nz7list of cases must be same length as list of conditionsr   r)   r@  )rE   r}   ra   r  r   r   r2   r  )condlist
choicelistdefaultr   r.   r  choices          r&   np_select_arr_implz%np_select.<locals>.np_select_arr_impl  s    x=C
O+ - . .
1 3 3Z]5H5HIIs8}q("b1 	.AA;D]F((4-C	. 
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  )rT   r   ListrF   r   r  r  r  r   r   r|   )r  r  r  r  s       r&   	np_selectr  	  s   
 hU^^ <=ABBj5::u~~">?CDDgU\\5==ABKLL hqk5;;/?@@jmU[[1ABB (1+u{{+(1+++U]]; !HII(1+u~~.8A;7x{1~u}}= !MNN8A;,QK
1 2 22 9 : 	:(1+u{{+0@0@10DNOOr%   c                    t        |       rt        |      st        d      d| j                  j                  v sd|j                  j                  v r8| j                  j                  |j                  j                  k7  rt        d      d }|S )Nz.The arguments to np.union1d must be array-likeunichrz/For Unicode arrays, arrays must have same dtypec                     t        j                  t        j                  |             }t        j                  t        j                  |            }t        j                  t        j                  ||f            S r,   )ra   rB  rr  r  r  )r  r  r-   rm  s       r&   
union_implznp_union1d.<locals>.union_implD  sJ    HHRZZ_%HHRZZ_%yyA/00r%   )r
   r   r   r  )r  r  r  s      r&   
np_union1dr  <  sn    C (8(=JKK	SYY^^	#x399>>'A
yy~~'KLL1
 r%   c                    d}t        | t        j                  t        j                  t        j                  f      st        |      t        |      r| j                  n	 t        |      dfd	}|S # t        $ r t        d      w xY w)Nz7The argument to np.asarray_chkfinite must be array-likez!dtype must be a valid Numpy dtypec                     t        j                  |       } t        j                  |       D ]"  }t        j                  |      rt	        d       | S )Nr  z#array must not contain infs or NaNs)ra   rr  rb   r{  r}   )r-   r   r.   r  s      r&   rI  z"np_asarray_chkfinite.<locals>.impl[  sJ    JJq#1 	HA;;q> !FGG	H r%   r,   )
rT   r   r   r  rW   r   r   r   r	   r   )r-   r   r   rI  r  s       @r&   np_asarray_chkfiniter  L  s~     DCa%++u~~u{{CD#5WW	C%B K ( 	CABB	Cs   !A4 4B	c                    t        |t        t        j                  f      sd}t	        |      t        |       sd}t	        |      t        |t        j                  t        j                  f      s"t        j                  |      sd}t	        |      t        |t        t        j                  f      sd}t	        |      t        dd d       ft        |t        j                        r3t        j                  t        | j                        t        |            n7t        j                  t        | j                        t        j                         t        j"                  t        j$                        dfd	}|S )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                    |dk7  rd}t        |      t        j                  |       j                        }|j                  }|d   }|j                  |j                  |z  |f      }||dz  }rt        |d      \  }	}
|
dk(  }n|dz  }	d}|	 }t        |j                  |z        D ];  }||   }t        j                  |      }t        j                  ||z
  |      |z   }|r t        j                  ||k(  |dkD  z  |	|      }||z
  }t        j                  t        j                  |D cg c]  }t        |       c}      |k  d|      }t        j                  t        j                  |D cg c]  }t        |       c}      |k  d|      }t        j
                  ||j                        }t        j                  |      }|   |j                         z   |<   |||<   > |j                  |      S c c}w c c}w )Nr@  z*Value for argument "axis" is not supportedr{   r   T)r}   ra   rr  r  r   rC  r   divmodr2   r=  modr  r0  rZ  r  r   )pdiscontrY   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&   rI  znumpy_unwrap.<locals>.impl  s   2:>CS/!A%%e,\\
rN	y 8)DE?qjG!'!2M3!$"QJM!%%~ v{{i/0 	A(CBFF2,f5DE!%<"7BF!C!.7J"((B+?qCF+?"@7"JA",.Jxx")=Q#a&)= > H! *,HHj.>.>?JBVz'8'8'::BvJE!H!	$ }}Z(( ,@)=s   ,G90G>Nr@  g-DT!@)rT   r  r   r  r   r
   r  r   r   r~  r  rN   ra   r  r	   r   r   r  integer)	r  r  rY   r  r   rI  r   r  r  s	         @@@r&   numpy_unwrapr  e  s   dS%--016#A3#w <=''07#fuell346#AtT"$F&%,,'x0(62BCx0"**=MM%4M')R Kr%   c                     t        j                  d| z
  | d      }t        j                  t        j                  |d      d|| dz
  z  z   d|| dz
  z  z
        S )NrW  r{   r   r)   )ra   r  r  
less_equalr  rp  s     r&   np_bartlett_implr    sN    
		"q&!QA88BMM!Q'Q!a%[!a1q5k/JJr%   c                     t        j                  d| z
  | d      }ddt        j                  t         j                  |z  | dz
  z        z  z   dt        j                  dt         j                  z  |z  | dz
  z        z  z   S )NrW  r{   gzG?r   r)   g{Gz?r_  ra   r  cosrU  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                     t        j                  d| z
  | d      }ddt        j                  t         j                  |z  | dz
  z        z  z   S )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                     t        j                  d| z
  | d      }ddt        j                  t         j                  |z  | dz
  z        z  z   S )Nr)   r{   r   r  r  s     r&   np_hanning_implr    sB    
		!a%AArvvbeeai1q512222r%   c                       fd}|S )Nc                 \    t        | t        j                        st        d      fd}|S )NM must be an integerc                     | dk  r%t        j                  dt         j                        S | dk(  r%t        j                  dt         j                        S  |       S )Nr)   r$   r  )ra   r0  r   r  )r  funcs    r&   window_implz>window_generator.<locals>.window_overload.<locals>.window_impl  sD    1uxx"**55Avwwq

337Nr%   )rT   r   r  r   )r  r  r  s     r&   window_overloadz)window_generator.<locals>.window_overload  s*    !U]]+455	 r%   r$   )r  r  s   ` r&   window_generatorr    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    |d   }d}t        dt        |            D ]  }|}|}| |z  |z
  ||   z   } d|z
  z  S )Nr   r  r)   r   re  )r  valsb0b1r.   b2s         r&   _chbevlr  "  sZ    	aB	B1c$i  #Vb[47"#
 "r'?r%   c                     | dk  r|  } | dk  r.d| z  dz
  }t        j                  |       t        |t              z  S t        j                  |       t        d| z  dz
  t              z  t        j
                  |       z  S )Nr   g       @r   r_  g      @@)ra   expr  _i0A_i0Br  r  s     r&   _i0r  /  sm    1uBCx1WOvvay71d+++66!9wtax#~t44rwwqzAAr%   c           	      *   t        j                  | t         j                        }t        t        j                  |            }t	        t        |            D ]8  }t        |t        j                  d| |   |z
  |z  dz  z
        z        |z  ||<   : |S )Nr  r)   r_  )ra   r  r   r  r2   rE   r  )rp  alphabetar  tr.   s         r&   _i0nr  :  s    
arzz*ABJJtA3q6] J4"''!!u'=&C"CDDEI!J Hr%   c                     t        | t        j                        st        d      t        |t        j                  t        j                  f      st        d      d }|S )Nr  z beta must be an integer or floatc                     | dk  r%t        j                  dt         j                        S | dk(  r%t        j                  dt         j                        S t        j                  d|       }| dz
  dz  }t        |||      S )Nr)   r$   r  r   r_  )ra   r0  r   r  r  r  )r  r  rp  r  s       r&   np_kaiser_implz!np_kaiser.<locals>.np_kaiser_implL  se    q588Bbjj116771BJJ//IIaOQ#Aud##r%   )rT   r   r  r   r  )r  r  r  s      r&   	np_kaiserr  D  sL    a'011dU]]EKK89<==	$ r%   c                 f   d } ||       \  }}} ||      \  }}}	t        j                  ||	      t        j                  ||      z
  }
t        j                  ||      t        j                  ||	      z
  }t        j                  ||      t        j                  ||      z
  }|
|d<   ||d<   ||d<   y )Nc                     | d   }| d   }| j                   d   dk(  r| d   }n/t        j                  | j                  j	                  d      |      }|||fS )N.r   .r)   r@  rz   .r{   r   )r   ra   r  r   r   )r  x0r  x2s       r&   _cross_preprocessingz._cross_operation.<locals>._cross_preprocessing]  sU    vYvY772;!6BQWW\\!_b1B2rzr%   r  r  r  )ra   r  )r-   rm  r   r
  a0r  r  r  r  r  cp0cp1cp2s                r&   _cross_operationr  Z  s     &a(JBB%a(JBB
++b"
B 3
3C
++b"
B 3
3C
++b"
B 3
3CCKCKCKr%   c                      y r,   r$   r  s     r&   _crossr  r  r3  r%   c                     t        j                  t        | j                        t        |j                              | j                  dk(  r|j                  dk(  rfd}|S fd}|S )Nr)   c                 N    t        j                  d      }t        | ||       |S )Nrz   )ra   r   r  )r-   rm  cpr   s      r&   rI  z_cross_impl.<locals>.implz  s$    $&BQ2&Ir%   c                     t        j                  | d   |d         j                  }t        j                  |dz         }t	        | ||       |S )Nr  r  )ra   r  r   r   r  )r-   rm  r   r  r   s       r&   rI  z_cross_impl.<locals>.impl  sF    FF1V9ai066E%$,.BQ2&Ir%   )ra   rr  r	   r   r|   )r-   rm  rI  r   s      @r&   _cross_implr  v  sT    Xagg.0ABEvv{qvv{	 K	
 Kr%   c                 N    t        |       rt        |      st        d      d }|S )NInputs must be array-like.c                 &   t        j                  |       }t        j                  |      }|j                  d   dvs|j                  d   dvrt        d      |j                  d   dk(  s|j                  d   dk(  rt	        ||      S t        d      )Nr@  )r{   rz   zDIncompatible dimensions for cross product
(dimension must be 2 or 3)rz   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`.)ra   rr  r   r}   r  r-   rm  r  r  s       r&   rI  znp_cross.<locals>.impl  s    ZZ]ZZ]88B<v%"V)C- 
 88B<1 1"b>!H r%   r
   r   r-   rm  rI  s      r&   np_crossr    s*    A&6q&9677" Kr%   c                     d } ||       \  }} ||      \  }}t        j                  ||      t        j                  ||      z
  }t        j                  |      S )Nc                     | d   }| d   }||fS )Nr  r  r$   )r  r  r  s      r&   r
  z0_cross2d_operation.<locals>._cross_preprocessing  s    vYvY2vr%   )ra   r  rr  )r-   rm  r
  r  r  r  r  r  s           r&   _cross2d_operationr!    sU    
 "!$FB!!$FB	R	r{{2r2	2B ::b>r%   c                      y r,   r$   r  s     r&   cross2dr#    r3  r%   c                 N    t        |       rt        |      st        d      d }|S )Nr  c                     t        j                  |       }t        j                  |      }|j                  d   dk7  s|j                  d   dk7  rt        d      t	        ||      S )Nr@  r{   zRIncompatible dimensions for 2D cross product
(dimension must be 2 for both inputs))ra   rr  r   r}   r!  r  s       r&   rI  zcross2d_impl.<locals>.impl  s\    ZZ]ZZ]88B<1 18  ""b))r%   r  r  s      r&   cross2d_implr&    s*    A&6q&9677* Kr%   c                     t        | t        j                        st        d      | j                  dkD  rt        d      t        |t
        t        j                  f      st        d      t        dk\  dfd	}|S )Nz#The first argument must be an arrayr)   zarray must be 1Dz$The second argument must be a string)r{   r{   c                     t        j                  |       }d}|j                         }d|v r|D ]  }|dk(  sr|dk(  r|dz   } n t        |       }d|v r |d d d   D ]  }|dk(  sr|dk(  r|dz
  } n ||| S )Nr   r   r)   rm  r@  )ra   rr  r  rE   )filttrimr  firstr.   lasttrim_escapess         r&   rI  znp_trim_zeros.<locals>.impl  s    ZZzz|$; 6lqBw!AIE	
 4y$;"X 6lqBw!8D	
 %~r%   fb)rT   r   r   r   r|   strUnicodeTyper   )r*  r+  rI  r.  s      @r&   np_trim_zerosr3    sk    dEKK(BCCyy1}/00dS%"3"345CDD F*L& Kr%   c                     t        |       st        |      st        d      t        |t        j                  t
        f      st        d      dd}|S )Nz+setxor1d: first two args must be array-likez2setxor1d: Argument "assume_unique" must be booleanc                    t        j                  |       }t        j                  |      }|s+t        j                  |      }t        j                  |      }n |j                         }|j                         }t        j                  ||f      }|j                          t        j                  |j                  d   dz   t         j                        }d|d<   d|d<   |dd  |d d k7  |dd ||dd  |d d z     S )Nr   r)   r  Tr@  )	ra   rr  r  rB  r  r  r   r   r   )r  r  r  r-   rm  r  flags          r&   np_setxor1d_implz)jit_np_setxor1d.<locals>.np_setxor1d_impl  s    JJsOJJsO		!A		!A	A	A nnaV$
xx		!q(9QRWCR(Qr
48d3Bi'((r%   r/  r  )r  r  r  r7  s       r&   jit_np_setxor1dr8    sJ    S!%5c%:GHH}u}}d&;<NOO), r%   c                     t        |       st        |      st        d      t        |t        j                  t
        f      st        d      dd}|S )Nz,setdiff1d: first two args must be array-likez3setdiff1d: Argument "assume_unique" must be booleanc                 (   t        j                  |       } t        j                  |      }|r!| j                         } |j                         }n*t        j                  |       } t        j                  |      }| t        j                  | |dd         S )NTr  invert)ra   rr  rB  r  in1d)r  r  r  s      r&   np_setdiff1d_implz+jit_np_setdiff1d.<locals>.np_setdiff1d_impl  si    jjojjo))+C))+C))C.C))C.C27734EFFr%   r/  r  )r  r  r  r>  s       r&   jit_np_setdiff1dr?    sK    S!%5c%:HII}u}}d&;<OPP	G r%   c                     t        |       st        |      st        d      t        |t        j                  t
        f      st        d      t        |t        j                  t
        f      st        d      dd}|S )Nz'in1d: first two args must be array-likez.in1d: Argument "assume_unique" must be booleanz'in1d: Argument "invert" must be booleanc                    t        j                  |       j                         } t        j                  |      j                         }t        |      dt        |       dz  z  k  r|r?t        j                  t        |       t         j
                        }|D ]
  }|| |k7  z  } |S t        j                  t        |       t         j
                        }|D ]
  }|| |k(  z  } |S |st        j                  |       }| |   }t        j                  |j                  t         j
                        }d|d d |dd  |d d k7  |dd  ||   } t        j                  |      dz
  }t        j                  |j                  t         j                        }	||	|<   t        j                  |      }t        j                  | |f      }
|
j                  d      }|
|   }t        j                  |j                  t         j
                        }|r|dd  |d d k7  |d d n|dd  |d d k(  |d d ||dd  t        j                  |
j                  t         j
                        }|||<   |r|d t        |        S |	   S )	Nr  g(\?r  Tr)   r@  	mergesort)kind)ra   rr  rB  rE   r  r   r  argsortr   r   r   r4   r  r  r   )r  r  r  r<  r  r-   order1r  imaskinv_idxarordersarr6  rc  s                  r&   np_in1d_implz!jit_np_in1d.<locals>.np_in1d_impl-  s7    jjo##%jjo##%
 s8b3s8u,,,wws3xrxx8 'ASAX&D' K xxC9 'ASAX&D'K  ZZ_Ff+C88CIIRXX6DD!H12w#cr(*DHd)CIIdOa'Ehhtzz9G#GFO))C.C^^S#J' 


,ixx"((+QRCH,D"IQRCH,D"IRS	hhrxxrxx0E
 yC>!w<r%   FFr  )r  r  r  r<  rK  s        r&   jit_np_in1drM  $  sj    S!%5c%:CDDmemmT%:;JKKfu}}d34CDD7 r r%   c                     t        |       st        |      st        d      t        |t        j                  t
        f      st        d      t        |t        j                  t
        f      st        d      dd}|S )Nz'isin: first two args must be array-likez.isin: Argument "assume_unique" must be booleanz'isin: Argument "invert" must be booleanc                     t        j                  |       } t        j                  | |||      j                  | j                        S )Nr;  )ra   rr  r=  rC  r   )r  test_elementsr  r<  s       r&   np_isin_implz!jit_np_isin.<locals>.np_isin_impls  s8    **W%www]$&&-ggmm&<	=r%   rL  r  )r  rP  r  r<  rQ  s        r&   jit_np_isinrR  i  si    W%)9-)HCDD}u}}d&;<JKKvt45CDD= r%   r,   r}  r  r/  r   r  r
  re  r   r  r  rP  r  r<  r  r  r  r/  rL  (  __doc__r~  collectionsr   r7  llvmlite.irr8  numpyra   
numba.corer   r   numba.core.extendingr   r   r   numba.np.numpy_supportr	   r
   r   r   r   r   r   r   numba.core.imputilsr   r   r   r   numba.np.arrayobjr   r   r   r   numba.np.linalgr   r   numba.core.errorsr   r   r   r   r   numba.cpython.unsafe.tupler    r'   rj  rJ   r]   r  r   rt   rw   r   r4   	DTypeSpecIntegerLiteralr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   aminr  r  amaxr  r   r%  r*  r+  r3  r8  r;  r=  r2  rK  rO  rP  rU  rb  rc  r  r  r  averager  r  	iscomplexr  isrealr  r  r  isscalarr  r  r  r  r  r  r  r  r  r  r  r  r  r  nanminr  nanmaxr  r  r  r  r	  nanstdr  nansumr  nanprodr  
nancumprodr   	nancumsumr%  r)  r/  r2  r5  r9  r=  r@  rI  rU  rT  rW  re  rd  _partition_w_nan_argpartition_w_nanrk  rj  r  r  rm  rr  medianrw  r  r  r  r  r  r  r  r  r  nanpercentiler  quantiler  nanquantiler  	nanmedianr  r  r  r  	partitionr  rb  r  r  r  r  r  r  trilr  r  r  tril_indices_fromr  r  triur   r'  r$  triu_indices_fromr)  r,  r4  r:  ediff1drK  rM  rS  rV  r\  trapzrf  	trapezoidri  rk  vanderrt  rollr{  r  r  r  r  interpr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  corrcoefr  argwherer  flatnonzeror	  r  r  r  r  r  r0  r'  r&  fill_diagonalr1  r4  r@  rF  aroundrO  rR  round_rX  rY  ra  rd  r  r~  r  r  r  r  r  r  r  r   r  r   r  containsr  count_nonzeror  r  r  deleter  r=  r  array_equalr  intersect1dr  r  r  r  r  r  r  r  r  r   r  r  r   r  r  r  digitizer+  r2   r8  r.  r=  _mach_ar_supportedrO  r\  r  ra  r  rY  r]  rb  rr  rt  rz  r  	correlater  convolver  rr  r  asfarrayr   r  extractr  selectr  union1dr  asarray_chkfiniter  unwrapr  r  r  r  r  r  bartlettblackmanhamminghanningr0  r  r  r  r  r  kaiserr  r  r  r  crossr  r!  r#  r&  
trim_zerosr3  setxor1dr8  	setdiff1dr?  r=  rM  isinrR  r$   r%   r&   <module>r     s  
  "    % L LM M MG G/ / ' */ / 5 ]
 %! %!P E! E!V rvvu{{#{EKK(E ) $E  >B rvvu{{EJJ@rvvu{{E$8$8%//J{EKKU__E{EKK)=)=uO$D P F K A$DN rvvu{{U__5{EKK9E : 6E rvvu{{EJJ/rvvu{{E$8$89{EKK4{EKK)=)=>%D ? 5 : 0%DP 
"''f% &  
"))h'! ( !. 
"**i(" ) ". 
"''f% & * 
"&&e$ %   
"&&e$ %        
"&&	"''e$, %  ,^ 
"&&	"''e$, %  ,^  *  *  & 
"))h' ( $  *  *  ")X 
"))h' ( $ 
"&&e$ %   2 
"++j)?, * ?,D 
"&&e$ %  
"**! !H
 
",,  
"))  
"// & 
",,  
"++ 
 
"++& &
 
"++& &
     P P
D 	E: u= "	D9 "t<
 2 2 
"**5 5p 
"))  
"))  
"** & 
")) 0 
"))  
")) * 
"** * 
"-- 0 
",, 0  (		 
.H H 
.H H	 
- . 
"&& 6 6'OEKK'/  .b 0;<
#$67J$KL &'9(  " ?:6
7 1A!BC$_5H%IJ     0 3 3 
"))  1 1h       F F
 B B
  ""4 
"--  
"

  
"++  
"..  
",, 0  (  *  D 
",, 2 
"//   8 	 	 
"&&
 
    > >
 
"''" "4 
"//
  
  
"


%  
% > >
 
"''" "2 
"//
  
  
"


%  
%	 
.1 1 " 
"**4 4n	 
/ 	 
&  
"(( , FHR\\8$ < <6 @ @ 
"))$" $"N 
"'' 2   A AH j jZ U Up 
"))% %V 	 	  0	 

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

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