
    (ph,|                     P   S SK r S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
Jr  S SKJrJr  S SKrSrSrSrS	r " S
 S\5      rS%S jrS&S jrS&S jrS&S jrS'S jrS rS rS rS rS rSr SRC                  S5      r"S \ \"4S jr#Sr Sr$SRC                  S5      r"\" \ \$\"5      r%\R                  " \ \R                  RL                  SS9r'S r S!r$S"RC                  S5      r"\" \ \$\"5      r(\R                  " \ \R                  RL                  SS9r)S#RC                  S5      r*    S(S$ jr+g))    N)wraps)FunctionDoc	Parameter)_contains_nan	AxisError_get_nan)array_namespaceis_numpyz{One or more sample arguments is too small; all returned values will be NaN. See documentation for sample size requirements.zAfter omitting NaNs, one or more sample arguments is too small; all returned values will be NaN. See documentation for sample size requirements.zAll axis-slices of one or more sample arguments are too small; all elements of returned arrays will be NaN. See documentation for sample size requirements.zAfter omitting NaNs, one or more axis-slices of one or more sample arguments is too small; corresponding elements of returned arrays will be NaN. See documentation for sample size requirements.c                       \ rS rSrSrg)SmallSampleWarning%    N)__name__
__module____qualname____firstlineno____static_attributes__r       O/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/_axis_nan_policy.pyr   r   %   s    r   r   c                 \   U (       d  U $ Uc  [        U 6 OUnU  Vs/ s H  o2R                  U5      PM     n nU  Vs/ s H  o3R                  PM     nn[        XA5      nUc  U/[	        U 5      -  n[        X5       VVs/ s H  u  pgUR                  Xg5      PM     snn$ s  snf s  snf s  snnf )zH
Broadcast shapes of arrays, ignoring incompatibility of specified axes
)r	   asarrayshape_broadcast_shapeslenzipbroadcast_to)arraysaxisxparrshapes
new_shapesarray	new_shapes           r   _broadcast_arraysr%   )   s     %'Z&	!RB)/0#jjoF0#)*6Cii6F*"60J| \#f+-
$'$;=$;  OOE-$;= = 1*=s   BB#=B(c           
         U (       d  U $ Ubt  [         R                  " U5      nSn [         R                  " SS9   UR                  [        5      nSSS5        [         R                  " WU5      (       d  [        U5      eUn[        U  Vs/ s H  n[        U5      PM     sn5      n[         R                  " [        U 5      U4[        S9n[        Xp5       H  u  pXX[        U5      [        U5      -
  S& M      Ub  XaUS:     -   XS:  '   [         R                  " U5      nUS   U:  d	  US   S:  a  SU 3n[        U5      e[        [         R                  " U5      5      [        U5      :w  a  [        S	5      eUSS2U4   n	[         R                  " XqS
S9n[         R                  " USS9n
XR                  SS9-  n
[         R                   " US
:H  Xz:H  -  ) 5      (       a  [        S5      eUbT  U[         R"                  " [        U5      5      -
  nW	 Vs/ s H#  n[%        [         R&                  " XU5      5      PM%     nnU$ [%        U
5      $ ! , (       d  f       GN= f! [
         a  n[        U5      UeSnAff = fs  snf s  snf )z>
Broadcast shapes, ignoring incompatibility of specified axes
Nz:`axis` must be an integer, a tuple of integers, or `None`.ignore)invalid)dtyper   z/`axis` is out of bounds for array of dimension z*`axis` must contain only distinct elements   r   z/Array shapes are incompatible for broadcasting.)np
atleast_1derrstateastypeint
ValueErrorr   array_equalmaxr   onesr   sortuniquedeleteallanyarangetupleinsert)r!   r   messageaxis_inter   n_dimsr"   rowremoved_shapesr$   new_axisremoved_shapes                r   r   r   9   sN     }}T"N	,X.;;s+ / ~~h--G$$ &1&#e*&12F#f+v.c:J*-
$)CHSZ ! . tax.0AXwwt}8va1117:GG$$ryy3t9,HII#AtG,YYza8

 z*IQ''I
 
vvqZ%<=>??JKK"))CI..+9;+9- BIIi=IJ+9 	 ;Yc /. 	,G$!+	, 2H;s@   I II 
I=*J
II I 
I:)I55I:c                 X    U  Vs/ s H  o"R                   PM     nn[        X15      $ s  snf )a  
Broadcast shapes of arrays, dropping specified axes

Given a sequence of arrays `arrays` and an integer or tuple `axis`, find
the shape of the broadcast result after consuming/dropping `axis`.
In other words, return output shape of a typical hypothesis test on
`arrays` vectorized along `axis`.

Examples
--------
>>> import numpy as np
>>> from scipy.stats._axis_nan_policy import _broadcast_array_shapes_remove_axis
>>> a = np.zeros((5, 2, 1))
>>> b = np.zeros((9, 3))
>>> _broadcast_array_shapes_remove_axis((a, b), 1)
(5, 3)
)r   _broadcast_shapes_remove_axis)r   r   r    r!   s       r   #_broadcast_array_shapes_remove_axisrH   y   s*    ( $**6Cii6F*(66 +s   'c                 j    [        X5      n U S   nUb  [        R                  " X!5      n[        U5      $ )z
Broadcast shapes, dropping specified axes

Same as _broadcast_array_shapes_remove_axis, but given a sequence
of array shapes `shapes` instead of the arrays themselves.
r   )r   r-   r8   r<   )r!   r   r   s      r   rG   rG      s5     v,F1IE		%&<r   Fc                 V    [        X(       d  UOS5      n [        R                  " XS9nU$ )z3Concatenate arrays along an axis with broadcasting.Nr,   )r%   r-   concatenate)r   r   pairedress       r   _broadcast_concatenaterN      s%    v6ttDF
..
+CJr   c                 $   U(       d*  U  Vs/ s H  o"[         R                  " U5      )    PM     sn$ [         R                  " U S   5      nU SS  H  nU[         R                  " U5      -  nM     U) nU  Vs/ s H  o"U   PM	     sn$ s  snf s  snf )z.Remove nans from paired or unpaired 1D samplesr   r+   N)r-   isnan)samplesrL   samplenansnot_nanss        r   _remove_nansrU      s     8?@f(()@@ 88GAJD!"+bhhv&& uH+2378733 A 4s   #B7Bc                     U(       d  U  Vs/ s H	  o3X2:g     PM     sn$ U S   U:H  nU SS  H
  nXCU:H  -  nM     U) nU  Vs/ s H  o3U   PM	     sn$ s  snf s  snf )z9Remove sentinel values from paired or unpaired 1D samplesr   r+   Nr   )rQ   rL   sentinelrR   	sentinelsnot_sentinelss         r   _remove_sentinelrZ      sy     9@Avv)*AA x'I!"+8!34	 JM078f=!88 B 9s   AAc                    SnU  H/  n[        USS5      nU=(       d    [        R                  " U5      nM1     U(       d  U S 4$ [        R                  " U 6 n[        R                  " U[        R
                  5      (       a  UO[        R                  n[        [        U 5      5       H  nX   R                  USS9X'   M     [        R                  " U[        R                  5      nU(       a  [        R                  O[        R                  nU" U5      R                  U" U5      R                  pU(       a  [        R                  OS n
UnX:  aH  U  H:  n[        R                  " X+:H  5      (       d  M"  U
" U[        R                   * 5      n  O   OX:  a  MH  Sn[#        U5      e/ nU  H  n[        USS 5      nUb{  [        R$                  " X2R&                  5      n[        R                  " U5      (       a  UR(                  R+                  5       OUR(                  n[        R,                  " U5      nXU'   UR/                  U5        M     X4$ )NFmask)copyc                     U S-
  $ )Nr+   r   )x_s     r   <lambda>2_masked_arrays_2_sentinel_arrays.<locals>.<lambda>   s    1q5r   zThis function replaces masked elements with sentinel values, but the data contains all distinct values of this data type. Consider promoting the dtype to `np.float64`.)getattrr-   r:   result_type
issubdtypenumberfloat64ranger   r0   inexactfinfoiinfor4   min	nextafterinfr2   r   r   datar]   r   append)rQ   has_maskrR   r\   r)   iri   infomax_possiblemin_possiblerm   rW   r>   out_sampless                 r    _masked_arrays_2_sentinel_arraysrw      s   
 Hvvu-+rvvd|  } NNG$E]]5"))44E"**E3w<  Z&&u5&9
	 ! mmE2::.G288BHHD!%e$u+//, '.@IH

!Fvvf())$Xw7 
  
!N !! Kvvt,??46D+-66$<<V[[%%'V[[FZZ'F#4L6"    r   c                     [        S U  5       5      (       d  g[        X5      n[        R                  " U5      [	        U 6 -  nU$ )zM
Check for empty sample; return appropriate output for a vectorized hypotest
c              3   >   #    U  H  oR                   S :H  v   M     g7f)r   N)size).0rR   s     r   	<genexpr>&_check_empty_inputs.<locals>.<genexpr>  s     6gF{{ags   N)r:   rH   r-   r5   r   )rQ   r   output_shapeoutputs       r   _check_empty_inputsr      sA    
 6g666 7wELWW\"Xw%77FMr   c                     U(       a>  U  Vs/ s H0  n[        U[        5      (       d  [        R                  " X15      OUPM2     sn$ U $ s  snf )zR
Add reduced axes back to all the arrays in the result object
if keepdims = True.
)
isinstancer1   r-   expand_dims)rM   reduced_axeskeepdimsr   s       r   _add_reduced_axesr     sX      GJKFIFJvs++ ^^F1178FIK " " Ks   7Ar   zIf an int, the axis of the input along which to compute the statistic.
The statistic of each axis-slice (e.g. row) of the input will appear in a
corresponding element of the output.
If ``None``, the input will be raveled before computing the statistic.
c                     SU  3n[        XU5      n[        R                   " U[        R                   R                  U S9nXE4$ )Nzint or None, default: default)r   inspectKEYWORD_ONLY)default_axis_name_desc_type_axis_parameter_doc_axis_parameters         r   _get_axis_paramsr   "  sJ    $\N3E#E%8''(/(9(9(F(F0<>O //r   
nan_policyz{'propagate', 'omit', 'raise'}a  Defines how to handle input NaNs.

- ``propagate``: if a NaN is present in the axis slice (e.g. row) along
  which the  statistic is computed, the corresponding entry of the output
  will be NaN.
- ``omit``: NaNs will be omitted when performing the calculation.
  If insufficient data remains in the axis slice along which the
  statistic is computed, the corresponding entry of the output will be
  NaN.
- ``raise``: if a NaN is present, a ``ValueError`` will be raised.	propagater   r   zbool, default: FalsezIf this is set to True, the axes which are reduced are left
in the result as dimensions with size one. With this option,
the result will broadcast correctly against the input array.a  
Beginning in SciPy 1.9, ``np.matrix`` inputs (not recommended for new
code) are converted to ``np.ndarray`` before the calculation is performed. In
this case, the output will be a scalar or ``np.ndarray`` of appropriate shape
rather than a 2D ``np.matrix``. Similarly, while masked elements of masked
arrays are ignored, the output will be a scalar or ``np.ndarray`` rather than a
masked array with ``mask=False``.c	           	      $  ^ ^^^^^^^^^ T=(       d    0 n	SSS.mTR                  U	5        Tc  S m[        [        R                  " T5      R                  5      S:X  a  T4S jm[        T5      (       d  SS.U4S	 jjmOTmUUUUUUUUU 4	S
 jn
U
$ )aS  Factory for a wrapper that adds axis/nan_policy params to a function.

Parameters
----------
tuple_to_result : callable
    Callable that returns an object of the type returned by the function
    being wrapped (e.g. the namedtuple or dataclass returned by a
    statistical test) provided the separate components (e.g. statistic,
    pvalue).
default_axis : int, default: 0
    The default value of the axis argument. Standard is 0 except when
    backwards compatibility demands otherwise (e.g. `None`).
n_samples : int or callable, default: 1
    The number of data samples accepted by the function
    (e.g. `mannwhitneyu`), a callable that accepts a dictionary of
    parameters passed into the function and returns the number of data
    samples (e.g. `wilcoxon`), or `None` to indicate an arbitrary number
    of samples (e.g. `kruskal`).
paired : {False, True}
    Whether the function being wrapped treats the samples as paired (i.e.
    corresponding elements of each sample should be considered as different
    components of the same sample.)
result_to_tuple : callable, optional
    Function that unpacks the results of the function being wrapped into
    a tuple. This is essentially the inverse of `tuple_to_result`. Default
    is `None`, which is appropriate for statistical tests that return a
    statistic, pvalue tuple (rather than, e.g., a non-iterable datalass).
too_small : int or callable, default: 0
    The largest unnacceptably small sample for the function being wrapped.
    For example, some functions require samples of size two or more or they
    raise an error. This argument prevents the error from being raised when
    input is not 1D and instead places a NaN in the corresponding element
    of the result. If callable, it must accept a list of samples, axis,
    and a dictionary of keyword arguments passed to the wrapper function as
    arguments and return a bool indicating weather the samples passed are
    too small.
n_outputs : int or callable, default: 2
    The number of outputs produced by the function given 1d sample(s). For
    example, hypothesis tests that return a namedtuple or result object
    with attributes ``statistic`` and ``pvalue`` use the default
    ``n_outputs=2``; summary statistics with scalar output use
    ``n_outputs=1``. Alternatively, may be a callable that accepts a
    dictionary of arguments passed into the wrapped function and returns
    the number of outputs corresponding with those arguments.
kwd_samples : sequence, default: ()
    The names of keyword parameters that should be treated as samples. For
    example, `gmean` accepts as its first argument a sample `a` but
    also `weights` as a fourth, optional keyword argument. In this case, we
    use `n_samples=1` and kwd_samples=['weights'].
override : dict, default: {'vectorization': False, 'nan_propagation': True}
    Pass a dictionary with ``'vectorization': True`` to ensure that the
    decorator overrides the function's behavior for multimensional input.
    Use ``'nan_propagation': False`` to ensure that the decorator does not
    override the function's behavior for ``nan_policy='propagate'``.
FT)vectorizationnan_propagationc                     U $ Nr   )rM   s    r   result_to_tuple1_axis_nan_policy_factory.<locals>.result_to_tuple  s    Jr   r+   c                     U" U 5      $ r   r   )rM   r`   fs      r   r   r     s    S6Mr   r*   r,   c                B   > U  H  nUR                   U   T::  d  M    g   g)NTF)r   )rQ   r   ts_args	ts_kwargsrR   	too_smalls        r   is_too_small._axis_nan_policy_factory.<locals>.is_too_small  s&    !<<%2 " r   c                   >	^  [        T 5      SS.U
U UUUUUUUU4
S jj5       n[        T
5      u  p#[        U5      nUS    Vs/ s H  oUR                  PM     nnSU;   a  UUS   UR	                  S5      '   OUS   R                  U5        SU;   a  [        US   UR	                  S5      '   OUS   R                  [        5        SU;   a  [        US   UR	                  S5      '   OUS   R                  [        5        US==   [        -  ss'   [        U5      R                  S	S
5      S
   n[        U5      Ul        [        R                  " U5      nUR                  n[        UR!                  5       5      n	SU;  a  U	R                  U5        SU;  a  U	R                  ["        5        SU;  a  U	R                  [$        5        UR'                  U	S9nXql        U$ s  snf )NF)_no_decoc                   >
^^#^$^%^&^'^(^)^* U (       a  T," U0 TD6$ [        U5      S:X  a2  [        [        T5      R                  [        T.5      5      5      nUS S nOUS   n[	        [        U5      5      (       d!  SnST;   d  ST;   a  [        U5      eT," U0 TD6$ [        [        R                  " T,5      R                  5      nT0c.  [        [        U5      5       Vs/ s H  nSU 3PM
     snUSS  -   n[        R                  " T,5      R                  (       a  [        R                  O([        [        R                  " T,5      R                  5      n[        U5      U:  a  T," U0 TD6  [!        [#        Xa5      5      n	[        U	5      [        T5      -  n
U
(       a  T," U0 TD6  TR%                  U	5        ['        T05      (       a	  T0" T5      m(OT0=(       d    [        U5      m(T/m'['        T'5      (       a  T'" T5      m'T. Vs/ s H  nTR)                  US 5      c  M  UPM     snm%[        T%5      m&T%(       d  T,m$OU,U%U(4S jm$ US T( T%-    Vs/ s H(  n[        R*                  " TR-                  U5      5      PM*     nnSU;   a  S	OS
nU=(       a
    T1S   (       + nTR-                  ST+5      nTR-                  SS5      nTR-                  SS
5      nA[1        W5      u  nm)UnUc  U(       aE  [        R2                  " U Vs/ s H  nUR4                  PM     sn5      n[7        [        U5      5      nU Vs/ s H'  n[        R8                  " UR;                  5       5      PM)     nnO[=        UT2(       d  UOS S9n[        R*                  " U5      n[        U5      nU Vs/ s H/  n[        R>                  " UU[        [        U5      * S5      5      PM1     nnU Vs/ s H  nUR@                  PM     nnU Vs/ s H%  nUS U*  [        RB                  " UU* S  5      4-   PM'     nn[#        UU5       VVs/ s H  u  nnURE                  U5      PM     nnnSnU(       a  [G        U6 O[        RH                  m#[        RJ                  " U Vs/ s H  nUR4                  PM     sn5      n[        RL                  " US:*  5      (       Ga>  US:w  d
  T1S   (       a   U Vs/ s H  n[O        UU5      S   PM     nnOS
/[        U5      -  n[Q        U5      (       a9  US:X  a3  T1S   (       a)  [        RR                  " T'T#5      n[U        UUU5      nT4" U6 $ [V        n[Q        U5      (       a  US:X  a  [Y        UT25      n[Z        nT)(       a  []        UT2T)5      nT-" UT5      (       aC  [^        R`                  " U[b        SS9  [        RR                  " T'T#5      n[U        UUU5      nT4" U6 $ T$" U0 TD6nT3" UT'5      n[U        UUU5      nT4" U6 $ [e        X5      nUb  T-" UT5      (       d  URf                  S:X  aw  T-" UT5      (       a.  URf                  S:w  a  [^        R`                  " [h        [b        SS9  [        T'5       Vs/ s H  nURk                  5       PM     nn[U        UUU5      nT4" U6 $ [        RJ                  " U Vs/ s H  nUR@                  U   PM     sn5      n[        Rl                  " U5      m*[o        XT2S9n US:w  d
  T1S   (       a  [O        U U5      u  nn!OS
nU(       a3  U(       d,  T)(       d%  T$" USU0TD6nT3" UT'5      n[U        UUU5      nT4" U6 $ U(       a  US:X  a  U#U$U-UU&U'U(U2U3U)U*4S jn"O8U(       a!  US:X  a  T1S   (       a  U#U$U-UU&U'U(U2U3U)U*4S jn"OU#U$U-UU&U'U(U2U3U)U*4S jn"[        R>                  " U US5      n [        Rp                  " U"SU S9n[U        UUU5      nT4" U6 $ s  snf s  snf s  snf ! [.         a    T," U0 TD6   GNf = fs  snf s  snf s  snf s  snf s  snf s  snnf s  snf s  snf s  snf s  snf )Nr   r+   zIUse of `nan_policy` and `keepdims` is incompatible with non-NumPy arrays.r   r   argc                  l   > [        [        TU TS  5      5      nUR                  U5        T" U S T 0 UD6$ r   )dictr   update)rQ   kwdsnew_kwdshypotest_fun_inkwd_sampn_samps      r   hypotest_fun_outv_axis_nan_policy_factory.<locals>.axis_nan_policy_decorator.<locals>.axis_nan_policy_wrapper.<locals>.hypotest_fun_out  s>    #C'&'2B$CDHKK)*GGV,<EEEr   r   TFr   r   r,   r*   r   omit   
stacklevel)rL   c                 "  > [         R                  " U T5      S TT-    n[        UT	5      nT(       a  [        UT	T5      nT" UT5      (       a5  [        R
                  " [        [        SS9  [         R                  " TT5      $ T
" T" U0 TD6T5      $ )N   r   )	r-   splitrU   rZ   warningswarntoo_small_nd_omitr   fullr_   rQ   NaNr   r   r   
n_kwd_sampn_outr   rL   r   rW   split_indicess     r   hypotest_funr_axis_nan_policy_factory.<locals>.axis_nan_policy_decorator.<locals>.axis_nan_policy_wrapper.<locals>.hypotest_funq  s     hhq-89K&:KLG*7F;G"27FH"M#GT22 &79K124!wwuc22*+;W+M+MuUUr   c                 N  > [         R                  " U 5      R                  5       (       a  [         R                  " TT5      $ [         R                  " U T5      S TT-    nT(       a  [        UT	T5      nT" UT5      (       a  [         R                  " TT5      $ T
" T" U0 TD6T5      $ r   )r-   rP   r:   r   r   rZ   r   s     r   r   r     s    xx{((!wwuc22 hhq-89K&:KLG"27FH"M#GT22!wwuc22*+;W+M+MuUUr   c                    > [         R                  " U T5      S TT-    nT(       a  [        UT	T5      nT" UT5      (       a  [         R                  " TT5      $ T
" T" U0 TD6T5      $ r   )r-   r   rZ   r   r   s     r   r   r     sg     hhq-89K&:KLG"27FH"M#GT22!wwuc22*+;W+M+MuUUr   )r   r    )9r   listsetintersectionr
   r	   NotImplementedErrorr   	signature
parametersrh   getfullargspecvarargsr-   rn   argsr   r   r   callablegetr.   popKeyErrorrw   r4   ndimr<   r   ravelr%   moveaxisr   prodreshaper   nanr#   r9   r   r:   r   r   too_small_1d_not_omitrU   too_small_1d_omitrZ   r   r   r   r   rz   too_small_nd_not_omitr]   cumsumrN   apply_along_axis)5r   r   r   used_kwd_samplestempmsgparamsrr   maxargd_argsr   nameparamrQ   
vectorizedr   r   r   r   rR   rA   n_axesr!   r   r"   r$   ndimscontains_nanrM   too_small_msgempty_outputlengthsr_   r`   r   r   r   r   r   r   r   rW   r   r   r   r   kwd_samples	n_outputs	n_samplesoverriderL   r   tuple_to_results5     `                                @@@@@@@@r   axis_nan_policy_wrapper\_axis_nan_policy_factory.<locals>.axis_nan_policy_decorator.<locals>.axis_nan_policy_wrapper  s    &555 4yA~#'D	(>(>s;?O(P#Q '+AwOD122@4':+=-c22&555 '++O<GGHF  .33t9-=>-=Cs)-=>K !( 6 6 G O Obffw55oFKKL 4y6!.. #f+,Fv;T2L.. KK 	""
 #4"/c$i Ed *5 =88D$/  =HXJ#2 F/)/8)CF)Cu ==%9)C  F
 "(6!1uJ#EH_,E(EJ88FL1D,<Jxx
E2H !A IGX  L|  VVw$GwVV[[w$GHF#(v#7LDKLG&2::flln5GL ,Gf$RVW}}T*T *12)0v ;;vtUCI:q5IJ)0  25<=W6&,,W=
 ,23+1% $HfWowx1I0KK+1  3 584LN4L0vy ">>)44L  ND(/(G$RVVC HH@ffkk@AEvveqj!!,9J0K29$;29 %2&*$Ea$H29 ! $;L %*73w<#7L |$$**C.67H.I''%-C+CxHC*C00 !6|$$v)=*7F;G$5M.wIG..MM-1CPQR''%-C+CxHC*C00&848%c51'\8D&,, /w=L (!'400L4E4E4J..<3D3D3IMM"79K-.049%LALq|((*LA'\8D&,, hhIvT 2IJGIIg.M&wVDA [(H5F,G"/:">a$,x&CdCdC%c51'\8D&,, 
f 4	V 	V 	V :#<01	V 	V 	VV V AtQ'A%%lBC#Cx@C"C((Q ?D=F /../& %HL2=3N A$;X B  Jsr   _*?_/_/
_9 /_4:_9 >`3.`6``!4,`&1`+`1`66`;8a 4_9 9``
Parametersr   r   r   Notesr   r+   )r   )r   r   r   r   indexrp   _nan_policy_parameter_doc_keepdims_parameter_doc_standard_note_additionstrr   __doc__r   r   r   r   values_nan_policy_parameter_keepdims_parameterreplace__signature__)r   r   r   r   docr   parameter_namessigr   parameter_listr   r   r   r   r   r   rL   r   r   s   `         r   axis_nan_policy_decorator;_axis_nan_policy_factory.<locals>.axis_nan_policy_decorator  s   		49 k	) k	) k	) 
 k	)Z 0@/M,1236|3DE3D%::3DE_$# o33F;< $$%89?*) o33LAB $$%>?(' o33J?@ $$%<=G//#hnnT1%a(*-c(' 78^^
j//12#!!/2z)!!"78Z'!!"56kk^k403-&&A Fs   G)r   r   r   r   r   r   )r   r   r   rL   r   r   r   r   r   r   r  r   s   `````````  @r   _axis_nan_policy_factoryr  S  s    x >rD!&#')HOOD	 7_-889Q>&5 	 I13 	 	 !Q' Q'd %$r   )NNr   )F)r   r+   FNr   r   r   N),r   numpyr-   	functoolsr   scipy._lib._docscraper   r   scipy._lib._utilr   r   r   scipy._lib._array_apir	   r
   r   r   r   r   r   RuntimeWarningr   r%   r   rH   rG   rN   rU   rZ   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   <module>r     s      8 ? ? ; 6 6 6 6 	 	= = @7049$5!p" 	J U4[  #$5 0 	(	F U4[  &eUE: ))%*1*;*;*H*H2=?  	@ U4[	 
 $E5%8 ''(/(9(9(F(F057 
%
 ',eDk  <=16=>CGh%r   