§
    ƒÛg}6 ã            	       óö&  — 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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 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*m+Z+ ddl,m-Z- d„ Z. e.¦   «         Z/e$d„ ¦   «         Z0e$d„ ¦   «         Z1 ee	j2        ej3        ¦  «         edej3        ¦  «        d„ ¦   «         ¦   «         Z4ed„ ¦   «         Z5d„ Z6 ee	j2        ej3        ej7        ej8        ¦  «         ee	j2        ej3        ej9        ej8        ¦  «         edej3        ej7        ej8        ¦  «         edej3        ej9        ej8        ¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Z: ee	j2        ej3        ej8        ¦  «         edej3        ej8        ¦  «        d„ ¦   «         ¦   «         Z; ee	j2        ej3        ej7        ¦  «         ee	j2        ej3        ej9        ¦  «         edej3        ej7        ¦  «         edej3        ej9        ¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Z<d„ Z= ee	j>        ¦  «         eej3        d¦  «        d„ ¦   «         ¦   «         Z? ee	j@        ¦  «         eej3        d¦  «        d„ ¦   «         ¦   «         ZA ee	jB        ¦  «         eej3        d¦  «        d„ ¦   «         ¦   «         ZC ee	jD        ¦  «         eej3        d¦  «        d„ ¦   «         ¦   «         ZE ee	jF        ¦  «         eej3        d ¦  «        d!„ ¦   «         ¦   «         ZG ee	jH        ¦  «         eej3        d"¦  «        d#„ ¦   «         ¦   «         ZIed$„ ¦   «         ZJed%„ ¦   «         ZKed&„ ¦   «         ZL ee	jM        ¦  «         ee	jN        ¦  «         eej3        d'¦  «        d(„ ¦   «         ¦   «         ¦   «         ZO ee	jP        ¦  «         ee	jQ        ¦  «         eej3        d)¦  «        d*„ ¦   «         ¦   «         ¦   «         ZRed+„ ¦   «         ZSed,„ ¦   «         ZTed-„ ¦   «         ZU ee	jV        ¦  «         eej3        d.¦  «        �dd/„¦   «         ¦   «         ZWed0„ ¦   «         ZXed1„ ¦   «         ZYed2„ ¦   «         ZZd3„ Z[ ee	j\        ¦  «         eej3        d4¦  «        �dd5„¦   «         ¦   «         Z] ee	j^        ¦  «         eej3        d6¦  «        d7„ ¦   «         ¦   «         Z_e�dd;„¦   «         Z` ee	ja        ¦  «         eej3        d<¦  «        �dd=„¦   «         ¦   «         Zb ee	jc        ¦  «         eej3        d>¦  «        d?„ ¦   «         ¦   «         Zd ee	je        ¦  «        �dd@„¦   «         ZfdA„ Zg ee	jh        ¦  «        dB„ ¦   «         Zi ee	jj        ¦  «        dC„ ¦   «         Zk ee	jl        ¦  «        dD„ ¦   «         Zl ee	jm        ¦  «        dE„ ¦   «         Zm ee	jn        ¦  «        dF„ ¦   «         ZodG„ Zp ee	jq        ¦  «        �ddH„¦   «         Zq ee	jr        ¦  «        �ddI„¦   «         ZredJ„ ¦   «         ZsedK„ ¦   «         ZtedL„ ¦   «         ZudM„ Zv e evesd:¬N¦  «        ¦  «        Zw e evetd:¬N¦  «        ¦  «        Zx e evesdO¬N¦  «        ¦  «        Zy e evetdO¬N¦  «        ¦  «        ZzedP„ ¦   «         Z{ ee	j|        ¦  «        �d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„ ¦   «         ZŠ ee	j‹        ¦  «        dY„ ¦   «         ZŒ ee	j�        ¦  «        dZ„ ¦   «         ZŽed[„ ¦   «         Z�d\„ Z�d]„ Z‘d^„ Z’ ee‘¦  «        d_„ ¦   «         Z“ ee’¦  «        d`„ ¦   «         Z”da„ Z• ee•¦  «        db„ ¦   «         Z– eej3        dc¦  «         ee	j—        ¦  «        dd„ ¦   «         ¦   «         Z˜ede„ ¦   «         Z™�ddf„Zš e ešes¦  «        ¦  «        Z› e eše™¦  «        ¦  «        Zœ e eše™dO¬g¦  «        ¦  «        Z�dh„ Zž e eže›¦  «        ¦  «        ZŸ e ežeœ¦  «        ¦  «        Z  e eže�¦  «        ¦  «        Z¡edi„ ¦   «         Z¢edj„ ¦   «         Z£ ee	j¤        ¦  «        dk„ ¦   «         Z¥edl„ ¦   «         Z¦edm„ ¦   «         Z§edn„ ¦   «         Z¨edo„ ¦   «         Z©edp„ ¦   «         Zªedq„ ¦   «         Z«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dx„ ¦   «         Z·edy„ ¦   «         Z¸edz„ ¦   «         Z¹ ee	jº        ¦  «        d{„ ¦   «         Z» ee	j¼        ¦  «        d|„ ¦   «         Z½ed}„ ¦   «         Z¾ ee	j¿        ¦  «        �dd~„¦   «         ZÀed„ ¦   «         ZÁe�d	d€„¦   «         ZÂ ee	jÃ        ¦  «        �d	d�„¦   «         ZÄ ee	jÅ        ¦  «        �d
d‚„¦   «         ZÆ ee	jÇ        ¦  «        �d	dƒ„¦   «         ZÈe�d	d„„¦   «         ZÉ ee	jÊ        ¦  «        �d	d…„¦   «         ZË ee	jÌ        ¦  «        �d
d†„¦   «         ZÍ ee	jÎ        ¦  «        �d	d‡„¦   «         ZÏdˆ„ ZÐ eeÐ¦  «        d‰„ ¦   «         ZÑdŠ„ ZÒ ee	jÓ        ¦  «        �dd‹„¦   «         ZÔdŒ„ ZÕ eeÕ¦  «        d�„ ¦   «         ZÖdŽ„ Z× ee×¦  «        d�„ ¦   «         ZØ ee	jÙ        ¦  «        �dd‘„¦   «         ZÚed’„ ¦   «         ZÛed“„ ¦   «         ZÜ ee	jÝ        ¦  «        �dd”„¦   «         ZÞ ee	jß        ¦  «        d•„ ¦   «         Zàd–Záed—„ ¦   «         Zâed˜„ ¦   «         Zãed™„ ¦   «         Zä ee	jå        ¦  «        dš„ ¦   «         Zæed›„ ¦   «         Zçedœ„ ¦   «         Zèd�„ Zé eeé¦  «        dž„ ¦   «         ZêedŸ„ ¦   «         Zë ed „ ¦  «        Zìd¡„ Zíd¢„ Zîed£„ ¦   «         Zï ed¤„ ¦  «        Zðed¥„ ¦   «         Zñd¦„ Zòed§„ ¦   «         Zóed¨„ ¦   «         Zô ee	jõ        ¦  «        �dd©„¦   «         Zö ee	j÷        ¦  «        �ddª„¦   «         Zø ee	jù        ¦  «        d«„ ¦   «         Zú ee	jû        ¦  «        d¬„ ¦   «         Züed­„ ¦   «         Zýed®„ ¦   «         Zþe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        ¦  «         ee	�j        ¦  «        �d
d¹„¦   «         ¦   «         ¦   «         �Z ee	�j        ¦  «        dº„ ¦   «         �Z ee	�j        ¦  «        �dd»„¦   «         �Z ee	�j        ej3        ¦  «         ed¼ej3        ¦  «        d½„ ¦   «         ¦   «         �Zd¾„ �Zed¿„ ¦   «         �ZedÀ„ ¦   «         �ZdÁ„ �Z ee	�j        ¦  «        dÂ„ ¦   «         �Z ee	�j        ¦  «        dÃ„ ¦   «         �Z ee	�j        ¦  «        dÄ„ ¦   «         �Z ee	�j        ¦  «        dÅ„ ¦   «         �Z ee�j        ¦  «        dÆ„ ¦   «         �Z  ee	�j!        ¦  «        �ddÇ„¦   «         �Z" edÈ„ ¦  «        �Z# edÉ„ ¦  «        �Z$ ee	�j%        ¦  «        dÊ„ ¦   «         �Z& ee	�j'        ¦  «        �ddÌ„¦   «         �Z( ee	�j)        ¦  «        dÍ„ ¦   «         �Z* ee	�j+        ¦  «        dÎ„ ¦   «         �Z,dÏ„ �Z- ee	�j.        ¦  «        �ddÐ„¦   «         �Z/dÑ„ �Z0es�Z1 edÒ„ ¦  «        �Z2 e �e0�e1¦  «        ¦  «        �Z3 e �e0�e2¦  «        ¦  «        �Z4 ee	�j5        ¦  «        �ddÔ„¦   «         �Z5 ee	�j6        ¦  «        �ddÕ„¦   «         �Z7�e8�Z9 ee	�j:        ¦  «        �dd×„¦   «         �Z;dØ�Z< edÙ�e<¦  «        �Z=dÚ�Z> edÛ�e>¦  «        �Z?dÜ�Z@ edÝ�e@¦  «        �ZAdÞ„ �ZB �eB¦   «          dß„ �ZC ee	�j?        ¦  «        dà„ ¦   «         �ZD ee	�jA        ¦  «        dá„ ¦   «         �ZEdâ„ �ZFdã„ �ZGdä„ �ZH e�eH¦  «        då„ ¦   «         �ZI ee	�jJ        ¦  «        �ddç„¦   «         �ZK ee	�jL        ¦  «        �ddé„¦   «         �ZM ee	�jN        ¦  «        �ddê„¦   «         �ZO ee	�jP        ¦  «        e	�jQ        fdë„¦   «         �ZR ee	�jS        ¦  «        dì„ ¦   «         �ZT ee	�jU        ¦  «        �d	dí„¦   «         �ZV ee	�jW        ¦  «        dî„ ¦   «         �ZX ee	�jY        ¦  «        �ddï„¦   «         �ZZedð„ ¦   «         �Z[edñ„ ¦   «         �Z\edò„ ¦   «         �Z]edó„ ¦   «         �Z^dô„ �Z_  ee	�j`        ¦  «         �e_�e[¦  «        ¦  «           ee	�ja        ¦  «         �e_�e\¦  «        ¦  «           ee	�jb        ¦  «         �e_�e]¦  «        ¦  «           ee	�jc        ¦  «         �e_�e^¦  «        ¦  «          e	�jd        g dõ¢¦  «        �Ze e	�jd        g dö¢¦  «        �Zfed÷„ ¦   «         �Zgedø„ ¦   «         �Zhedù„ ¦   «         �Zi ee	�jj        ¦  «        dú„ ¦   «         �Zkedû„ ¦   «         �Zldü„ �Zm e�em¦  «        dý„ ¦   «         �Zn ee	�jo        ¦  «        dþ„ ¦   «         �Zpedÿ„ ¦   «         �Zq�d „ �Zr e�er¦  «        �d„ ¦   «         �Zs ee	�jt        ¦  «        �d�d„¦   «         �ZudS (  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)Úlower_builtinÚimpl_ret_borrowedÚimpl_ret_new_refÚimpl_ret_untracked)Ú
make_arrayÚ	load_itemÚ
store_itemÚ_empty_nd_impl)Úensure_blas)Ú	intrinsic)ÚRequireLiteralValueÚTypingErrorÚNumbaValueErrorÚNumbaNotImplementedErrorÚNumbaTypeErrorÚNumbaDeprecationWarning)Útuple_setitemc                  óH   — 	 t          ¦   «          n# t          $ r Y dS w xY wdS ©NFT)r   ÚImportError© ó    úH/granary/edev/quantum/lib/python3.11/site-packages/numba/np/arraymath.pyÚ_check_blasr&       s9   € ðÝ‰ŒˆˆøÝð ð ð Øˆuˆuðøøøàˆ4s   ‚ ‘
ž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           	      ój  •— |                       ‰¦  «        }t          j        |¦  «        }|\  }}d„ }t          ‰¦  «        D ]p}	|                      t
          j        |	¦  «        }
|                      ||t          j        ‰t
          j        ¦  «        ||
g¦  «        }|                     |||	¦  «        }Œq|S )Nc                 ó   — | |         S ©Nr#   )ÚaÚis     r%   Úarray_indexerzB_create_tuple_result_shape.<locals>.codegen.<locals>.array_indexerE   s   € Ø�Q”4ˆKr$   )	Ú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‘”ð 	5ð 	5ˆAØ×(Ò(­¬°QÑ7Ô7ˆGà×)Ò)¨'°=Ý*/¬*°ZÅÄÑ*LÔ*LØ+3°WÐ*=ñ?ô ?ˆDð ×&Ò& s¨D°!Ñ4Ô4ˆCˆCØˆ
r$   )Úlenr   ÚUniTupler3   )ÚtyctxrA   Úshape_tupleÚfunction_sigrC   r@   rB   s    `   @@r%   Ú_create_tuple_result_shaperI   ,   sm   øøø€ õ 
ˆ[Ñ	Ô	˜AÑ	€BåŒN�5œ: rÑ*Ô*€Eà�5˜ [Ñ1Ô1€Lðð ð ð ð ð ð ð* ˜Ð Ð r$   c                 ór  ‡	‡
‡— 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                 óš  •— |                       ‰¦  «        }t          j        |¦  «        }|\  }}}d„ }|                      ||t	          j        ¦   «         g ¦  «        }	t          d‰¦  «        D ]}
|                     ||	|
¦  «        }Œ|                     ||‰¦  «        }t          ‰dz   ‰¦  «        D ]}
|                     ||	|
¦  «        }Œ|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(   )r/   r   r0   r4   r   Úslice2_typer1   r5   )r6   r7   r8   r9   r:   r;   r=   Ú	value_argrN   Ú
slice_datar-   Ú
axis_valuer@   rB   s              €€€r%   rC   z!_gen_index_tuple.<locals>.codegen|   sø   ø€ Ø×&Ò& uÑ-Ô-ˆåÔ$ WÑ-Ô-ˆð !ÑˆˆI�qð	%ð 	%ð 	%ð ×+Ò+¨GÐ5FÝ,1Ô,=Ñ,?Ô,?Ø,.ñ0ô 0ˆ
õ �q˜*Ñ%Ô%ð 	;ð 	;ˆAØ×&Ò& s¨J¸Ñ:Ô:ˆCˆCð ×"Ò" 3¨	°:Ñ>Ô>ˆõ �z A‘~ rÑ*Ô*ð 	;ð 	;ˆAØ×&Ò& s¨J¸Ñ:Ô:ˆCˆCØˆ
r$   )	Ú
isinstancer   ÚLiteralr   Úliteral_valuerD   rO   r3   ÚTuple)rF   rG   ÚvalueÚaxisÚbeforeÚafterÚ
types_listrH   rC   rR   r@   rB   s            @@@r%   Ú_gen_index_tupler\   U   s÷   øøø€ õ �d�EœMÑ*Ô*ð FÝ!Ð"DÑEÔEÐEàÔ#€Jå	ˆ[Ñ	Ô	€Bð �RÒÐØˆ
ð €FØ�‰K˜!‰O€Eà€JØ•5Ô$Ð%¨Ñ.Ñ.€JØ•5”:�,Ñ€JØ•5Ô$Ð%¨Ñ-Ñ-€Jõ ŒK˜
Ñ#Ô#€Eà�5˜ e¨TÑ2Ô2€Lðð ð ð ð ð ð ð> ˜Ð Ð r$   z	array.sumc           	      óÀ   ‡— |                      d¦  «        Šˆfd„}|                      ||||t          |j         ¬¦  «        ¬¦  «        }t          | ||j         |¦  «        S )Nr   c                 óh   •— ‰}t          j        | ¦  «        D ]}||                     ¦   «         z  }Œ|S r+   ©ÚnpÚnditerÚitem)ÚarrÚcÚvÚzeros      €r%   Úarray_sum_implz!array_sum.<locals>.array_sum_impl¦   ó7   ø€ ØˆÝ”˜3‘”ð 	ð 	ˆAØ�—’‘”‰MˆAˆAØˆr$   ©rd   ©Úlocals©Úreturn_typer4   Údictr   ©Úcontextr7   Úsigr9   rg   Úresrf   s         @r%   Ú	array_sumrs   ¡   ó{   ø€ ð �?Š?˜1ÑÔ€Dðð ð ð ð ð ×
"Ò
" 7¨N¸CÀÝ*.°´Ð*AÑ*AÔ*Að #ñ Cô C€Cå˜W g¨s¬ÀÑDÔDÐDr$   c                 ó   — | S r+   r#   )rc   re   s     r%   Ú_array_sum_axis_noprv   ±   s   € à€Jr$   c                 ó   ‡ ‡‡‡— ˆˆ ˆˆfd„}|S )Nc                 ó
  •— | j         }‰s|dk     s|dk    rt          d¦  «        ‚||k    rt          d¦  «        ‚t          | j        ¦  «        }||         }|                     |¦  «         t          || j        ¦  «        }t          j        |‰t          ‰¦  «        ¦  «        }t          |¦  «        D ]Å}‰r"t          | j        |‰¦  «        }|| |         z  }Œ&|dk    r"t          | j        |d¦  «        }	|| |	         z  }ŒN|dk    r"t          | j        |d¦  «        }
|| |
         z  }Œv|dk    r"t          | j        |d¦  «        }|| |         z  }Œž|dk    r!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ÚpoprI   r`   ÚfullÚtyper1   r\   )rc   rX   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Úoprf   s                €€€€r%   Úinnerz gen_sum_axis_impl.<locals>.inner·   sÂ  ø€ ð Œxˆàð 	Hà�aŠxˆx˜4 !š8˜8Ý ð "Gñ Hô Hð Hð
 �4Š<ˆ<ÝÐ>Ñ?Ô?Ð?õ �c”i‘”ˆà˜$”<ˆà�
Š
�4ÑÔÐå8¸ÀÄÑKÔKÐå”Ð,¨dµD¸±J´JÑ?Ô?ˆõ   ™/œ/ð 	0ð 	0ˆJØð 0å&6°s´yÀ*Ø7Eñ'Gô 'GÐ#à˜#Ð1Ô2Ñ2��ð
 ˜1’9�9Ý#3°C´I¸zÈ1Ñ#MÔ#M�LØ˜c ,Ô/Ñ/�F�FØ˜Q’Y�YÝ#3°C´I¸zÈ1Ñ#MÔ#M�LØ˜c ,Ô/Ñ/�F�FØ˜Q’Y�YÝ#3°C´I¸zÈ1Ñ#MÔ#M�LØ˜c ,Ô/Ñ/�F�FØ˜Q’Y�YÝ#3°C´I¸zÈ1Ñ#MÔ#M�LØ˜c ,Ô/Ñ/�FøØˆr�&˜!‰}Œ}Ðr$   r#   )r�   rŒ   rŽ   rf   r�   s   ```` r%   Úgen_sum_axis_implr�   ¶   s6   øøøø€ ð<ð <ð <ð <ð <ð <ð <ð <ð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
        k    rt          d¦  «        ‚| j                             |¦  «        }|                      ||¦  «        }|d         ||d         f}|                     |||	g¬¦  «        }d}
t!          |
|||¦  «        }t#          |¦  «        Šˆfd	„}|                      ||||¦  «        }t'          | ||j         |¦  «        S )
NÚdtyper   r{   Fz'axis' entry is out of boundsrz   ©r9   Tc                 ó   •—  ‰| |¦  «        S r+   r#   )rc   rX   r’   Úcompileds      €r%   Úarray_sum_impl_axisz1array_sum_axis_dtype.<locals>.array_sum_impl_axis  ó   ø€ Øˆx˜˜TÑ"Ô"Ð"r$   )rm   Úgetattrr`   Útakerv   r9   rS   r   rT   rU   r{   r|   Útyping_contextÚresolve_value_typer2   Úreplacer�   r   r4   r   )rp   r7   rq   r9   Úrettyrf   rŽ   Úty_arrayÚty_axisÚty_dtyper�   rŒ   Úaxis_valÚgen_implr–   rr   r•   s                   @r%   Úarray_sum_axis_dtyper£   ÷   sƒ  ø€ ð
 ŒO€EØ)�7�5˜' 5Ñ)Ô)¨!Ñ,Ô,€Dõ ˆu�f˜dÑ#Ô#Ð+ÝŒWˆˆå ˆØ$'¤HÑ!€Xˆw˜Ø€MØ€NÝ�'�5œ=Ñ)Ô)ð à Ô.ˆà˜AÒÐØ%œ]¨^Ñ;ˆNØ˜AÒÐ °(´-Ò!?Ð!?ÝÐ<Ñ=Ô=Ð=àÔ(×;Ò;¸NÑKÔKˆØ×'Ò'¨°Ñ@Ô@ˆà�AŒw˜ $ q¤'Ð)ˆà�kŠk ¨'°8Ð<ˆkÑ=Ô=ˆØˆå  °ÀÀDÑIÔI€HÝ Ñ)Ô)€Hð#ð #ð #ð #ð #ð ×
"Ò
" 7Ð,?ÀÀdÑ
KÔ
K€CÝ˜G W¨c¬o¸sÑCÔCÐCr$   c           	      óÀ   ‡— |                      d¦  «        Šˆfd„}|                      ||||t          |j         ¬¦  «        ¬¦  «        }t          | ||j         |¦  «        S )Nr   c                 óh   •— ‰}t          j        | ¦  «        D ]}||                     ¦   «         z  }Œ|S r+   r_   )rc   r’   rd   re   rf   s       €r%   rg   z'array_sum_dtype.<locals>.array_sum_impl'  rh   r$   ri   rj   rl   ro   s         @r%   Úarray_sum_dtyper¦   "  rt   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
        k    rd|
› d�}t          |¦  «        ‚| j                             |
¦  «        }|                      ||
¦  «        }|d         |f}|                     ||g¬¦  «        }d}	t!          |	|
||¦  «        }t#          |¦  «        Šˆfd	„}|                      ||||¦  «        }t'          | ||j         |¦  «        S )
Nr’   r   r{   Fz'axis' entry (z) is out of boundsr“   Tc                 ó   •—  ‰| |¦  «        S r+   r#   )rc   rX   r•   s     €r%   r–   z+array_sum_axis.<locals>.array_sum_impl_axisW  r—   r$   )rm   r˜   r`   r™   rv   r9   rS   r   rT   rU   r{   r   rš   r›   r2   rœ   r�   r   r4   r   )rp   r7   rq   r9   r�   rf   rŽ   rž   rŸ   r�   rŒ   Úmsgr¡   r¢   r–   rr   r•   s                   @r%   Úarray_sum_axisrª   2  sˆ  ø€ ð
 ŒO€EØ)�7�5˜' 5Ñ)Ô)¨!Ñ,Ô,€Dõ ˆu�f˜dÑ#Ô#Ð+ÝŒWˆˆå ˆØœ(Ñ€XˆwØ€MØ€NÝ�'�5œ=Ñ)Ô)ð à Ô.ˆà˜AÒÐØ%œ]¨^Ñ;ˆNØ˜AÒÐ °(´-Ò!?Ð!?ØE >ÐEÐEÐEˆCÝ! #Ñ&Ô&Ð&àÔ(×;Ò;¸NÑKÔKˆØ×'Ò'¨°Ñ@Ô@ˆà�AŒw˜Ð ˆà�kŠk ¨'Ð2ˆkÑ3Ô3ˆØˆå  °ÀÀDÑIÔI€HÝ Ñ)Ô)€Hð#ð #ð #ð #ð #ð ×
"Ò
" 7Ð,?ÀÀdÑ
KÔ
K€CÝ˜G W¨c¬o¸sÑCÔCÐCr$   c                 óª   — | j         t          j        k    r(t          j        |¦  «                             | ¦  «        }n|                       |¦  «        }|S r+   )r�   r`   Útimedelta64Úint64Úview)r’   rW   Úacc_inits      r%   Úget_accumulatorr°   ^  sD   € Ø„z•R”^Ò#Ð#Ý”8˜E‘?”?×'Ò'¨Ñ.Ô.ˆˆà—:’:˜eÑ$Ô$ˆØ€Or$   Úprodc                 ó’   ‡— t          | t          j        ¦  «        r+t          | j        ¦  «        }t          |d¦  «        Šˆfd„}|S d S )Nr(   c                 óh   •— ‰}t          j        | ¦  «        D ]}||                     ¦   «         z  }Œ|S r+   r_   ©r,   rd   re   r¯   s      €r%   Úarray_prod_implz#array_prod.<locals>.array_prod_impln  s7   ø€ ØˆAÝ”Y˜q‘\”\ð ð �Ø�Q—V’V‘X”X‘��ØˆHr$   )rS   r   ÚArrayr	   r’   r°   )r,   r’   rµ   r¯   s      @r%   Ú
array_prodr·   f  sb   ø€ õ �!•U”[Ñ!Ô!ð Ý˜œÑ!Ô!ˆå" 5¨!Ñ,Ô,ˆð	ð 	ð 	ð 	ð 	ð Ððð r$   Úcumsumc                 ó`  ‡‡— t          | t          j        ¦  «        r‘| j        t          j        v }| j        t          j        k    }|r| j        j        t          j        j        k     s|rt          t          j        ¦  «        Šnt          | j        ¦  «        Št          ‰d¦  «        Šˆˆfd„}|S d S )Nr   c                 óˆ   •— t          j        | j        ‰¦  «        }‰}t          | j        ¦  «        D ]\  }}||z  }|||<   Œ|S r+   ©r`   ÚemptyÚsizeÚ	enumerateÚflat©r,   Úoutrd   Úidxre   r¯   r’   s        €€r%   Úarray_cumsum_implz'array_cumsum.<locals>.array_cumsum_impl…  óQ   ø€ Ý”(˜1œ6 5Ñ)Ô)ˆCØˆAÝ# A¤FÑ+Ô+ð ð ‘��QØ�Q‘�Ø��C‘�ØˆJr$   ©
rS   r   r¶   r’   Úsigned_domainÚbool_Úbitwidthr3   r	   r°   )r,   Ú
is_integerÚis_boolrÃ   r¯   r’   s       @@r%   Úarray_cumsumrË   w  s»   øø€ õ �!•U”[Ñ!Ô!ð !Ø”W¥Ô 3Ð3ˆ
Ø”'�Uœ[Ò(ˆØð 	&˜1œ7Ô+­e¬jÔ.AÒAÐAØð Bå�UœZÑ(Ô(ˆEˆEå˜QœWÑ%Ô%ˆEå" 5¨!Ñ,Ô,ˆð	ð 	ð 	ð 	ð 	ð 	ð !Ð ð'!ð !r$   Úcumprodc                 ó`  ‡‡— t          | t          j        ¦  «        r‘| j        t          j        v }| j        t          j        k    }|r| j        j        t          j        j        k     s|rt          t          j        ¦  «        Šnt          | j        ¦  «        Št          ‰d¦  «        Šˆˆfd„}|S d S )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”[Ñ!Ô!ð "Ø”W¥Ô 3Ð3ˆ
Ø”'�Uœ[Ò(ˆØð 	&˜1œ7Ô+­e¬jÔ.AÒAÐAØð Bå�UœZÑ(Ô(ˆEˆEå˜QœWÑ%Ô%ˆEå" 5¨!Ñ,Ô,ˆð	ð 	ð 	ð 	ð 	ð 	ð "Ð!ð'"ð "r$   Úmeanc                 ó&  ‡— t          | t          j        ¦  «        ru| j        t          j        t          t          j        g¦  «        z  v }|rt          t          j        ¦  «        }nt          | j        ¦  «        }t          |d¦  «        Šˆfd„}|S d S )Nr   c                 óx   •— ‰}t          j        | ¦  «        D ]}||                     ¦   «         z  }Œ|| j        z  S r+   )r`   ra   rb   r½   r´   s      €r%   Úarray_mean_implz#array_mean.<locals>.array_mean_implµ  s@   ø€ ð ˆAÝ”Y˜q‘\”\ð ð �Ø�Q—V’V‘X”X‘��Ø�q”v‘:Ðr$   )
rS   r   r¶   r’   Úinteger_domainÚ	frozensetrÇ   r	   Úfloat64r°   )r,   Ú	is_numberr’   rÔ   r¯   s       @r%   Ú
array_meanrÙ   ©  s›   ø€ õ �!•U”[Ñ!Ô!ð Ø”G�uÔ3µiÅÄÀÑ6NÔ6NÑNÐNˆ	Øð 	&Ý�Uœ]Ñ+Ô+ˆEˆEå˜QœWÑ%Ô%ˆEå" 5¨!Ñ,Ô,ˆð	ð 	ð 	ð 	ð 	ð Ðð#ð r$   Úvarc                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 óö   — |                       ¦   «         }d}t          j        | ¦  «        D ]E}|                     ¦   «         |z
  }|t          j        |t          j        |¦  «        z  ¦  «        z  }ŒF|| j        z  S ©Nr   )rÑ   r`   ra   rb   ÚrealÚconjr½   )r,   ÚmÚssdre   Úvals        r%   Úarray_var_implz!array_var.<locals>.array_var_implÄ  sm   € à—’‘”ˆAð ˆCÝ”Y˜q‘\”\ð 3ð 3�Ø—v’v‘x”x !‘|�Ø•r”w˜s¥R¤W¨S¡\¤\Ñ1Ñ2Ô2Ñ2��Ø˜œ‘<Ðr$   ©rS   r   r¶   )r,   rã   s     r%   Ú	array_varrå   À  s9   € õ �!•U”[Ñ!Ô!ð ð		 ð 		 ð 		 ð Ððð r$   Ústdc                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 ó0   — |                       ¦   «         dz  S ©Nç      à?)rÚ   ©r,   s    r%   Úarray_std_implz!array_std.<locals>.array_std_implÖ  s   € Ø—5’5‘7”7˜c‘>Ð!r$   rä   )r,   rì   s     r%   Ú	array_stdrí   Ò  s9   € õ �!•U”[Ñ!Ô!ð ð	"ð 	"ð 	"ð Ðð	ð r$   c                 ó   — | |k     S r+   r#   ©r,   Úmin_vals     r%   Úmin_comparatorrñ   Ü  ó   € àˆwŠ;Ðr$   c                 ó   — | |k    S r+   r#   rï   s     r%   Úmax_comparatorrô   á  rò   r$   c                 ó   — dS ©NFr#   rë   s    r%   Úreturn_falser÷   æ  s   € àˆ5r$   Úminc                 óÀ  ‡‡— t          | t          j        ¦  «        sd S t          | j        t          j        t          j        f¦  «        rt          j        Št          Šnzt          | j        t          j	        ¦  «        rt          Šd„ }t          |¦  «        ŠnAt          | j        t          j        ¦  «        rt          j        Št          Šnt          Št          Šˆˆfd„}|S )Nc                 ón   — | j         |j         k     rdS | j         |j         k    r| j        |j        k     rdS dS ©NTF©rÞ   Úimagrï   s     r%   Ú	comp_funcznpy_min.<locals>.comp_funcø  ó>   € ØŒv˜œÒ$Ð$Ø�tØ”˜7œ<Ò'Ð'Ø”6˜GœLÒ(Ð(Ø˜4Ø�5r$   c                 ó.  •— | j         dk    rt          d¦  «        ‚t          j        | ¦  «        }t	          |¦  «                             d¦  «        } ‰|¦  «        r|S |D ]3}|                     ¦   «         } ‰|¦  «        r|c S  ‰||¦  «        r|}Œ4|S )Nr   zDzero-size array to reduction operation minimum which has no identity©r½   r|   r`   ra   Únextr™   rb   )r,   ÚitÚ	min_valuer®   re   Ú
comparatorÚpre_return_funcs        €€r%   Úimpl_minznpy_min.<locals>.impl_min  óº   ø€ ØŒ6�QŠ;ˆ;Ýð =ñ >ô >ð >õ ŒY�q‰\Œ\ˆÝ˜‘H”H—M’M !Ñ$Ô$ˆ	Øˆ?˜9Ñ%Ô%ð 	ØÐàð 	ð 	ˆDØ—	’	‘”ˆAØˆ˜qÑ!Ô!ð Ø���Øˆz˜!˜YÑ'Ô'ð Ø�	øØÐr$   )rS   r   r¶   r’   Ú
NPDatetimeÚNPTimedeltar`   Úisnatrñ   ÚComplexr÷   r   ÚFloatÚisnan)r,   rþ   r  r  r  s      @@r%   Únpy_minr  ë  óÚ   øø€ õ �a�œÑ%Ô%ð Øˆå�!”'�EÔ,­eÔ.?Ð@ÑAÔAð $Ýœ(ˆÝ#ˆ
ˆ
Ý	�A”G�Uœ]Ñ	+Ô	+ð $Ý&ˆð	ð 	ð 	õ & iÑ0Ô0ˆ
ˆ
Ý	�A”G�Uœ[Ñ	)Ô	)ð $Ýœ(ˆÝ#ˆ
ˆ
å&ˆÝ#ˆ
ðð ð ð ð ð ð$ €Or$   Úmaxc                 óÀ  ‡‡— t          | t          j        ¦  «        sd S t          | j        t          j        t          j        f¦  «        rt          j        Št          Šnzt          | j        t          j	        ¦  «        rt          Šd„ }t          |¦  «        ŠnAt          | j        t          j        ¦  «        rt          j        Št          Šnt          Št          Šˆˆfd„}|S )Nc                 ón   — | j         |j         k    rdS | j         |j         k    r| j        |j        k    rdS dS 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	          |¦  «                             d¦  «        } ‰|¦  «        r|S |D ]3}|                     ¦   «         } ‰|¦  «        r|c S  ‰||¦  «        r|}Œ4|S )Nr   zDzero-size array to reduction operation maximum which has no identityr  )r,   r  Ú	max_valuer®   re   r  r  s        €€r%   Úimpl_maxznpy_max.<locals>.impl_max:  r  r$   )rS   r   r¶   r’   r	  r
  r`   r  rô   r  r÷   r   r  r  )r,   rþ   r  r  r  s      @@r%   Únpy_maxr    r  r$   c                 óZ  — | j         dk    rt          d¦  «        ‚t          j        | ¦  «        }t	          |¦  «                             d¦  «        }d}t          j        |¦  «        r|S d}|D ]=}|                     ¦   «         }t          j        |¦  «        r|c S ||k     r|}|}|dz  }Œ>|S ©Nr   ú*attempt to get argmin of an empty sequencer(   ©r½   r|   r`   ra   r  r™   r  rb   )Úarryr  r  Úmin_idxrÂ   r®   re   s          r%   Úarray_argmin_impl_datetimer  O  ó¹   € à„y�A‚~€~ÝÐEÑFÔFÐFÝ	Œ�4‰Œ€BÝ�R‘”—’˜aÑ Ô €IØ€GÝ	„x�	ÑÔð Øˆà
€CØð ð ˆØ�IŠI‰KŒKˆÝŒ8�A‰;Œ;ð 	ØˆJˆJˆJØˆyŠ=ˆ=ØˆIØˆGØˆq‰ˆˆØ€Nr$   c                 óè   — | j         dk    rt          d¦  «        ‚| j        D ]}|}d} t          j        |¦  «        r|S d}| j        D ])}t          j        |¦  «        r|c S ||k     r|}|}|dz  }Œ*|S r  ©r½   r|   r¿   r`   r  ©r  re   r  r  rÂ   s        r%   Úarray_argmin_impl_floatr$  e  ó£   € à„y�A‚~€~ÝÐEÑFÔFÐFØŒYð ð ˆØˆ	ØˆØÝ	„x�	ÑÔð Øˆà
€CØŒYð ð ˆÝŒ8�A‰;Œ;ð 	ØˆJˆJˆ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)  {  sƒ   € à„y�A‚~€~ÝÐEÑFÔFÐFØŒYð *ð *ˆØˆ	ØˆØˆå˜=Ñ)Ô)Ð)à
€CØŒYð ð ˆØˆyŠ=ˆ=ØˆIØˆGØˆq‰ˆˆØ€Nr$   Úargminc                 ó  ‡— t          | j        t          j        t          j        f¦  «        rt
          Šn.t          | j        t          j        ¦  «        rt          Šnt          Št          |¦  «        rdˆfd„	}nt          | |‰¦  «        }|S )Nc                 ó   •—  ‰| ¦  «        S r+   r#   ©r,   rX   Úflatten_impls     €r%   Úarray_argmin_implz'array_argmin.<locals>.array_argmin_implš  ó   ø€ Ø�< ‘?”?Ð"r$   r+   )rS   r’   r   r	  r
  r  r  r$  r)  r   Ú%build_argmax_or_argmin_with_axis_impl)r,   rX   r/  r.  s      @r%   Úarray_argminr2  �  ó¢   ø€ õ �!”'�EÔ,­eÔ.?Ð@ÑAÔAð 1Ý1ˆˆÝ	�A”G�Uœ[Ñ	)Ô	)ð 1Ý.ˆˆå0ˆå�4ÑÔð 
ð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#õ BØˆt�\ñ
ô 
Ðð Ðr$   c                 óZ  — | j         dk    rt          d¦  «        ‚t          j        | ¦  «        }t	          |¦  «                             d¦  «        }d}t          j        |¦  «        r|S d}|D ]=}|                     ¦   «         }t          j        |¦  «        r|c S ||k    r|}|}|dz  }Œ>|S ©Nr   z*attempt to get argmax of an empty sequencer(   r  )r  r  r  Úmax_idxrÂ   r®   re   s          r%   Úarray_argmax_impl_datetimer7  £  r   r$   c                 óè   — | j         dk    rt          d¦  «        ‚| j        D ]}|}d} t          j        |¦  «        r|S d}| j        D ])}t          j        |¦  «        r|c S ||k    r|}|}|dz  }Œ*|S r5  r"  ©r  re   r  r6  rÂ   s        r%   Úarray_argmax_impl_floatr:  ¹  r%  r$   c                 óŒ   — | j         dk    rt          d¦  «        ‚| j        D ]}|}d} d}| j        D ]}||k    r|}|}|dz  }Œ|S r5  )r½   r|   r¿   r9  s        r%   Úarray_argmax_impl_genericr<  Ï  ss   € à„y�A‚~€~ÝÐEÑFÔFÐFØŒYð ð ˆØˆ	ØˆØà
€CØŒYð ð ˆØˆ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.
    rX   Nc                 ó¾  •— |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        d         }|                     ¦   «         }|j        | j        k    sJ ‚|j        |z  dk    sJ ‚t          j	        |j        |z  ‰
¦  «        }t          |j        ¦  «        D ]!} ‰	|||z  |dz   |z  …         ¦  «        ||<   Œ"| 
                    |j        d d…         ¦  «        S )Nr   zaxis is out of boundsr(   éÿÿÿÿ)r{   r|   r1   r   Ú	transposer~   Úravelr½   r`   r¼   Úreshape)r,   rX   Útmpr-   Útranspose_indexÚtransposed_arrrà   ÚraveledrÁ   r.  r�   Útuple_buffers            €€€r%   Úimplz3build_argmax_or_argmin_with_axis_impl.<locals>.implë  s‚  ø€ Ø�!Š8ˆ8Ø”6˜D‘=ˆDà�!Š8ˆ8�t˜qœv’~�~ÝÐ4Ñ5Ô5Ð5ð Œ6�QŠ;ˆ;Ø�< ‘?”?Ð"ð ˆÝ�t˜QœV a™ZÑ(Ô(ð 	/ð 	/ˆAÝ  Q¨¨A©Ñ.Ô.ˆCˆCÝ'¨¨Q¬V°a©Z¸Ñ>Ô>ˆØŸš _Ñ5Ô5ˆð Ô  Ô$ˆØ ×&Ò&Ñ(Ô(ˆØŒ|˜qœvÒ%Ð%Ð%Ð%ØÔ" QÑ&¨!Ò+Ð+Ð+Ð+ÝŒh�~Ô*¨aÑ/°Ñ7Ô7ˆÝ�s”x‘”ð 	>ð 	>ˆAØ!�\ '¨!¨a©%°°Q±¸!±Ð*;Ô"<Ñ=Ô=ˆC�‰FˆFð �{Š{˜>Ô/°°°Ô4Ñ5Ô5Ð5r$   r+   )r   r   r3   Útupler1   r{   )r,   rX   r.  rH  r�   rG  s     ` @@r%   r1  r1  á  sb   øøø€ õ
 �T˜6Ñ"Ô"Ð"ÝŒJ€Eå�˜qœv™œÑ'Ô'€Lð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð> €Kr$   Úargmaxc                 ó  ‡— t          | j        t          j        t          j        f¦  «        rt
          Šn.t          | j        t          j        ¦  «        rt          Šnt          Št          |¦  «        rdˆfd„	}nt          | |‰¦  «        }|S )Nc                 ó   •—  ‰| ¦  «        S r+   r#   r-  s     €r%   Úarray_argmax_implz'array_argmax.<locals>.array_argmax_impl  r0  r$   r+   )rS   r’   r   r	  r
  r7  r  r:  r<  r   r1  )r,   rX   rM  r.  s      @r%   Úarray_argmaxrN    r3  r$   Úallc                 ó   — d„ }|S )Nc                 ób   — t          j        | ¦  «        D ]}|                     ¦   «         s dS ŒdS r!   r_   ©r,   re   s     r%   Úflat_allznp_all.<locals>.flat_all$  s:   € Ý”˜1‘”ð 	ð 	ˆAØ—6’6‘8”8ð Ø�u�uðàˆtr$   r#   )r,   rS  s     r%   Únp_allrT  !  s   € ðð ð ð €Or$   çñhãˆµøä>ç:Œ0âŽyE>Fc                 óH  — t          j        | ¦  «        }t          j        |¦  «        }|s|s|r|sdS |r|r|sdS nft          j        | ¦  «        st          j        |¦  «        r| |k    S t          j        | |z
  ¦  «        ||t          j        |dz  ¦  «        z  z   k    rdS dS )NFç      ð?T©r`   r  ÚisinfÚabs)Úa_vÚb_vÚrtolÚatolÚ	equal_nanÚ	a_v_isnanÚ	b_v_isnans          r%   Ú_allclose_scalarsrc  -  sË   € å”˜‘”€IÝ”˜‘”€Ið ð ˜Ið ØðØ(ðàˆuð ð �Yð Øð 	Ø�5ð	õ Œ8�C‰=Œ=ð 	�BœH S™MœMð 	Ø˜#’:ÐåŒ6�#˜‘)ÑÔ˜t d­R¬V°C¸#±IÑ->Ô->Ñ&>Ñ>Ò>Ð>Ø�5àˆ4r$   Úallclosec                 ój  — 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 d S d S )Nú)The first argument "a" must be array-likeú*The second argument "b" must be array-likeú2The third argument "rtol" must be a floating pointú3The fourth argument "atol" must be a floating pointú0The fifth argument "equal_nan" must be a booleanrU  rV  Fc                 ó*   — t          | ||||¬¦  «        S )N©r^  r_  r`  )rc  ©r,   Úbr^  r_  r`  s        r%   Únp_allclose_impl_scalar_scalarz3np_allclose.<locals>.np_allclose_impl_scalar_scalara  s$   € å$ Q¨°¸4Ø/8ð:ñ :ô :ð :r$   c                 ó®   — t          j        |¦  «        }t          j        |¦  «        D ]+}t          | |                     ¦   «         |||¬¦  «        s dS Œ,dS ©Nrl  FT©r`   Úasarrayra   rc  rb   )r,   rn  r^  r_  r`  Úbvs         r%   Únp_allclose_impl_scalar_arrayz2np_allclose.<locals>.np_allclose_impl_scalar_arrayg  sc   € å”
˜1‘”ˆAÝ”i ‘l”lð !ð !�Ý(¨¨B¯GªG©I¬I¸DÀtØ3<ð>ñ >ô >ð !à ˜5˜5ð!ð �4r$   c                 ó®   — t          j        | ¦  «        } t          j        | ¦  «        D ]+}t          |                     ¦   «         ||||¬¦  «        s dS Œ,dS rq  rr  )r,   rn  r^  r_  r`  Úavs         r%   Únp_allclose_impl_array_scalarz2np_allclose.<locals>.np_allclose_impl_array_scalarq  sc   € å”
˜1‘”ˆAÝ”i ‘l”lð !ð !�Ý(¨¯ª©¬°A¸DÀtØ3<ð>ñ >ô >ð !à ˜5˜5ð!ð �4r$   c                 ó4  — t          j        | ¦  «        } t          j        |¦  «        }t          j        | |¦  «        \  }}t          j        ||f¦  «        D ]@\  }}t	          |                     ¦   «         |                     ¦   «         |||¬¦  «        s dS ŒAdS rq  )r`   rs  Úbroadcast_arraysra   rc  rb   )	r,   rn  r^  r_  r`  Úa_aÚb_brw  rt  s	            r%   Únp_allclose_impl_array_arrayz1np_allclose.<locals>.np_allclose_impl_array_array{  s›   € å”
˜1‘”ˆAÝ”
˜1‘”ˆAÝÔ*¨1¨aÑ0Ô0‰HˆC�åœ) S¨# JÑ/Ô/ð !ð !‘��BÝ(¨¯ª©¬°B·G²G±I´IÀDØ.2¸iðIñ Iô Ið !à ˜5˜5ð!ð �4r$   ©rU  rV  F)	r
   r   rS   Úfloatr   r  ÚboolÚBooleanÚNumber)r,   rn  r^  r_  r`  Úis_a_scalarÚis_b_scalarro  ru  rx  r}  s              r%   Únp_allcloser…  G  sÔ  € õ ˜AÑÔð GÝÐEÑFÔFÐFå˜AÑÔð HÝÐFÑGÔGÐGå�d�U¥E¤KÐ0Ñ1Ô1ð ,Ýð +ñ ,ô ,ð 	,õ �d�U¥E¤KÐ0Ñ1Ô1ð ,Ýð +ñ ,ô ,ð 	,õ �i¥$­¬Ð!6Ñ7Ô7ð %Ýð $ñ %ô %ð 	%õ ˜Q¥¤Ñ-Ô-€KÝ˜Q¥¤Ñ-Ô-€Kàð (,�{ð (,ØBGØ5:ð	:ð 	:ð 	:ð 	:ð .Ð-Ø	ð ",˜[ð ",ØAFØ49ð	ð 	ð 	ð 	ð -Ð,Øð ,˜[ð ,ØAFØ49ð	ð 	ð 	ð 	ð -Ð,Øð , ð ,Ø@EØ38ð	ð 	ð 	ð 	ð ,Ð+ð,ð ,ð ,ð ,r$   Úanyc                 ó   — d„ }|S )Nc                 ób   — t          j        | ¦  «        D ]}|                     ¦   «         r dS ŒdS rû   r_   rR  s     r%   Úflat_anyznp_any.<locals>.flat_anyŽ  s:   € Ý”˜1‘”ð 	ð 	ˆAØ�vŠv‰xŒxð Ø�t�tðàˆur$   r#   )r,   r‰  s     r%   Únp_anyrŠ  ‹  s   € ðð ð ð €Or$   c                 ó’   — |�t          |t          j        ¦  «        rdd„}n%|�t          |t          j        ¦  «        rdd„}ndd„}|S )Nc                 óR   — t          j        | ¦  «        }t          j        |¦  «        S r+   )r`   rs  rÑ   )r,   rX   Úweightsrc   s       r%   Únp_average_implz#np_average.<locals>.np_average_impl›  s   € Ý”*˜Q‘-”-ˆCÝ”7˜3‘<”<Ðr$   c                 ór  — t          j        | ¦  «        }t          j        |¦  «        }|j        |j        k    r+|€t          d¦  «        ‚|j        dk    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.)r`   rs  r~   Ú	TypeErrorr{   ÚsumÚZeroDivisionErrorÚmultiply)r,   rX   r�  rc   ÚsclÚavgs         r%   rŽ  z#np_average.<locals>.np_average_impl   sÆ   € Ý”j ‘m”m�Ýœ* WÑ-Ô-�à”9 ¤Ò-Ð-Ø�|Ý'ð4ñ5ô 5ð 5ð ”| qÒ(Ð(Ý'ð4ñ5ô 5ð 5õ ”f˜W‘o”o�Ø˜#’:�:Ý+ØCñEô Eð Eõ ”f�Rœ[¨¨gÑ6Ô6Ñ7Ô7¸#Ñ=�Ø�
r$   c                 ó    — t          d¦  «        ‚)Nz)Numba does not support average with axis.)r‘  )r,   rX   r�  s      r%   rŽ  z#np_average.<locals>.np_average_impl¶  s   € ÝÐ KÑLÔLÐLr$   ©NN)rS   r   ÚNoneType)r,   rX   r�  rŽ  s       r%   Ú
np_averagerš  —  s‚   € ð €�* W­e¬nÑ=Ô=€ð	 ð 	 ð 	 ð 	 ð 	 ð ˆ<�: d­E¬NÑ;Ô;ˆ<ðð ð ð ð ð,Mð Mð Mð Mð Ðr$   c                 óŠ   — t          | t          j        t          j        f¦  «        rt          j        S t          d„ ¦   «         }|S )z$
    A generic isnan() function
    c                 ó   — dS rö   r#   ©Úxs    r%   Ú_trivial_isnanz!get_isnan.<locals>._trivial_isnanÃ  s   € à�5r$   )rS   r   r  r  r`   r  r   )r’   rŸ  s     r%   Ú	get_isnanr   ¼  sF   € õ �%�%œ+¥u¤}Ð5Ñ6Ô6ð ÝŒxˆå	ð	ð 	ñ 
Ô	ð	àÐr$   c                 ó*   — t          | ¦  «        rd„ S d S )Nc                 ó<   — t          j        | ¦  «        j        dk    S rÝ   ©r`   rs  rý   r�  s    r%   ú<lambda>znp_iscomplex.<locals>.<lambda>Í  ó   € �œ A™œÔ+¨qÒ0€ r$   ©r
   r�  s    r%   Únp_iscomplexr§  É  ó    € å˜ÑÔð 1à0Ð0Ð0Øˆ4r$   c                 ó*   — t          | ¦  «        rd„ S d S )Nc                 ó<   — 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„}nˆfd„}|S )Nc                 ó   •— | €dS ‰S rö   r#   ©rž  Úiscmplxs    €r%   rH  ziscomplexobj.<locals>.implã  s   ø€ ØˆyØ�uØˆNr$   c                 ó   •— ‰S r+   r#   r®  s    €r%   rH  ziscomplexobj.<locals>.implè  s   ø€ ØˆNr$   )Údetermine_dtyperS   r   ÚOptionalr�   r`   Ú
issubdtypeÚcomplexfloating)rž  ÚdtrH  r¯  s      @r%   Úiscomplexobjr¶  Ù  s™   ø€ õ 
˜Ñ	Ô	€BÝ�!•U”^Ñ$Ô$ð %Ý˜QœVÑ$Ô$ˆÝŒm˜B¥Ô 2Ñ3Ô3€Gå�!•U”^Ñ$Ô$ð ð	ð 	ð 	ð 	ð 	ð 	ð
	ð 	ð 	ð 	ð 	à€Kr$   c                 ó   — d„ }|S )Nc                 ó,   — t          j        | ¦  «         S r+   )r`   r¶  r�  s    r%   rH  zisrealobj.<locals>.implò  s   € Ý”? 1Ñ%Ô%Ð%Ð%r$   r#   ©rž  rH  s     r%   Ú	isrealobjrº  í  s   € ð
&ð &ð &à€Kr$   c                 ó0   ‡— t          | ¦  «        Šˆfd„}|S )Nc                 ó   •— ‰S r+   r#   )Úelementrr   s    €r%   rH  znp_isscalar.<locals>.implû  s   ø€ Øˆ
r$   )r   )r½  rH  rr   s     @r%   Únp_isscalarr¾  ÷  s.   ø€ å
˜Ñ
!Ô
!€Cðð ð ð ð à€Kr$   c                 ó@   ‡— t          |¦  «        rdˆfd„	}ndˆfd„	}|S )Nc                 óˆ   •— t          j        t          j        | ¦  «         ‰t          j        | ¦  «        ¦  «        ¦  «        S r+   ©r`   Úlogical_andrZ  Úsignbit©rž  rÁ   Úfns     €r%   rH  zis_np_inf_impl.<locals>.impl  s/   ø€ Ý”>¥"¤(¨1¡+¤+¨r¨rµ"´*¸Q±-´-Ñ/@Ô/@ÑAÔAÐAr$   c                 óŠ   •— t          j        t          j        | ¦  «         ‰t          j        | ¦  «        ¦  «        |¦  «        S r+   rÁ  rÄ  s     €r%   rH  zis_np_inf_impl.<locals>.impl  s1   ø€ Ý”>¥"¤(¨1¡+¤+¨r¨rµ"´*¸Q±-´-Ñ/@Ô/@À#ÑFÔFÐFr$   r+   ©r   )rž  rÁ   rÅ  rH  s     ` r%   Úis_np_inf_implrÈ     sk   ø€ õ �3ÑÔð Gð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð	Gð 	Gð 	Gð 	Gð 	Gð 	Gð €Kr$   c                 óD   — 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                 óD   — t          d„ ¦  «        }t          | ||¦  «        S )Nc                 ó   — |  S r+   r#   r�  s    r%   r¤  zisposinf.<locals>.<lambda>  s   €  Q B€ r$   rË  rÄ  s      r%   ÚisposinfrÏ    s#   € å	˜,˜,Ñ	'Ô	'€BÝ˜!˜S "Ñ%Ô%Ð%r$   c                 ó   — | |k     S r+   r#   ©r,   rn  s     r%   Ú	less_thanrÒ    ó   € àˆqŠ5€Lr$   c                 ó   — | |k    S r+   r#   rÑ  s     r%   Úgreater_thanrÕ    rÓ  r$   c                 ó:   — | j         dk    rt          d¦  «        ‚d S )Nr   z3zero-size array to reduction operation not possible)r½   r|   rë   s    r%   Úcheck_arrayr×  #  s#   € à„v�‚{€{ÝÐNÑOÔOÐOð €{r$   c                 ó"   ‡ — |rˆ fd„}nˆ fd„}|S )Nc                 óØ  •— t          j        | ¦  «        }t          |¦  «         t          j        |¦  «        }t	          |¦  «                             d¦  «        }|D ]Œ}|                     ¦   «         }t          j        |j        ¦  «        rt          j        |j        ¦  «        s|}ŒK ‰|j        |j        ¦  «        r|}Œd|j        |j        k    r ‰|j	        |j	        ¦  «        r|}Œ�|S rÝ   )
r`   rs  r×  ra   r  r™   rb   r  rÞ   rý   ©r,   rc   r  Ú
return_valr®   re   Úcomparison_ops         €r%   rH  z!nan_min_max_factory.<locals>.impl+  sÞ   ø€ Ý”*˜Q‘-”-ˆCÝ˜ÑÔÐÝ”˜3‘”ˆBÝ˜b™œŸš qÑ)Ô)ˆJØð 	+ð 	+�Ø—I’I‘K”K�Ý”8˜JœOÑ,Ô,ð +µR´X¸a¼fÑ5EÔ5Eð +Ø!"�J�Jà$�} Q¤V¨Z¬_Ñ=Ô=ð +Ø%&˜
˜
Øœ :¤?Ò2Ð2Ø(˜=¨¬°´ÑAÔAð +Ø)*˜JøØÐr$   c                 ó0  •— t          j        | ¦  «        }t          |¦  «         t          j        |¦  «        }t	          |¦  «                             d¦  «        }|D ]8}|                     ¦   «         }t          j        |¦  «        s ‰||¦  «        s|}Œ9|S rÝ   )r`   rs  r×  ra   r  r™   rb   r  rÚ  s         €r%   rH  z!nan_min_max_factory.<locals>.impl<  sŽ   ø€ Ý”*˜Q‘-”-ˆCÝ˜ÑÔÐÝ”˜3‘”ˆBÝ˜b™œŸš qÑ)Ô)ˆJØð 'ð '�Ø—I’I‘K”K�Ý”x ‘{”{ð 'Ø(˜=¨°QÑ7Ô7ð 'Ø%&˜
øØÐr$   r#   )rÜ  Úis_complex_dtyperH  s   `  r%   Únan_min_max_factoryrß  )  sI   ø€ Øð ð	ð 	ð 	ð 	ð 	ð 	ð"
	ð 
	ð 
	ð 
	ð 
	ð €Kr$   )rÞ  Tc                 óh  — t          j        | ¦  «        rt          j        |¦  «        r|S t          j        | ¦  «        r"t          j        |¦  «        r| dk    |dk    k    S t          j        | ¦  «        st          j        |¦  «        rdS t          | |z
  ¦  «        ||t          |¦  «        z  z   k    S )Nr   FrY  )rž  Úyr^  r_  r`  s        r%   Ú_isclose_itemrâ  Y  s¡   € å	„x��{„{ð 2•r”x ‘{”{ð 2ØÐÝ	Œ�!‰Œð 2�œ !™œð 2Ø�A’˜1˜qš5Ò!Ð!Ý	Œ�!‰Œð 2�œ ™œð 2Øˆuå�1�q‘5‰zŒz˜T D­3¨q©6¬6¡MÑ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	„}nvt          | t          j	        ¦  «        rt          |t          j        ¦  «        rdd
„}n=t          | t          j        ¦  «        rt          |t          j        ¦  «        rdd„}ndd„}|S )Nrf  rg  rh  ri  rj  rU  rV  Fc                 ó2  — |                       d¦  «        }|}t          j        t          |¦  «        t          j        ¦  «        }t          t          |¦  «        ¦  «        D ]}t          ||         ||||¦  «        ||<   Œ|                      | j        ¦  «        S ©Nr?  ©rB  r`   ÚzerosrD   rÇ   r1   râ  r~   ©	r,   rn  r^  r_  r`  rž  rá  rÁ   r-   s	            r%   Úisclose_implzisclose.<locals>.isclose_implz  s   € Ø—	’	˜"‘”ˆAØˆAÝ”(�3˜q™6œ6¥2¤8Ñ,Ô,ˆCÝ�3˜s™8œ8‘_”_ð Gð G�Ý& q¨¤t¨Q°°d¸IÑFÔF��A‘�Ø—;’;˜qœwÑ'Ô'Ð'r$   c                 ó2  — | }|                      d¦  «        }t          j        t          |¦  «        t          j        ¦  «        }t          t          |¦  «        ¦  «        D ]}t          |||         |||¦  «        ||<   Œ|                      |j        ¦  «        S rå  ræ  rè  s	            r%   ré  zisclose.<locals>.isclose_implƒ  s   € ØˆAØ—	’	˜"‘”ˆAÝ”(�3˜q™6œ6¥2¤8Ñ,Ô,ˆCÝ�3˜s™8œ8‘_”_ð Gð G�Ý& q¨!¨A¬$°°d¸IÑFÔF��A‘�Ø—;’;˜qœwÑ'Ô'Ð'r$   c                 óä  — t          j        | j        |j        ¦  «        }t          j        | |¦  «        }t          j        ||¦  «        }t          j        t          |¦  «        t           j        ¬¦  «        }t          t          j        ||f¦  «        ¦  «        D ]B\  }	\  }
}t          |
 
                    ¦   «         | 
                    ¦   «         |||¦  «        ||	<   ŒCt          j        ||¦  «        S ©N©r’   )r`   Úbroadcast_shapesr~   Úbroadcast_torç  rD   rÇ   r¾   ra   râ  rb   )r,   rn  r^  r_  r`  r~   Úa_Úb_rÁ   r-   rw  rt  s               r%   ré  zisclose.<locals>.isclose_implŒ  sÅ   € ÝÔ'¨¬°´Ñ9Ô9ˆEÝ”  EÑ*Ô*ˆBÝ”  EÑ*Ô*ˆBå”(�3˜r™7œ7­"¬(Ð3Ñ3Ô3ˆCÝ(­¬°B¸°8Ñ)<Ô)<Ñ=Ô=ð 2ð 2‘�‘8�B˜Ý& r§w¢w¡y¤y°"·'²'±)´)¸TÀ4Ø'0ñ2ô 2��A‘�å”? 3¨Ñ.Ô.Ð.r$   c                 ó(   — t          | ||||¦  «        S r+   )râ  rm  s        r%   ré  zisclose.<locals>.isclose_impl˜  s   € Ý   A t¨T°9Ñ=Ô=Ð=r$   r~  )
r
   r   rS   r  r   r  r€  r�  r¶   r‚  )r,   rn  r^  r_  r`  ré  s         r%   Úiscloseró  e  s¸  € å˜AÑÔð GÝÐEÑFÔFÐFå˜AÑÔð HÝÐFÑGÔGÐGå�d�U¥E¤KÐ0Ñ1Ô1ð ,Ýð +ñ ,ô ,ð 	,õ �d�U¥E¤KÐ0Ñ1Ô1ð ,Ýð +ñ ,ô ,ð 	,õ �i¥$­¬Ð!6Ñ7Ô7ð %Ýð $ñ %ô %ð 	%õ �!•U”[Ñ!Ô!ð  >¥j°µE´LÑ&AÔ&Að  >ð	(ð 	(ð 	(ð 	(ð 	(õ 
�A•u”|Ñ	$Ô	$ð >­°Aµu´{Ñ)CÔ)Cð >ð	(ð 	(ð 	(ð 	(ð 	(õ 
�A•u”{Ñ	#Ô	#ð >­
°1µe´kÑ(BÔ(Bð >ð		/ð 		/ð 		/ð 		/ð 		/ð	>ð 	>ð 	>ð 	>ð Ðr$   c                 óz   — t          | ¦  «        }t          j        |t          j        ¦  «        rt          S t
          S r+   )r±  r`   r³  r´  Úcomplex_nanminÚreal_nanmin©r,   rµ  s     r%   Ú	np_nanminrø  ž  ó2   € å	˜Ñ	Ô	€BÝ	„}�R�Ô+Ñ,Ô,ð ÝÐåÐr$   c                 óz   — t          | ¦  «        }t          j        |t          j        ¦  «        rt          S t
          S r+   )r±  r`   r³  r´  Úcomplex_nanmaxÚreal_nanmaxr÷  s     r%   Ú	np_nanmaxrý  §  rù  r$   c                 ór   ‡— t          | t          j        ¦  «        sd S t          | j        ¦  «        Šˆfd„}|S )Nc                 óÚ   •— d}d}t          j        | ¦  «        D ]=}|                     ¦   «         } ‰|¦  «        s||                     ¦   «         z  }|dz  }Œ>t          j        ||¦  «        S ©Nr�  r   r(   )r`   ra   rb   Údivide)r,   rd   Úcountr®   re   r  s        €r%   Únanmean_implz np_nanmean.<locals>.nanmean_impl¶  sn   ø€ ØˆØˆÝ”I˜a‘L”Lð 	ð 	ˆDØ—	’	‘”ˆAØ�5˜‘8”8ð Ø�Q—V’V‘X”X‘�Ø˜‘
�øåŒy˜˜EÑ"Ô"Ð"r$   ©rS   r   r¶   r   r’   )r,   r  r  s     @r%   Ú
np_nanmeanr  °  sL   ø€ å�a�œÑ%Ô%ð ØˆÝ�a”gÑÔ€Eð	#ð 	#ð 	#ð 	#ð 	#ð Ðr$   c                 ór   ‡— t          | t          j        ¦  «        sd S t          | j        ¦  «        Šˆfd„}|S )Nc                 óZ  •— t          j        | ¦  «        }d}d}t          j        | ¦  «        D ]i}|                     ¦   «         } ‰|¦  «        sH|                     ¦   «         |z
  }|t          j        |t          j        |¦  «        z  ¦  «        z  }|dz  }Œjt          j        ||¦  «        S r   )r`   Únanmeanra   rb   rÞ   rß   r  )r,   rà   rá   r  r®   re   râ   r  s          €r%   Únanvar_implznp_nanvar.<locals>.nanvar_implÊ  sž   ø€ åŒJ�q‰MŒMˆð ˆØˆÝ”I˜a‘L”Lð 	ð 	ˆDØ—	’	‘”ˆAØ�5˜‘8”8ð Ø—v’v‘x”x !‘|�Ø•r”w˜s¥R¤W¨S¡\¤\Ñ1Ñ2Ô2Ñ2�Ø˜‘
�øåŒy˜˜eÑ$Ô$Ð$r$   r  )r,   r	  r  s     @r%   Ú	np_nanvarr
  Ä  sL   ø€ å�a�œÑ%Ô%ð ØˆÝ�a”gÑÔ€Eð%ð %ð %ð %ð %ð  Ðr$   c                 óD   — t          | t          j        ¦  «        sd S d„ }|S )Nc                 ó0   — t          j        | ¦  «        dz  S ré   )r`   Únanvarrë   s    r%   Únanstd_implznp_nanstd.<locals>.nanstd_implâ  s   € ÝŒy˜‰|Œ|˜sÑ"Ð"r$   rä   )r,   r  s     r%   Ú	np_nanstdr  Ý  s2   € å�a�œÑ%Ô%ð Øˆð#ð #ð #ð Ðr$   c                 óò   ‡‡— t          | t          j        ¦  «        sd S t          | j        t          j        ¦  «        rt          j        }n| j        } |d¦  «        Št          | j        ¦  «        Šˆˆfd„}|S )Nr   c                 ó‚   •— ‰}t          j        | ¦  «        D ]&}|                     ¦   «         } ‰|¦  «        s||z  }Œ'|S r+   r_   )r,   rd   r®   re   r  rf   s       €€r%   Únansum_implznp_nansum.<locals>.nansum_impló  sK   ø€ ØˆÝ”I˜a‘L”Lð 	ð 	ˆDØ—	’	‘”ˆAØ�5˜‘8”8ð Ø�Q‘�øØˆr$   ©rS   r   r¶   r’   ÚIntegerr3   r   )r,   r�   r  r  rf   s      @@r%   Ú	np_nansumr  è  s…   øø€ å�a�œÑ%Ô%ð ØˆÝ�!”'�5œ=Ñ)Ô)ð Ý”
ˆˆà”ˆØˆ5�‰8Œ8€DÝ�a”gÑÔ€Eðð ð ð ð ð ð Ðr$   c                 óò   ‡‡— t          | t          j        ¦  «        sd S t          | j        t          j        ¦  «        rt          j        }n| j        } |d¦  «        Št          | j        ¦  «        Šˆˆfd„}|S )Nr(   c                 ó‚   •— ‰}t          j        | ¦  «        D ]&}|                     ¦   «         } ‰|¦  «        s||z  }Œ'|S r+   r_   )r,   rd   r®   re   r  Úones       €€r%   Únanprod_implz np_nanprod.<locals>.nanprod_impl	  sK   ø€ ØˆÝ”I˜a‘L”Lð 	ð 	ˆDØ—	’	‘”ˆAØ�5˜‘8”8ð Ø�Q‘�øØˆr$   r  )r,   r�   r  r  r  s      @@r%   Ú
np_nanprodr  þ  s…   øø€ å�a�œÑ%Ô%ð ØˆÝ�!”'�5œ=Ñ)Ô)ð Ý”
ˆˆà”ˆØ
ˆ%�‰(Œ(€CÝ�a”gÑÔ€Eðð ð ð ð ð ð Ðr$   c                 óð   ‡‡‡— t          | t          j        ¦  «        sd S t          | j        t          j        t          j        f¦  «        rd„ S | j        Št          ‰¦  «        Š ‰d¦  «        Šˆˆˆfd„}|S )Nc                 ó*   — t          j        | ¦  «        S r+   )r`   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Á   rd   rÂ   re   Úis_nanr  r�   s        €€€r%   Únancumprod_implz&np_nancumprod.<locals>.nancumprod_impl!  sc   ø€ Ý”(˜1œ6 5Ñ)Ô)ˆCØˆAÝ# A¤FÑ+Ô+ð ð ‘��QØ�F˜1‘I”I�:ð Ø˜‘F�AØ��C‘�ØˆJr$   ©rS   r   r¶   r’   r�  r  r   )r,   r  r  r  r�   s     @@@r%   Únp_nancumprodr!    s�   øøø€ å�a�œÑ%Ô%ð Øˆå�!”'�EœM­5¬=Ð9Ñ:Ô:ð à&Ð&Ð&à”ˆÝ˜5Ñ!Ô!ˆØˆe�A‰hŒhˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð Ðr$   c                 óð   ‡‡‡— t          | t          j        ¦  «        sd S t          | j        t          j        t          j        f¦  «        rd„ S | j        Št          ‰¦  «        Š ‰d¦  «        Šˆˆˆfd„}|S )Nc                 ó*   — t          j        | ¦  «        S r+   )r`   r¸   rë   s    r%   r¤  znp_nancumsum.<locals>.<lambda>4  s   € �œ 1™œ€ r$   r   c                 ó    •— t          j        | j        ‰¦  «        }‰}t          | j        ¦  «        D ]\  }} ‰|¦  «         r||z  }|||<   Œ|S r+   r»   )r,   rÁ   rd   rÂ   re   r  r�   rf   s        €€€r%   Únancumsum_implz$np_nancumsum.<locals>.nancumsum_impl:  sc   ø€ Ý”(˜1œ6 5Ñ)Ô)ˆCØˆAÝ# A¤FÑ+Ô+ð ð ‘��QØ�F˜1‘I”I�:ð Ø˜‘F�AØ��C‘�ØˆJr$   r   )r,   r%  r  r�   rf   s     @@@r%   Únp_nancumsumr&  -  s�   øøø€ å�a�œÑ%Ô%ð Øˆå�!”'�EœM­5¬=Ð9Ñ:Ô:ð à%Ð%Ð%à”ˆÝ˜5Ñ!Ô!ˆØˆu�Q‰xŒxˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð Ðr$   c                 óh   — t          | ¦  «        }t          |¦  «        dk    rt          d¦  «        ‚|S )Nr   z&zero-size array reduction not possible)Ú_asarrayrD   r|   ©r,   rc   s     r%   Úprepare_ptp_inputr*  F  s0   € å
�1‰+Œ+€CÝ
ˆ3�x„x�1‚}€}ÝÐAÑBÔBÐBàˆ
r$   c                 óR   ‡ — t          |t          j        ¦  «        rˆ fd„}nˆ fd„}|S )Nc                 óˆ   •—  ‰|j         | j         ¦  «        r|S |j         | j         k    r ‰|j        | j        ¦  «        r|S | S r+   rü   ©Úcurrent_valrâ   rŽ   s     €r%   rH  z+_compute_current_val_impl_gen.<locals>.implV  sU   ø€ Øˆr�#”(˜KÔ,Ñ-Ô-ð Ø�
Ø”(˜kÔ.Ò.Ð.Ø˜˜3œ8 [Ô%5Ñ6Ô6ð /à�
ØÐr$   c                 ó$   •—  ‰|| ¦  «        r|n| S r+   r#   r-  s     €r%   rH  z+_compute_current_val_impl_gen.<locals>.impl^  s   ø€ Ø˜"˜S +Ñ.Ô.Ð?�3�3°KÐ?r$   )rS   r   r  )rŽ   r.  râ   rH  s   `   r%   Ú_compute_current_val_impl_genr0  O  sY   ø€ Ý�+�uœ}Ñ-Ô-ð @ð	ð 	ð 	ð 	ð 	ð 	ð	@ð 	@ð 	@ð 	@ð 	@à€Kr$   c                 ó   — d S r+   r#   ©r.  râ   s     r%   Ú_compute_a_maxr3  c  ó   € Ø€Dr$   c                 ó   — d S r+   r#   r2  s     r%   Ú_compute_a_minr6  g  r4  r$   c                 ó8   — t          t          j        | |¦  «        S r+   )r0  ÚoperatorÚgtr2  s     r%   Ú_compute_a_max_implr:  k  ó   € å(­¬°kÀ3ÑGÔGÐGr$   c                 ó8   — t          t          j        | |¦  «        S r+   )r0  r8  Últr2  s     r%   Ú_compute_a_min_implr>  p  r;  r$   c                 ó   — d S r+   r#   ©râ   s    r%   Ú_early_returnrA  u  r4  r$   c                 ó–   ‡— dŠt          | t          j        ¦  «        rˆfd„}n%t          | t          j        ¦  «        rˆfd„}nˆfd„}|S )Nr   c                 óÎ   •— t          j        | j        ¦  «        rHt          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)r`   r  rÞ   rý   Únan©râ   ÚUNUSEDs    €r%   rH  z _early_return_impl.<locals>.impl}  s^   ø€ ÝŒx˜œÑ!Ô!ð %Ý”8˜CœHÑ%Ô%ð -Ø¥¤­"¬&°2©+Ñ!5Ð5Ð5à¥¤¨"¡Ð,Ð,à˜f�}Ð$r$   c                 óP   •— t          j        | ¦  «        rdt           j        fS d‰fS rû   )r`   r  rE  rF  s    €r%   rH  z _early_return_impl.<locals>.impl†  s)   ø€ ÝŒx˜‰}Œ}ð %Ø�RœV�|Ð#à˜f�}Ð$r$   c                 ó   •— d‰fS rö   r#   rF  s    €r%   rH  z _early_return_impl.<locals>.implŒ  s   ø€ Ø˜&�=Ð r$   )rS   r   r  r  )râ   rH  rG  s     @r%   Ú_early_return_implrJ  y  sŒ   ø€ à€FÝ�#•u”}Ñ%Ô%ð !ð	%ð 	%ð 	%ð 	%ð 	%ð 	%õ 
�C�œÑ	%Ô	%ð !ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð	!ð 	!ð 	!ð 	!ð 	!à€Kr$   Úptpc                 óˆ   — 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 ]B}||         }t	          |¦  «        \  }}|r|c S t          ||¦  «        }t          ||¦  «        }ŒC||z
  S rÝ   )r*  r¿   r1   r½   rA  r3  r6  )	r,   rc   Úa_flatÚa_minÚa_maxr-   râ   Útake_branchÚretvals	            r%   Únp_ptp_implznp_ptp.<locals>.np_ptp_implš  s•   € Ý Ñ"Ô"ˆà”ˆØ�q”	ˆØ�q”	ˆå�s”x‘”ð 	/ð 	/ˆAØ˜”)ˆCÝ"/°Ñ"4Ô"4ÑˆK˜Øð Ø���Ý" 5¨#Ñ.Ô.ˆEÝ" 5¨#Ñ.Ô.ˆEˆEà�u‰}Ðr$   )ÚhasattrrS   r’   r   r�  r   )r,   rT  s     r%   Únp_ptprV  ‘  sT   € õ ˆq�'ÑÔð MÝ�a”g�uœ}Ñ-Ô-ð 	MÝÐKÑLÔLÐLðð ð ð" Ðr$   c                 óf   — t          j        | ¦  «        rdS t          j        |¦  «        rdS | |k     S r!   )r`   r  rÑ  s     r%   Únan_aware_less_thanrX  ±  s5   € å	„x��{„{ð ØˆuåŒ8�A‰;Œ;ð 	Ø�4à�q’5ˆLr$   c                 ó   ‡ ‡— dˆˆ fd„	}|S )Nc                 ó   •— ||z   dz	  } ‰	| |         | |         ¦  «        r0| |         | |         c| |<   | |<   ‰r||         ||         c||<   ||<    ‰	| |         | |         ¦  «        r0| |         | |         c| |<   | |<   ‰r||         ||         c||<   ||<    ‰	| |         | |         ¦  «        r0| |         | |         c| |<   | |<   ‰r||         ||         c||<   ||<   | |         }| |         | |         c| |<   | |<   ‰r||         ||         c||<   ||<   |}|dz
  }	 ||k     r/ ‰	| |         |¦  «        r|dz  }||k     r ‰	| |         |¦  «        °||k    r/ ‰	|| |         ¦  «        r|dz  }||k    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½  s«  ø€ Ø�T‰z˜aÑˆð ˆ9�Q�s”V˜Q˜sœVÑ$Ô$ð 	0Ø˜sœV Q s¤VˆNˆAˆc‰F�A�c‘FØð 0Ø!" 3¤¨¨3¬���#‘˜˜#™Øˆ9�Q�t”W˜a œfÑ%Ô%ð 	2Ø œf a¨¤gˆOˆAˆd‰G�Q�s‘VØð 2Ø"# C¤&¨!¨D¬'���$‘˜˜3™Øˆ9�Q�s”V˜Q˜sœVÑ$Ô$ð 	0Ø˜sœV Q s¤VˆNˆAˆc‰F�A�c‘FØð 0Ø!" 3¤¨¨3¬���#‘˜˜#™Ø�#”ˆà˜Cœ& ! D¤'ˆˆˆ$‰��3‘Øð 	.Ø œf a¨¤gˆOˆAˆd‰G�Q�s‘VØˆØ�1‰Hˆð	Ø�d’(�(˜y˜y¨¨1¬¨uÑ5Ô5�(Ø�Q‘�ð �d’(�(˜y˜y¨¨1¬¨uÑ5Ô5�(à�s’(�(˜y˜y¨°°!´Ñ5Ô5�(Ø�Q‘�ð �s’(�(˜y˜y¨°°!´Ñ5Ô5�(à�AŠvˆvØØ˜1œ˜q œtˆJˆAˆa‰D�!�A‘$Øð (Ø˜qœT 1 Q¤4�
��!‘�a˜‘dØ�‰FˆAØ�‰FˆAð	ð ˜$œ  1¤ˆˆˆ!‰ˆa�‰gØð 	*Ø˜dœG Q q¤TˆMˆAˆa‰D�!�D‘'Øˆr$   r+   r#   )rd  rc  re  s   `` r%   Ú_partition_factoryrf  ¼  s0   øø€ ð,ð ,ð ,ð ,ð ,ð ,ð ,ðZ Ðr$   )rc  c                 ó   ‡ — dˆ fd„	}|S )Nc                 ó¢   •—  ‰| |||¦  «        }||k    r3||k     r|dz   } ‰| |||¦  «        }n|dz
  } ‰| |||¦  «        }||k    °3| |         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ö  s€   ø€ ð ˆM˜$  T¨3Ñ/Ô/ˆØ�1ŠfˆfØ�1ŠuˆuØ˜!‘e�Ø!�M $¨¨T°3Ñ7Ô7��à˜1‘u�Ø!�M $¨¨T°3Ñ7Ô7�ð �1Šfˆfð �AŒwˆr$   r+   r#   )rj  rk  s   ` r%   Ú_select_factoryrl  õ  s(   ø€ ðð ð ð ð ð ð €Nr$   c                 óþ   — 	 ||k    sJ ‚t          | ||¦  «        }||k     r|dz   }nD||dz   k    r|dz
  }n5||k    rt          | |dz   |dz   |¦  «         nt          | |||dz
  ¦  «         nŒj| |         | |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.
    Tr(   )re  rk  )r  ri  r]  r^  r-   s        r%   Ú_select_tworn    s²   € ðØ�cŠzˆzˆzˆzÝ�t˜S $Ñ'Ô'ˆØˆqŠ5ˆ5Ø�a‘%ˆCˆCØ��Q‘ŠYˆYØ�q‘5ˆDˆDØ�!ŠVˆVÝ�D˜!˜a™%  Q¡¨Ñ-Ô-Ð-Øå�D˜!˜S ! a¡%Ñ(Ô(Ð(Øðð �Œ7�D˜˜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(   rz   )rn  rk  )Ú	temp_arryÚnr]  r^  Úhalfr,   rn  s          r%   Ú_median_innerrs  $  se   € ð €CØˆq‰5€DØ�‰6€DØˆ1�u�‚z€zÝ˜9 d¨Q¡h°°TÑ:Ô:‰ˆˆ1Ø�A‘˜‰{Ðå�y $¨¨TÑ2Ô2Ð2r$   c                 óD   — t          | t          j        ¦  «        sd S d„ }|S )Nc                 ód   — |                       ¦   «         }|j        d         }t          ||¦  «        S rÝ   )Úflattenr~   rs  )r,   rp  rq  s      r%   Úmedian_implznp_median.<locals>.median_impl9  s-   € ð —I’I‘K”Kˆ	ØŒO˜AÔˆÝ˜Y¨Ñ*Ô*Ð*r$   rä   )r,   rw  s     r%   Ú	np_medianrx  4  s2   € å�a�œÑ%Ô%ð Øˆð+ð +ð +ð Ðr$   c                 óÈ  — t          | ¦  «        }|dk    r6t          j        t          |¦  «        | d         t          j        ¬¦  «        }�nt          j        t          |¦  «        t          j        ¬¦  «        }t          t          |¦  «        ¦  «        D �]Ë}||         }|dk    r^t          j        | ¦  «        }t          j        t          j        | ¦  «        ¦  «         r!t          j        |¦  «         rt          j	        }�nW|dk    rãt          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k    rt          j	        }|	dk    r|dk    r|dk    rt          j	        }nnd|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   rz   ç      Y@)ri  r]  r^  )rD   r`   r€   r×   r¼   r1   r  rO  ÚisfiniterE  rø   r’  ÚinfÚtrue_divideÚmathÚfloorrn  Úint)r,   Úqrq  rÁ   r-   Ú
percentilerâ   Únum_pos_infÚnum_neg_infÚ
num_finiteÚrankÚfrà   ÚlowerÚuppers                  r%   Ú_collect_percentiles_innerr‹  C  s&  € õ 	ˆA‰Œ€AàˆA‚v€våŒg•c˜!‘f”f˜a œd­"¬*Ð5Ñ5Ô5ˆ‰åŒh•s˜1‘v”v¥R¤ZÐ0Ñ0Ô0ˆÝ•s˜1‘v”v‘”ð %	ñ %	ˆAØ˜1œˆJð ˜SÒ Ð Ý”f˜Q‘i”i�å”F�2œ; q™>œ>Ñ*Ô*Ð*ð %Ýœ CÑ(Ô(Ð(ð %Ý œf˜ùð ˜q’�Ý”f˜Q‘i”i�å”F�2œ; q™>œ>Ñ*Ô*Ð*ð -Ý"$¤&¨­b¬fªÑ"5Ô"5�KÝ"$¤&¨­r¬v¨gªÑ"6Ô"6�KØ!" k°KÑ&?Ñ!@�JØ! Q’�Ý œf˜Ø" aÒ'Ð'¨A°ªF¨FÝ œf˜Ø" Q’�Ý œf˜Ø! Q’�Ø&¨š?˜?Ø*¨aÒ/Ð/Ý&(¤f øð ˜A ™E¥R¤^°JÀÑ%FÔ%FÑFÑF�Ý”J˜tÑ$Ô$�Ø˜1‘H�Ý*¨1µ°A¸±E±
´
ÀÈÈQÉÐPÑPÔP‘��uØ˜q 1™u‘o¨°©	Ñ1�ØˆC�‰F‰Fà€Jr$   c                 óÒ   — |r| |          } t          | ¦  «        dk    rdS nt          j        |¦  «        rdS t          | ¦  «        dk    r| d         }t          j        |¦  «        S dS )Nr   Fr(   T)rD   r`   r†  r|  )r,   Únan_maskÚskip_nanrâ   s       r%   Ú_can_collect_percentilesr�  x  st   € àð ØˆxˆiŒLˆÝˆq‰6Œ6�QŠ;ˆ;Ø�5ð õ Œ6�(ÑÔð 	Ø�5å
ˆ1�v„v�‚{€{Ø�ŒdˆÝŒ{˜3ÑÔÐàˆtr$   c                 ó‚  — d}| j         dk    rY| j        dk     rNt          | j        ¦  «        D ]8}| |         dk     s&| |         |k    st          j        | |         ¦  «        rd} nŒ9nXt          j        t          j        | ¦  «        ¦  «        s0t          j        | dk     ¦  «        st          j        | |k    ¦  «        rd}|S )NTr(   é
   r�  F)r{   r½   r1   r`   r  r†  )r‚  Úq_upper_boundÚvalidr-   s       r%   Úcheck_validr”  ‰  sÀ   € à€Eð 	„v�‚{€{�q”v ’{�{Ý�q”v‘”ð 	ð 	ˆAØ�Œt�cŠzˆz˜Q˜qœT MÒ1Ð1µR´X¸aÀ¼d±^´^Ð1Ø�Ø�ð 2øõ Œ6•"”(˜1‘+”+ÑÔð 	¥"¤&¨¨Sª¡/¤/ð 	µR´V¸AÀÒ<MÑ5NÔ5Nð 	ØˆEà€Lr$   c                 óF   — t          | d¬¦  «        st          d¦  «        ‚d S )Nr{  ©r’  z)Percentiles must be in the range [0, 100]©r”  r|   ©r‚  s    r%   Úpercentile_is_validr™  š  s3   € å�q¨Ð.Ñ.Ô.ð FÝÐDÑEÔEÐEðFð Fr$   c                 óF   — t          | d¬¦  «        st          d¦  «        ‚d S )NrX  r–  z%Quantiles must be in the range [0, 1]r—  r˜  s    r%   Úquantile_is_validr›     s3   € å�q¨Ð,Ñ,Ô,ð BÝÐ@ÑAÔAÐAðBð Br$   c                 óÄ  — t          j        |t           j        ¬¦  «                             ¦   «         } ||¦  «         ||z  }t          j        | t           j        ¬¦  «                             ¦   «         }t          j        |¦  «        }t          |||¦  «        r||          }t          ||¦  «        }n,t          j        t          |¦  «        t           j	        ¦  «        }|S rì  )
r`   rs  r×   rv  r  r�  r‹  r€   rD   rE  )r,   r‚  Úcheck_qÚfactorrŽ  rp  r�  rÁ   s           r%   Ú_collect_percentilesrŸ  ¦  sº   € å
Œ
�1�BœJÐ'Ñ'Ô'×/Ò/Ñ1Ô1€AØ€GˆA�J„J€JØ	ˆF‰
€Aå”
˜1¥B¤JÐ/Ñ/Ô/×7Ò7Ñ9Ô9€IÝŒx˜	Ñ"Ô"€Hå 	¨8°XÑ>Ô>ð &Ø˜x˜iÔ(ˆ	Ý(¨°AÑ6Ô6ˆˆåŒg•c˜!‘f”f�bœfÑ%Ô%ˆà€Jr$   c                 ó@  ‡‡‡— 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                 ó6   •— 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   ø€ Ý# A q¨'°6¸8ÑDÔDÀQÔGÐGr$   c                 ó*   •— t          | |‰‰‰¦  «        S r+   r¢  r£  s     €€€r%   Únp_percentile_implz6_percentile_quantile_inner.<locals>.np_percentile_implÇ  s   ø€ Ý# A q¨'°6¸8ÑDÔDÐDr$   r   )r±  r`   r³  r´  r   rS   r   r‚  r�  r¶   r{   )r,   r‚  rŽ  rž  r�  rµ  r¤  r¦  s     ```   r%   Ú_percentile_quantile_innerr§  ¸  sÛ   øøø€ õ 
˜Ñ	Ô	€BÝ	„}�R�Ô+Ñ,Ô,ð =ÝÐ;Ñ<Ô<Ð<ðHð Hð Hð Hð Hð Hð HðEð Eð Eð Eð Eð Eð Eõ �!•e”l¥E¤MÐ2Ñ3Ô3ð "Ø*Ð*Ý	�A•u”{Ñ	#Ô	#ð "¨¬°!ª¨Ø*Ð*à!Ð!r$   c                 ó4   — t          | |ddt          ¬¦  «        S )NFrX  ©rŽ  rž  r�  ©r§  r™  ©r,   r‚  s     r%   Únp_percentiler¬  Ò  s%   € å%Ø	ˆ1�u SÕ2Eðñ ô ð r$   c                 ó4   — t          | |ddt          ¬¦  «        S )NTrX  r©  rª  r«  s     r%   Únp_nanpercentiler®  Ù  s%   € å%Ø	ˆ1�t CÕ1Dðñ ô ð r$   c                 ó4   — t          | |ddt          ¬¦  «        S )NFr{  r©  ©r§  r›  r«  s     r%   Únp_quantiler±  à  s%   € å%Ø	ˆ1�u UÕ4Eðñ ô ð r$   c                 ó4   — t          | |ddt          ¬¦  «        S )NTr{  r©  r°  r«  s     r%   Únp_nanquantiler³  ç  s%   € å%Ø	ˆ1�t EÕ3Dðñ ô ð r$   c                 ór   ‡— t          | t          j        ¦  «        sd S t          | j        ¦  «        Šˆfd„}|S )Nc                 ó
  •— t          j        | j        | j        ¦  «        }d}t          j        | ¦  «        D ]+}|                     ¦   «         } ‰|¦  «        s
|||<   |dz  }Œ,|dk    rt           j        S t          ||¦  «        S ©Nr   r(   )r`   r¼   r½   r’   ra   rb   rE  rs  )r,   rp  rq  r®   re   r  s        €r%   Únanmedian_implz$np_nanmedian.<locals>.nanmedian_implô  s†   ø€ å”H˜QœV Q¤WÑ-Ô-ˆ	ØˆÝ”I˜a‘L”Lð 	ð 	ˆDØ—	’	‘”ˆAØ�5˜‘8”8ð Ø �	˜!‘Ø�Q‘�øð �Š6ˆ6Ý”6ˆMå˜Y¨Ñ*Ô*Ð*r$   r  )r,   r·  r  s     @r%   Únp_nanmedianr¸  î  sL   ø€ å�a�œÑ%Ô%ð ØˆÝ�a”gÑÔ€Eð+ð +ð +ð +ð +ð  Ðr$   c                 ó  — t          j        | ¦  «        }t          j        | j        d d…         ¦  «        }|D ]N}| |                              ¦   «         }d}t          |¦  «        dz
  }|D ]}t          ||||¦  «         |}Œ|||<   ŒO|S )Nr?  r   r(   )r`   Ú
empty_likeÚndindexr~   ÚcopyrD   Ú_select_w_nan)	r,   Ú	kth_arrayrÁ   rÂ   Úsr  r]  r^  Úkths	            r%   Únp_partition_impl_innerrÁ    sš   € õ
 Œ-˜Ñ
Ô
€Cå
Œ*�Q”W˜S˜b˜S”\Ñ
"Ô
"€CØð 	ð 	ˆØ�Œt�yŠy‰{Œ{ˆØˆÝ�4‰yŒy˜1‰}ˆàð 	ð 	ˆCÝ˜$  S¨$Ñ/Ô/Ð/ØˆCˆCàˆˆA‰ˆØ€Jr$   c           	      ón  — t          j        | t           j        ¬¦  «        }t          j        | j        d d…         ¦  «        }|D ]p}| |                              ¦   «         }t          j        t          |¦  «        ¦  «        }d}t          |¦  «        dz
  }|D ]}	t          ||	|||¦  «         |	}Œ|||<   Œq|S )Nrí  r?  r   r(   )	r`   rº  r3   r»  r~   r¼  ÚarangerD   Ú_arg_select_w_nan)
r,   r¾  rÁ   rÂ   r¿  r  Úidx_arryr]  r^  rÀ  s
             r%   Únp_argpartition_impl_innerrÆ    s¸   € õ
 Œ-˜¥¤Ð
)Ñ
)Ô
)€Cå
Œ*�Q”W˜S˜b˜S”\Ñ
"Ô
"€CØð 
ð 
ˆØ�Œt�yŠy‰{Œ{ˆÝ”9�S ™YœYÑ'Ô'ˆØˆÝ�4‰yŒy˜1‰}ˆàð 	ð 	ˆCÝ˜d C¨¨d°HÑ=Ô=Ð=ØˆCˆCàˆˆA‰ˆØ€Jr$   c                 óØ  — t          |¦  «                             t          j        ¦  «        }|j        dk    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(  Úastyper`   r­   r{   r|   r†  r[  r~   rº  ÚndenumerateÚunique)r,   rÀ  r¾  rÁ   Úindexrâ   s         r%   Ú
valid_kthsrÌ  2  s×   € õ ˜‘”×$Ò$¥R¤XÑ.Ô.€Ià„~˜ÒÐÝÐ4Ñ5Ô5Ð5õ 
„v�bŒf�YÑÔ 1¤7¨2¤;Ò.Ñ/Ô/ð .ÝÐ,Ñ-Ô-Ð-å
Œ-˜	Ñ
"Ô
"€Cå”n YÑ/Ô/ð ð ‰
ˆˆsØ�Š7ˆ7Ø˜qœw rœ{Ñ*ˆC�‰JˆJàˆC�‰JˆJåŒ9�S‰>Œ>Ðr$   c                 ó€  — t          | t          j        t          j        t          j        f¦  «        st          d¦  «        ‚t          | t          j        ¦  «        r| j        dk    rt          d¦  «        ‚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|                     ¦   «         S t          ||¦  «        }t	          ||¦  «        S rÝ   )r(  r½   r¼  rÌ  rÁ  ©r,   rÀ  Úa_tmpr¾  s       r%   Únp_partition_implz'np_partition.<locals>.np_partition_implc  sE   € Ý˜‘”ˆØŒ:˜Š?ˆ?Ø—:’:‘<”<Ðå" 5¨#Ñ.Ô.ˆIÝ*¨5°)Ñ<Ô<Ð<r$   ©
rS   r   r¶   ÚSequencerV   r‘  r{   r˜   r�  r  )r,   rÀ  ÚkthdtrÔ  s       r%   Únp_partitionrØ  U  s³   € õ �a�%œ+¥u¤~µu´{ÐCÑDÔDð DÝÐBÑCÔCÐCå�!•U”[Ñ!Ô!ð O a¤f°¢k kÝÐMÑNÔNÐNå�C˜ #Ñ&Ô&€EÝ�e�eœm­U¬]Ð;Ñ<Ô<ð ;åÐ9Ñ:Ô:Ð:ð=ð =ð =ð Ðr$   c                 ó€  — t          | t          j        t          j        t          j        f¦  «        st          d¦  «        ‚t          | t          j        ¦  «        r| j        dk    rt          d¦  «        ‚t          |d|¦  «        }t          |t          j        t          j	        f¦  «        st          d¦  «        ‚d„ }|S )NrÎ  r   rÏ  r’   rÐ  c                 óÄ   — t          | ¦  «        }|j        dk    r'|                     ¦   «                              d¦  «        S t	          ||¦  «        }t          ||¦  «        S )Nr   r3   )r(  r½   r¼  rÈ  rÌ  rÆ  rÒ  s       r%   Únp_argpartition_implz-np_argpartition.<locals>.np_argpartition_impl|  sS   € Ý˜‘”ˆØŒ:˜Š?ˆ?Ø—:’:‘<”<×&Ò& vÑ.Ô.Ð.å" 5¨#Ñ.Ô.ˆIÝ-¨e°YÑ?Ô?Ð?r$   rÕ  )r,   rÀ  r×  rÛ  s       r%   Únp_argpartitionrÜ  n  s¶   € õ �a�%œ+¥u¤~µu´{ÐCÑDÔDð DÝÐBÑCÔCÐCå�!•U”[Ñ!Ô!ð O a¤f°¢k kÝÐMÑNÔNÐNå�C˜ #Ñ&Ô&€EÝ�e�eœm­U¬]Ð;Ñ<Ô<ð ;åÐ9Ñ:Ô:Ð:ð@ð @ð @ð  Ðr$   c                 ó.  — t          d| ¦  «        t          d|¦  «        f}t          j        |t          j        ¬¦  «        }t	          |d         ¦  «        D ]>}t          t          d||z   dz   ¦  «        |d         ¦  «        }d||d |…f<   d|||d …f<   Œ?|S )Nr   rí  r(   )r  r`   r¼   r×   r1   rø   )ÚNÚMri  r~   rÁ   r-   Úm_maxs          r%   Ú	_tri_implrá  Š  s™   € å��1‰IŒI•s˜1˜a‘y”yÐ €EÝ
Œ(�5¥¤
Ð
+Ñ
+Ô
+€Cå�5˜”8‰_Œ_ð ð ˆÝ•C˜˜1˜q™5 1™9Ñ%Ô% u¨Q¤xÑ0Ô0ˆØˆˆAˆv�ˆvˆI‰ØˆˆAˆuˆvˆvˆI‰ˆà€Jr$   c                 ó.   — t          |d¦  «         dd„}|S )Nri  r   c                 ó,   — |€| }t          | ||¦  «        S r+   )rá  )rÞ  rß  ri  s      r%   Útri_implznp_tri.<locals>.tri_impl�  s   € Øˆ9ØˆAÝ˜˜A˜qÑ!Ô!Ð!r$   rÝ   )r   )rÞ  rß  ri  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{   rD   r`   r¼   r’   r1   )rà   Úlen_mrÁ   r-   s       r%   Ú_make_squarerè  ¥  s]   € ð Œ6�QŠ;ˆ;ˆ;ˆ;å�‰FŒF€EÝ
Œ(�E˜5�>¨¬Ð
1Ñ
1Ô
1€Cå�5‰\Œ\ð ð ˆØˆˆA‰ˆà€Jr$   c                 óô   — t          j        | j        d         | j        d         |¬¦  «                             t           j        ¦  «        }t          j        || t          j        | | j        ¬¦  «        ¦  «        S ©Néþÿÿÿr?  ©rß  ri  rí  ©r`   Útrir~   rÈ  ÚuintÚwhereÚ
zeros_liker’   ©rà   ri  Úmasks      r%   Únp_tril_impl_2drô  ¶  sY   € åŒ6�!”'˜"”+ ¤¨¤°Ð2Ñ2Ô2×9Ò9½"¼'ÑBÔB€DÝŒ8�D˜!�Rœ]¨1°A´GÐ<Ñ<Ô<Ñ=Ô=Ð=r$   c                 ót   — t          |d¦  «         dd„}dd„}| j        dk    r|S | j        dk    rt          S |S )Nri  r   c                 ó@   — t          | ¦  «        }t          ||¦  «        S r+   )rè  rô  ©rà   ri  Úm_2ds      r%   Únp_tril_impl_1dz my_tril.<locals>.np_tril_impl_1dÂ  ó   € Ý˜A‰ŒˆÝ˜t QÑ'Ô'Ð'r$   c                 ó‚  — t          j        | j        d         | j        d         |¬¦  «                             t           j        ¦  «        }t          j        | j        d d…         ¦  «        }t          j        | ¦  «        }t          j        || j        ¬¦  «        }|D ]!}t          j	        || |         |¦  «        ||<   Œ"|S rê  ©
r`   rî  r~   rÈ  rï  r»  rº  rñ  r’   rð  ©rà   ri  ró  rÂ   ÚzÚzero_optÚsels          r%   Únp_tril_impl_multiz#my_tril.<locals>.np_tril_impl_multiÆ  s£   € ÝŒv�a”g˜b”k Q¤W¨R¤[°AÐ6Ñ6Ô6×=Ò=½b¼gÑFÔFˆÝŒj˜œ  " œÑ&Ô&ˆÝŒM˜!ÑÔˆÝ”= ¨Q¬WÐ5Ñ5Ô5ˆØð 	6ð 	6ˆCÝ”X˜d A c¤F¨HÑ5Ô5ˆAˆc‰FˆFØˆr$   r(   rz   ©r   )r   r{   rô  )rà   ri  rù  r  s       r%   Úmy_trilr  ¼  sf   € õ �Q˜ÑÔÐð(ð (ð (ð (ðð ð ð ð 	„v�‚{€{ØÐØ	
Œ�1ŠˆÝÐà!Ð!r$   c                 óŒ   — t          | d¦  «         t          |d¦  «         t          |¦  «        st          |d¦  «         dd„}|S )Nrq  ri  rà   r   c                 óT   — t          j        t          j        | ||¬¦  «        ¦  «        S )N©ri  ©r`   Únonzerorî  ©rq  ri  rà   s      r%   Únp_tril_indices_implz-np_tril_indices.<locals>.np_tril_indices_implà  s#   € ÝŒz�"œ&  A¨Ð+Ñ+Ô+Ñ,Ô,Ð,r$   ©r   N©r   r   )rq  ri  rà   r
  s       r%   Únp_tril_indicesr  ×  s\   € õ �Q˜ÑÔÐÝ�Q˜ÑÔÐÝ�q‰>Œ>ð !Ý˜˜CÑ Ô Ð ð-ð -ð -ð -àÐr$   c                 ób   — t          |d¦  «         | j        dk    rt          d¦  «        ‚dd„}|S )Nri  rz   úinput array must be 2-dr   c                 ó\   — t          j        | j        d         || j        d         ¬¦  «        S ©Nr   r(   )ri  rà   )r`   Útril_indicesr~   ©rc   ri  s     r%   Únp_tril_indices_from_implz7np_tril_indices_from.<locals>.np_tril_indices_from_implî  ó%   € ÝŒ˜sœy¨œ|¨q°C´I¸a´LÐAÑAÔAÐAr$   r  ©r   r{   r   )rc   ri  r  s      r%   Únp_tril_indices_fromr  å  óL   € õ �Q˜ÑÔÐà
„x�1‚}€}ÝÐ3Ñ4Ô4Ð4ðBð Bð Bð Bà$Ð$r$   c                 óú   — t          j        | j        d         | j        d         |dz
  ¬¦  «                             t           j        ¦  «        }t          j        |t          j        | | j        ¬¦  «        | ¦  «        S ©Nrë  r?  r(   rì  rí  rí  rò  s      r%   Únp_triu_impl_2dr  ó  s]   € åŒ6�!”'˜"”+ ¤¨¤°°A±Ð6Ñ6Ô6×=Ò=½b¼gÑFÔF€DÝŒ8�D�"œ-¨°´Ð9Ñ9Ô9¸1Ñ=Ô=Ð=r$   c                 ót   — t          |d¦  «         dd„}dd„}| j        dk    r|S | j        dk    rt          S |S )Nri  r   c                 ó@   — 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
  ¬¦  «                             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§   € ÝŒv�a”g˜b”k Q¤W¨R¤[°A¸±EÐ:Ñ:Ô:×AÒAÅ"Ä'ÑJÔJˆÝŒj˜œ  " œÑ&Ô&ˆÝŒM˜!ÑÔˆÝ”= ¨Q¬WÐ5Ñ5Ô5ˆØð 	6ð 	6ˆCÝ”X˜d H¨a°¬fÑ5Ô5ˆAˆc‰FˆFØˆr$   r(   rz   r  )r   r{   r  )rà   ri  r  r   s       r%   Úmy_triur!  ù  sf   € õ �Q˜ÑÔÐð(ð (ð (ð (ðð ð ð ð 	„v�‚{€{ØÐØ	
Œ�1ŠˆÝÐà!Ð!r$   c                 óŒ   — t          | d¦  «         t          |d¦  «         t          |¦  «        st          |d¦  «         dd„}|S )Nrq  ri  rà   r   c           	      ó`   — 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,   € ÝŒz˜!�bœf Q¨¨Q°©UÐ3Ñ3Ô3Ñ3Ñ4Ô4Ð4r$   r  r  )rq  ri  rà   r$  s       r%   Únp_triu_indicesr%    s\   € õ �Q˜ÑÔÐÝ�Q˜ÑÔÐÝ�q‰>Œ>ð !Ý˜˜CÑ Ô Ð ð5ð 5ð 5ð 5àÐr$   c                 ób   — t          |d¦  «         | j        dk    rt          d¦  «        ‚dd„}|S )Nri  rz   r  r   c                 ó\   — t          j        | j        d         || j        d         ¬¦  «        S r  )r`   Útriu_indicesr~   r  s     r%   Únp_triu_indices_from_implz7np_triu_indices_from.<locals>.np_triu_indices_from_impl*  r  r$   r  r  )rc   ri  r)  s      r%   Únp_triu_indices_fromr*  !  r  r$   c                 ó   — d S r+   r#   ©rc   s    r%   Ú_prepare_arrayr-  /  r4  r$   c                 ó.   — | d t           j        fv rd„ S d„ S )Nc                 ó*   — t          j        d¦  «        S )Nr#   ©r`   Úarrayr,  s    r%   r¤  z%_prepare_array_impl.<locals>.<lambda>6  s   € �2œ8 B™<œ<€ r$   c                 óD   — t          | ¦  «                             ¦   «         S r+   )r(  rA  r,  s    r%   r¤  z%_prepare_array_impl.<locals>.<lambda>8  s   € �8 C™=œ=×.Ò.Ñ0Ô0€ r$   ©r   Únoner,  s    r%   Ú_prepare_array_implr5  3  s&   € à
ˆt•U”ZÐ Ð Ð Ø'Ð'Ð'à0Ð0Ð0r$   c                 ót  — | }	 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 Œ¶)NTÚ__len__r   r’   ztype has no dtype attr)rS   r   r‚  r�  r	   r˜   r`   r×   r‘  rÖ  r’   )ÚinobjÚobjÚlrµ  s       r%   Ú_dtype_of_compoundr;  ;  s²   € Ø
€Cð Ý�c�EœL­%¬-Ð8Ñ9Ô9ð 	!Ý˜C‘=”=Ð Ý�C˜ DÑ)Ô)ˆØˆ=˜Q˜Q™SœS AšX˜XÝ”:ÐÝ�S˜' 4Ñ(Ô(ˆØˆ:ÝÐ4Ñ5Ô5Ð5Ý�c�5œ>Ñ*Ô*ð 	 Ø”)ˆCˆ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 )NrM  z3dtype of to_begin must be compatible with input aryz1dtype of to_end must be compatible with input aryc                 ór  — t          |¦  «        }t          | ¦  «        }t          |¦  «        }|j        }t          |¦  «        dk    rŸt          j        t          |¦  «        t          |¦  «        z   t          |¦  «        z   dz
  |¬¦  «        }t          |¦  «        }t          |¦  «        t          |¦  «        z   dz
  }	||d |…<   t          j        |¦  «        |||	…<   |||	d …<   nPt          j        t          |¦  «        t          |¦  «        z   |¬¦  «        }t          |¦  «        }||d |…<   |||d …<   |S )Nr   r(   rí  )r-  r’   rD   r`   r¼   Údiff)
ÚaryÚto_endÚto_beginÚstartr`  ÚendÚ	out_dtyperÁ   Ú	start_idxÚmid_idxs
             r%   Únp_ediff1d_implz#np_ediff1d.<locals>.np_ediff1d_implf  s%  € å˜xÑ(Ô(ˆÝ˜SÑ!Ô!ˆÝ˜VÑ$Ô$ˆà”Iˆ	õ ˆs‰8Œ8�aŠ<ˆ<Ý”(�C ™JœJ­¨S©¬Ñ1µC¸±H´HÑ<¸qÑ@Ø!*ð,ñ ,ô ,ˆCå˜E™
œ
ˆIÝ˜%‘j”j¥3 s¡8¤8Ñ+¨aÑ/ˆGØ#ˆC�
��
‰OÝ%'¤W¨S¡\¤\ˆC�	˜'Ð!Ñ"ØˆC���‰MˆMå”(�C ™JœJ­¨S©¬Ñ1¸)ÐDÑDÔDˆCÝ˜E™
œ
ˆIØ#ˆC�
��
‰OØ!ˆC�	�
�
‰OØˆ
r$   r˜  )
rS   r   r¶   r’   r�  r   r;  r   r`   Úcan_cast)r?  r@  rA  Úary_dtÚto_begin_dtÚ	to_end_dtr©   rG  s           r%   Ú
np_ediff1drL  L  s  € õ �#•u”{Ñ#Ô#ð PÝ�c”i¥¤Ñ/Ô/ð 	PÝ Ð!NÑOÔOÐOõ
   Ñ$Ô$€FØ€KÝ˜Ñ!Ô!ð 3Ý(¨Ñ2Ô2ˆØ€IÝ˜ÑÔð /Ý& vÑ.Ô.ˆ	àÐ¥r¤{°;ÀÑ'GÔ'GÐØCˆÝ˜SÑ!Ô!Ð!àÐ¥R¤[°¸FÑ%CÔ%CÐØAˆÝ˜SÑ!Ô!Ð!ðð ð ð ð6 Ðr$   c                 ó   — d S r+   r#   r,  s    r%   Ú_select_elementrN  „  r4  r$   c                 óD   — t          | dd ¦  «        dk    }|rd„ }|S d„ }|S )Nr{   r   c                 óV   — t          j        d| j        ¬¦  «        }| |d d …<   |d         S )N©r(   rí  r   )r`   r1  r’   )rc   rž  s     r%   rH  z"_select_element_impl.<locals>.implŒ  s.   € Ý”˜ S¤YÐ/Ñ/Ô/ˆAØˆAˆaˆaˆa‰DØ�Q”4ˆKr$   c                 ó   — | S r+   r#   r,  s    r%   rH  z"_select_element_impl.<locals>.impl’  s   € ØˆJr$   ©r˜   )rc   ÚzerodrH  s      r%   Ú_select_element_implrU  ˆ  sJ   € å�C˜ Ñ&Ô&¨!Ò+€EØð 	ð	ð 	ð 	ð ˆð	ð 	ð 	àˆr$   c                 ó   — d S r+   r#   )Údxrž  s     r%   Ú_get_drX  —  r4  r$   c                 ó2   — t          | ¦  «        rd„ }nd„ }|S )Nc                 ó*   — t          j        |¦  «        S r+   ©r`   rs  ©rž  rW  s     r%   rH  zget_d_impl.<locals>.implž  s   € Ý”:˜b‘>”>Ð!r$   c                 óN   — t          j        t          j        | ¦  «        ¦  «        S r+   )r`   r>  rs  r\  s     r%   rH  zget_d_impl.<locals>.impl¡  s   € Ý”7�2œ: a™=œ=Ñ)Ô)Ð)r$   rÇ  )rž  rW  rH  s      r%   Ú
get_d_implr^  ›  s8   € å�1�~„~ð *ð	"ð 	"ð 	"ð 	"ð	*ð 	*ð 	*à€Kr$   rX  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 0DrX  c                 ó  — 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?  ç       @)r`   rs  rX  rM   r’  rN  )rá  rž  rW  ÚyarrÚdÚy_aveÚretÚ	processeds           r%   rH  znp_trapz.<locals>.impl±  sw   € ÝŒz˜!‰}Œ}ˆÝ�1�b‰MŒMˆØ�c�5  D™>œ>Ð)Ô*¨T°#µu¸TÀ2±´Ð2FÔ-GÑGÈ3ÑNˆÝŒf�Q˜‘Y Ñ#Ô#ˆÝ# CÑ(Ô(ˆ	ØÐr$   ©NrX  )rS   r   r‚  r�  r   r¶   r{   )rá  rž  rW  rH  s       r%   Únp_trapzrh  ¦  sv   € õ �!•e”l¥E¤MÐ2Ñ3Ô3ð ,ÝÐ0Ñ1Ô1Ð1Ý	�A•u”{Ñ	#Ô	#ð ,¨¬°!ª¨ÝÐ*Ñ+Ô+Ð+ð
ð ð ð ð €Kr$   c                 ó˜  — |j         \  }}|t          | ¦  «        k    sJ ‚||k    sJ ‚|rMt          |¦  «        D ];}|dk    r
d|dd…|f<   Œt          j        | |dd…|dz
  f         ¦  «        |dd…|f<   Œ<dS t          |dz
  dd¦  «        D ]>}||dz
  k    r
d|dd…|f<   Œt          j        | |dd…|dz   f         ¦  «        |dd…|f<   Œ?dS )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~   rD   r1   r`   r”  )rž  rÞ  Ú
increasingrÁ   rà   rq  r-   s          r%   Ú
_np_vanderrk  ¼  s  € ð Œ9�D€A€qØ•�A‘”Š;ˆ;ˆ;ˆ;Ø�Š6ˆ6ˆ6ˆ6àð <Ý�q‘”ð 	<ð 	<ˆAØ�AŠvˆvØ��A�A�A�q�D‘	�	åœK¨¨3¨q¨q¨q°1°q±5¨z¬?Ñ;Ô;��A�A�A�q�D‘	�	ð		<ð 	<õ �q˜1‘u˜b "Ñ%Ô%ð 	<ð 	<ˆAØ�A˜‘EŠzˆzØ��A�A�A�q�D‘	�	åœK¨¨3¨q¨q¨q°1°q±5¨z¬?Ñ;Ô;��A�A�A�q�D‘	�	ð		<ð 	<r$   c                 ód   — | j         dk    rt          d¦  «        ‚|dk     rt          d¦  «        ‚d S )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_paramsrm  Ø  s;   € à„v�‚z€zÝÐIÑJÔJÐJØˆ1‚u€uÝÐ>Ñ?Ô?Ð?ð €ur$   c                 ór  ‡— |d t           j        fvr)t          |t           j        ¦  «        st	          d¦  «        ‚dˆfd„	}dd„}t          | t           j        ¦  «        r0t          | j        ¦  «        }t          j	        |t          ¦  «        Š|S t          | t           j        t           j        f¦  «        r|S d S )Nz,Second argument N must be None or an integerFc                 óÒ   •— |€t          | ¦  «        }t          | |¦  «         t          j        t          | ¦  «        t	          |¦  «        f‰¬¦  «        }t          | |||¦  «         |S rì  )rD   rm  r`   r¼   r�  rk  )rž  rÞ  rj  rÁ   r’   s       €r%   Únp_vander_implz!np_vander.<locals>.np_vander_implæ  sc   ø€ Øˆ9Ý�A‘”ˆAå˜Q Ñ"Ô"Ð"õ Œh�˜A™œ¥ A¡¤Ð'¨uÐ5Ñ5Ô5ˆå�1�a˜ SÑ)Ô)Ð)Øˆ
r$   c                 ó  — |€t          | ¦  «        }t          j        | ¦  «        }t          ||¦  «         t          j        t          | ¦  «        t          |¦  «        f|j        ¬¦  «        }t          ||||¦  «         |S rì  )rD   r`   r1  rm  r¼   r�  r’   rk  )rž  rÞ  rj  Úx_arrrÁ   s        r%   Únp_vander_seq_implz%np_vander.<locals>.np_vander_seq_implò  sq   € Øˆ9Ý�A‘”ˆAå”˜‘”ˆÝ˜U AÑ&Ô&Ð&õ Œh�˜A™œ¥ A¡¤Ð'¨u¬{Ð;Ñ;Ô;ˆå�5˜!˜Z¨Ñ-Ô-Ð-Øˆ
r$   rö   )r   r4  rS   r  r   r¶   r	   r’   r`   Úpromote_typesr�  rV   rÖ  )rž  rÞ  rj  rp  rs  Úx_dtr’   s         @r%   Ú	np_vanderrv  à  sÓ   ø€ à�•u”zÐ"Ð"Ð"Ý˜!�Uœ]Ñ+Ô+ð 	NÝÐLÑMÔMÐMð
ð 
ð 
ð 
ð 
ð 
ðð ð ð õ �!•U”[Ñ!Ô!ð "Ý˜œÑ Ô ˆåÔ  ¥sÑ+Ô+ˆØÐÝ	�A�œ¥U¤^Ð4Ñ	5Ô	5ð "Ø!Ð!ð"ð "r$   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ì  )r`   rs  r¼   r~   r’   r¿   r1   r½   )r,   Úshiftrc   rÁ   Úarr_flatr-   rÂ   s          r%   Únp_roll_implznp_roll.<locals>.np_roll_impl	  sm   € ÝŒj˜‰mŒmˆÝŒh�s”y¨¬	Ð2Ñ2Ô2ˆð ”8ˆÝ�s”x‘”ð 	(ð 	(ˆAØ�u‘9 ¤Ñ(ˆCØ$ QœKˆCŒH�S‰MˆMàˆ
r$   c                 ó*   — t          j        | ¦  «        S r+   r[  )r,   ry  s     r%   r¤  znp_roll.<locals>.<lambda>	  s   € ¥¤
¨1¡¤€ r$   )rS   r   r  r�  r   r‚  )r,   ry  r{  s      r%   Únp_rollr}  	  sg   € å�e�eœm­U¬]Ð;Ñ<Ô<ð 6ÝÐ4Ñ5Ô5Ð5ð
ð 
ð 
õ �!•e”l¥E¤MÐ2Ñ3Ô3ð Ø-Ð-Ð-àÐr$   é   c                 ó�  — d}|}| ||dz
           k    r|S | |d         k     rdS |dk    r0d}||k     r#| ||         k    r|dz  }||k     r| ||         k    °|dz
  S ||dz
  k    r|dz
  }|dk     rd}| ||         k     rC| ||dz
           k     r/|dz
  }|t           k    r| ||t           z
           k    r
|t           z
  }n^|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     °%|dz
  S )Nr   r(   r?  é   ry   rz   )ÚLIKELY_IN_CACHE_SIZE)Úkeyrc   ÚlengthÚguessÚiminÚimaxr-   Úimids           r%   Úbinary_search_with_guessrˆ  %	  så  € ð €DØ€Dð ˆS�˜!‘Œ_ÒÐØˆØ	ˆs�1ŒvŠˆØˆrð �‚{€{ØˆØ�&Šjˆj˜S C¨¤Fš]˜]Ø�‰FˆAð �&Šjˆj˜S C¨¤Fš]˜]à�1‰uˆàˆv˜‰zÒÐØ˜‘
ˆàˆq‚y€yØˆð ˆS�ŒZÒÐØ��U˜Q‘Y”ÒÐØ˜1‘9ˆDð Õ+Ò+Ð+Ø˜3˜uÕ';Ñ;Ô<Ò<Ð<ØÕ3Ñ3�øð ˜1‘9Ðð ��U˜Q‘Y”ÒÐØˆLð �S˜ ™”^Ò#Ð#Ø˜q‘yÐ ð ˜q‘y�à˜VÕ&:Ñ:¸QÑ>Ò?Ð?Ø˜s 5Õ+?Ñ#?Ô@Ò@Ð@Ø Õ#7Ñ7�Dð �Š+ˆ+Ø˜˜t™¨Ñ)Ñ*ˆØ�#�d”)ÒÐØ˜!‘8ˆDˆDàˆDð �Š+ˆ+ð �!‰8€Or$   c                 ó	  — t          j        | ¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          |¦  «        dk    rt          d¦  «        ‚t          |¦  «        t          |¦  «        k    rt          d¦  «        ‚|j        dk    r"t          j        |j        |d         |¬¦  «        S t          j        |j        |¬¦  «        }|j        }t          |¦  «        }	|d         }
||	dz
           }|	dk    r]|d         }|d         }t          |¦  «        D ];}|j	        |         }||k     r|
|j	        |<   Œ ||k    r||j	        |<   Œ1||j	        |<   Œ<�n&d}|	|k    rt          j        |	dz
  |¬¦  «        }nt          j        d|¬¦  «        }|j        ryt          |	dz
  ¦  «        D ]f}d||dz            ||         z
  z  }||dz            j
        ||         j
        z
  |z  }||dz            j        ||         j        z
  |z  }|d|z  z   ||<   Œgt          |¦  «        D �]]}|j	        |         }t          j        |¦  «        r|}d}|d|z  z   |j	        |<   Œ9t          |||	|¦  «        }|d	k    r|
|j	        |<   Œ\||	k    r||j	        |<   Œm||	dz
  k    r||         |j	        |<   Œ‡||         |k    r||         |j	        |<   Œ¤|j        r	||         }nad||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        |¦  «        rg|j
        |||dz            z
  z  ||dz            j
        z   }t          j        |¦  «        r,||         j
        ||dz            j
        k    r||         j
        }|j        |||         z
  z  ||         j        z   }t          j        |¦  «        rg|j        |||dz            z
  z  ||dz            j        z   }t          j        |¦  «        r,||         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í  rD  r�  r?  )r`   rs  rD   r|   r½   r€   r~   r¼   r1   r¿   rÞ   rý   r  rˆ  )rž  ÚxpÚfpr’   ÚdzrW  ÚdyÚdresÚlenxÚlenxpÚlvalÚrvalÚxp_valÚfp_valr-   Úx_valrb  ÚslopesÚinv_dxrÞ   rý   Úslopes                         r%   Únp_interp_impl_complex_innerr�  j	  s�  € õ 
Œ�A‰Œ€BÝ	Œ�B‰Œ€BÝ	Œ�B‰Œ€Bå
ˆ2�w„w�!‚|€|ÝÐ:Ñ;Ô;Ð;å
ˆ2�w„w•#�b‘'”'ÒÐÝÐ>Ñ?Ô?Ð?à	„w�!‚|€|ÝŒw�r”x¨B¨q¬E¸Ð?Ñ?Ô?Ð?åŒ8�B”H EÐ*Ñ*Ô*€DàŒ7€DÝ�‰GŒG€EØˆaŒ5€DØˆe�a‰iŒ=€Dà�‚z€zØ�A”ˆØ�A”ˆå�t‘”ð 	&ð 	&ˆAØ”G˜A”JˆEØ�vŠ~ˆ~Ø#�”	˜!‘�Ø˜’�Ø#�”	˜!‘�à%�”	˜!‘�ñ	&ð ˆð �DŠ=ˆ=Ý”X˜u q™y°Ð7Ñ7Ô7ˆFˆFå”X˜a uÐ-Ñ-Ô-ˆFàŒ;ð 	-Ý˜5 1™9Ñ%Ô%ð -ð -�Ø˜b  Q¡œi¨"¨Q¬%Ñ/Ñ0�Ø˜1˜q™5œ	œ¨¨A¬¬Ñ3°vÑ=�Ø˜1˜q™5œ	œ¨¨A¬¬Ñ3°vÑ=�Ø  2¨¡9Ñ,��q‘	�	å�t‘”ð 0	0ñ 0	0ˆAØ”G˜A”JˆEåŒx˜‰Œð Ø�Ø�Ø# b¨4¡iÑ/�”	˜!‘Øå(¨°°E¸1Ñ=Ô=ˆAà�BŠwˆwØ#�”	˜!‘�Ø�e’�Ø#�”	˜!‘�Ø�e˜a‘i’�Ø! !œu�”	˜!‘�Ø�A”˜%’�à! !œu�”	˜!‘�à”;ð -Ø" 1œI�E�Eà " Q¨¡U¤)¨b°¬eÑ"3Ñ4�FØ˜q 1™uœIœN¨R°¬U¬ZÑ7¸6ÑA�DØ˜q 1™uœIœN¨R°¬U¬ZÑ7¸6ÑA�DØ  2¨¡9Ñ,�Eð ”z U¨R°¬U¡]Ñ3°b¸´e´jÑ@�Ý”8˜D‘>”>ð *Ø œ:¨°°A¸±E´Ñ):Ñ;¸bÀÀQÁ¼i¼nÑL�DÝ”x ‘~”~ð *¨"¨Q¬%¬*¸¸1¸q¹5¼	¼Ò*FÐ*FØ! !œuœz˜à”z U¨R°¬U¡]Ñ3°b¸´e´jÑ@�Ý”8˜D‘>”>ð *Ø œ:¨°°A¸±E´Ñ):Ñ;¸bÀÀQÁ¼i¼nÑL�DÝ”x ‘~”~ð *¨"¨Q¬%¬*¸¸1¸q¹5¼	¼Ò*FÐ*FØ! !œuœz˜à# b¨4¡iÑ/�”	˜!‘‘à€Kr$   c                 óº  — t          j        | t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          |¦  «        dk    rt	          d¦  «        ‚t          |¦  «        t          |¦  «        k    rt	          d¦  «        ‚|j        dk    r"t          j        |j        |d         |¬¦  «        S t          j        |j        |¬¦  «        }|j        }t          |¦  «        }	|d         }
||	dz
           }|	dk    r]|d         }|d         }t          |¦  «        D ];}|j
        |         }||k     r|
|j
        |<   Œ ||k    r||j
        |<   Œ1||j
        |<   Œ<�nÕd}|	|k    r,|dd …         |d d…         z
  |dd …         |d d…         z
  z  }nt          j        d|¬¦  «        }t          |¦  «        D �]z}|j
        |         }t          j        |¦  «        r||j
        |<   Œ/t          |||	|¦  «        }|dk    r|
|j
        |<   ŒR||	k    r||j
        |<   Œc||	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
        |         ¦  «        ri||||dz            z
  z  ||dz            z   |j
        |<   t          j        |j
        |         ¦  «        r%||         ||dz            k    r||         |j
        |<   �Œ||S )Nrí  r   rŠ  r‹  r(   rŒ  r?  )r`   rs  r×   rD   r|   r½   r€   r~   r¼   r1   r¿   r  rˆ  )rž  rŽ  r�  r’   r�  rW  r‘  r’  r“  r”  r•  r–  r—  r˜  r-   r™  rb  rš  rœ  s                      r%   Únp_interp_impl_innerrŸ  Ø	  sh  € õ 
Œ�A�RœZÐ	(Ñ	(Ô	(€BÝ	Œ�B�bœjÐ	)Ñ	)Ô	)€BÝ	Œ�B�bœjÐ	)Ñ	)Ô	)€Bå
ˆ2�w„w�!‚|€|ÝÐ:Ñ;Ô;Ð;å
ˆ2�w„w•#�b‘'”'ÒÐÝÐ>Ñ?Ô?Ð?à	„w�!‚|€|ÝŒw�r”x¨B¨q¬E¸Ð?Ñ?Ô?Ð?åŒ8�B”H EÐ*Ñ*Ô*€DàŒ7€DÝ�‰GŒG€EØˆaŒ5€DØˆe�a‰iŒ=€Dà�‚z€zØ�A”ˆØ�A”ˆå�t‘”ð 	&ð 	&ˆAØ”G˜A”JˆEØ�vŠ~ˆ~Ø#�”	˜!‘�Ø˜’�Ø#�”	˜!‘�à%�”	˜!‘�ñ	&ð ˆð �DŠ=ˆ=Ø˜˜˜”f˜r # 2 #œwÑ&¨2¨a¨b¨b¬6°B°s¸°s´GÑ+;Ñ<ˆFˆFå”X˜a uÐ-Ñ-Ô-ˆFå�t‘”ð #	-ñ #	-ˆAØ”G˜A”JˆEåŒx˜‰Œð Ø$�”	˜!‘Øå(¨°°E¸1Ñ=Ô=ˆAà�BŠwˆwØ#�”	˜!‘�Ø�e’�Ø#�”	˜!‘�Ø�e˜a‘i’�Ø! !œu�”	˜!‘�Ø�A”˜%’�à! !œu�”	˜!‘�à”;ð FØ" 1œI�E�Eà  A¡œY¨¨A¬Ñ.°2°a¸!±e´9¸rÀ!¼uÑ3DÑE�Eà$¨°°1´©Ñ6¸¸A¼Ñ>�”	˜!‘õ ”8˜DœI aœLÑ)Ô)ð -Ø#(¨E°B°q¸1±u´IÑ,=Ñ#>ÀÀAÈÁEÄÑ#J�D”I˜a‘LÝ”x ¤	¨!¤Ñ-Ô-ð -°"°Q´%¸2¸aÀ!¹e¼9Ò2DÐ2DØ')¨!¤u˜œ	 !™ùà€Kr$   c                 óŠ  ‡‡	— t          |d¦  «        r|j        dk    rt          d¦  «        ‚t          |d¦  «        r|j        dk    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_implL
  s   ø€ Øˆu�Q˜˜B Ñ&Ô&Ð&r$   c                 ó6   •—  ‰| ||‰¦  «        j         d         S rÝ   ©r¿   r¢  s      €€r%   Únp_interp_scalar_implz(np_interp.<locals>.np_interp_scalar_implO
  s!   ø€ Øˆu�Q˜˜B Ñ&Ô&Ô+¨AÔ.Ð.r$   )rU  r{   r   r±  r`   r³  r´  Úresult_typer×   r�  rŸ  rS   r   r‚  r  )
rž  rŽ  r�  Úcomplex_dtype_msgÚxp_dtÚfp_dtr£  r¦  r’   r�   s
           @@r%   Ú	np_interpr«  1
  s^  øø€ õ ˆr�6ÑÔð +˜rœw¨š{˜{Ý˜/Ñ*Ô*Ð*Ýˆr�6ÑÔð +˜rœw¨š{˜{Ý˜/Ñ*Ô*Ð*ð 	Eð õ ˜BÑÔ€EÝ	„}�U�BÔ.Ñ/Ô/ð -ÝÐ+Ñ,Ô,Ð,å˜BÑÔ€EÝŒN˜5¥"¤*Ñ-Ô-€Eå	„}�U�BÔ.Ñ/Ô/ð %Ý,ˆˆå$ˆð'ð 'ð 'ð 'ð 'ð 'ð/ð /ð /ð /ð /ð /õ �!•U”\Ñ"Ô"ð %Ý�a�œÑ'Ô'ð 	1ÝÐ/Ñ0Ô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 )Nrz   r(   rí  r   )r{   r~   r`   r¼   r’   r1   r’  )r,   rà   rq  rÁ   r-   s        r%   Úrow_wise_averager­  ]
  sx   € àŒ6�QŠ;ˆ;ˆ;ˆ;àŒ7�D€A€qÝ
Œ(�A�q�6 ¤Ð
)Ñ
)Ô
)€Cå�1‰XŒXð (ð (ˆÝ”F˜1˜Q   ˜Tœ7‘O”O aÑ'ˆˆAˆqˆD‰	ˆ	à€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­  r`   Údotrß   ÚTr~  )ÚXÚbiasÚddofÚfactrd   s        r%   Únp_cov_impl_innerrµ  j
  s‹   € ð €|Øð 	ØˆDˆDàˆDð Œ7�1Œ:˜Ñ€Dõ ˆt�S‰>Œ>€Dð Õ	˜!Ñ	Ô	Ñ€Aõ 	Œˆq•"”'˜!œ#‘,”,ÑÔ€AØ�Œ˜˜4Ñ	 Ô	 Ñ €AØ€Hr$   c                  ó   — d S r+   r#   r#   r$   r%   Ú_prepare_cov_input_innerr·  ƒ
  r4  r$   c                 ó4   — |d t           j        fv rd„ }nd„ }|S )Nc                 óZ   — t          j        t          | ¦  «        ¦  «        }|s|j        }|S r+   )r`   Ú
atleast_2dr(  r°  )rà   rá  Úrowvarr’   Úm_arrs        r%   r·  z9_prepare_cov_input_impl.<locals>._prepare_cov_input_innerŠ
  s+   € Ý”M¥(¨1¡+¤+Ñ.Ô.ˆEàð  Øœ�àˆLr$   c                 ó¤  — t          j        t          | ¦  «        ¦  «        }t          j        t          |¦  «        ¦  «        }|s0|j        d         dk    r|j        }|j        d         dk    r|j        }|j        \  }}|j        \  }}	||	k    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í  )r`   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ç   € Ý”M¥(¨1¡+¤+Ñ.Ô.ˆEÝ”M¥(¨1¡+¤+Ñ.Ô.ˆEð
 ð $Ø”;˜q”> QÒ&Ð&Ø!œG�EØ”;˜q”> QÒ&Ð&Ø!œG�Eà"œ[‰NˆF�FØ"œ[‰NˆF�Fà˜ÒÐÝ Ð!GÑHÔHÐHõ ”(˜F V™O¨VÐ4¸EÐBÑBÔBˆCØ#ˆC���˜˜˜�
‰OØ$ˆC����˜!˜!˜!�ÑàˆJr$   r3  )rà   rá  r»  r’   r·  s        r%   Ú_prepare_cov_input_implrÃ  ‡
  s?   € àˆT•5”:ÐÐÐð	ð 	ð 	ð 	ð	ð 	ð 	ð4 $Ð#r$   c                 ód   — | j         dk    r"| j        d         dk    rd}t          |¦  «        ‚d S d S )Nrz   r   r(   zŸ2D 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Å  ¯
  s=   € à„v�‚{€{�q”w˜q”z Q’�ð?ˆõ ˜3ÑÔÐð	 €{��r$   c                 ó   — | S r+   r#   r�  s    r%   r¤  r¤  ¸
  s   € ¨q€ r$   c                 ó†  ‡— t           j        }t          | t          j        ¦  «        rt          | j        ¦  «        }�nt          | t          j        t          j        f¦  «        rt          | ¦  «        }nÍt          | t          j	        t          j
        f¦  «        r§t          ¦   «         Š| D ]6}t          |d¦  «        rˆfd„|D ¦   «          Œ!‰                     |¦  «         Œ7t          ‰¦  «        dk    rt          j        d„ ‰D ¦   «         Ž }n4t          ‰¦  «        dk    r!t          ‰                     ¦   «         ¦  «        }|S )Nr  c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r#   )Úadd)Ú.0re   Úcoltypess     €r%   ú
<listcomp>z#determine_dtype.<locals>.<listcomp>Å
  s#   ø€ Ð.Ð.Ð. Q�—’˜a‘”Ð.Ð.Ð.r$   r(   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r#   )r	   )rÊ  Útys     r%   rÌ  z#determine_dtype.<locals>.<listcomp>É
  s   € Ð.OÐ.OÐ.OÀ­x¸©|¬|Ð.OÐ.OÐ.Or$   )r`   r×   rS   r   r¶   r	   r’   r‚  r�  rE   rV   ÚsetrU  rÉ  rD   rt  r   )Ú
array_likeÚarray_like_dtrâ   rË  s      @r%   r±  r±  »
  s,  ø€ Ý”J€MÝ�*�eœkÑ*Ô*ð 5Ý  Ô!1Ñ2Ô2ˆ‰Ý	�J¥¤­u¬}Ð =Ñ	>Ô	>ð 5Ý  Ñ,Ô,ˆˆÝ	�J¥¤µ´Ð =Ñ	>Ô	>ð 
5Ý‘5”5ˆØð 	"ð 	"ˆCÝ�s˜GÑ$Ô$ð "Ø.Ð.Ð.Ð.¨#Ð.Ñ.Ô.Ð.Ð.à—’˜SÑ!Ô!Ð!Ð!Ýˆx‰=Œ=˜1ÒÐÝÔ,Ð.OÐ.OÀhÐ.OÑ.OÔ.OÐPˆMˆMÝ�‰]Œ]˜aÒÐÝ$ X§\¢\¡^¤^Ñ4Ô4ˆMàÐr$   c                 óÂ  — t          | t          j        ¦  «        r/| j        dk    r"t	          d                     |¦  «        ¦  «        ‚d S t          | t          j        ¦  «        rwt          | j        d         t          j        ¦  «        rTt          | j        d         j        d         t          j        ¦  «        r&t	          d                     |¦  «        ¦  «        ‚d S d S d S )Nrz   z{0} has more than 2 dimensionsr   )rS   r   r¶   r{   r‘  ÚformatrÖ  r‚  )rÐ  Únames     r%   Úcheck_dimensionsrÕ  Ð
  sß   € Ý�*�eœkÑ*Ô*ð OØŒ?˜QÒÐÝÐ<×CÒCÀDÑIÔIÑJÔJÐJð Ðå	�J¥¤Ñ	/Ô	/ð OÝ�j”n QÔ'­¬Ñ8Ô8ð 	OÝ˜*œ.¨Ô+Ô/°Ô2µE´NÑCÔCð OÝÐ @× GÒ GÈÑ MÔ MÑNÔNÐNðOð Oð	Oð 	OðOð Or$   c                 ó–   — t          j        | ¦  «        st          d¦  «        ‚| t          | ¦  «        z
  dk    rt          d¦  «        ‚d S )Nz)Cannot convert non-finite ddof to integerr   zddof must be integral value)r`   r|  r|   r�  )r³  s    r%   Ú_handle_ddofr×  Ú
  sQ   € åŒ;�tÑÔð FÝÐDÑEÔEÐEØ�c�$‰iŒiÑ˜1ÒÐÝÐ6Ñ7Ô7Ð7ð Ðr$   c                 ó   — | S r+   r#   r�  s    r%   r¤  r¤  â
  s   € ¨a€ r$   c                 óR   —  || ¦  «          ||¦  «         t          | |||¦  «        S r+   )r·  )rà   rá  r»  r’   r³  Ú_DDOF_HANDLERÚ_M_DIM_HANDLERs          r%   Ú_prepare_cov_inputrÜ  å
  s8   € ð €N�1ÑÔÐØ€M�$ÑÔÐÝ# A q¨&°%Ñ8Ô8Ð8r$   c                 ó<  — |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dS dS )Nr(   c              3   ób   K  — | ]*}t          |t          j        t          j        f¦  «        V — Œ+d S r+   )rS   r   r‚  r�  ©rÊ  rž  s     r%   ú	<genexpr>z)scalar_result_expected.<locals>.<genexpr>ô
  sI   è è € ð /ð /Øõ ˜!�eœl­E¬MÐ:Ñ;Ô;ð /ð /ð /ð /ð /ð /r$   r   TF)r   r4  rS   r¶   r{   Ú	BaseTuplerO  rD   r‚  r�  rÖ  r‚  )Úmandatory_inputÚoptional_inputÚopt_is_nones      r%   Úscalar_result_expectedrå  í
  s   € Ø  T­5¬:Ð$6Ð6€Kå�/¥5¤;Ñ/Ô/ð °OÔ4HÈAÒ4MÐ4MØÐå�/¥5¤?Ñ3Ô3ð #Ýð /ð /Ø'Ô-ð/ñ /ô /ñ /ô /ð 	#àÐå�OÔ)Ñ*Ô*¨aÒ/Ð/Ý˜Ô4°QÔ7½¼ÑIÔIð 0à"Ð"å�/¥E¤Lµ%´-Ð#@ÑAÔAð ØÐå�/¥5¤>Ñ2Ô2ð Ý˜?Ô.¨qÔ1µ5´>ÑBÔBð 	Øð	à�4àˆ5r$   c                 ó~   — t          j        t          j        | ¦  «        dk    t          j        | ¦  «        | ¦  «        S r[  )r`   rð  ÚfabsÚsignr�  s    r%   Ú
_clip_corrré    s*   € åŒ8•B”G˜A‘J”J ’N¥B¤G¨A¡J¤J°Ñ2Ô2Ð2r$   c                 ób   — t          | j        ¦  «        }t          | j        ¦  «        }|d|z  z   S )NrD  )ré  rÞ   rý   )rž  rÞ   rý   s      r%   Ú_clip_complexrë    s/   € å�a”fÑÔ€DÝ�a”fÑÔ€DØ�"�t‘)ÑÐr$   c                 óN  ‡	‡
‡— t          | d¦  «         t          |d¦  «         |d t          j        fv rt          Š	n_t	          |t          j        t          j        f¦  «        rt          Š	n1t	          |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 typeTFc           	      óF  •— t          | ||‰|‰‰¦  «                             ‰¦  «        }t          j        t          j        |j        ¦  «        dk    ¦  «        r9t          j        |j        d         |j        d         ft          j        ‰¬¦  «        S t          |||¦  «        S )Nr   rŒ  )	rÜ  rÈ  r`   r†  r1  r~   r€   rE  rµ  )	rà   rá  r»  r²  r³  r±  rÚ  rÛ  r’   s	         €€€r%   Únp_cov_implznp_cov.<locals>.np_cov_impl2  s›   ø€ Ý˜q ! V¨U°D¸-Ø-ñ/ô /ß/5ªv°e©}¬}ð 	
õ Œ6•"”(˜1œ7Ñ#Ô# qÒ(Ñ)Ô)ð 	4Ý”7˜AœG AœJ¨¬°¬
Ð3ÅÄØ!&ð(ñ (ô (ð (õ % Q¨¨dÑ3Ô3Ð3r$   c           	      ó,  •— t          | |||‰	‰‰¦  «                             ‰	¦  «        }t          j        t          j        |j        ¦  «        dk    ¦  «        rt          j        }nt          |||¦  «        j        d         }t          j        |¦  «        S rÝ   )	rÜ  rÈ  r`   r†  r1  r~   rE  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_variable<  s‡   ø€ å˜q ! V¨T°5¸-Ø-ñ/ô /ß/5ªv°e©}¬}ð 	
õ Œ6•"”(˜1œ7Ñ#Ô# qÒ(Ñ)Ô)ð 	@Ý”vˆHˆHå(¨¨D°$Ñ7Ô7Ô<¸QÔ?ˆHåŒx˜Ñ!Ô!Ð!r$   ©NTFN)rÕ  r   r4  Ú_handle_ddof_noprS   r  r�  r  r×  r   Ú_handle_m_dim_nopr¶   rÅ  r±  r`   r§  r×   rå  )rà   rá  r»  r²  r³  Úm_dtÚy_dtrî  rñ  rÚ  rÛ  r’   s            @@@r%   Únp_covr÷    s[  øøø€ õ �Q˜ÑÔÐÝ�Q˜ÑÔÐð �•e”jÐ!Ð!Ð!Ý(ˆˆå�d�Uœ]­E¬MÐ:Ñ;Ô;ð 	KÝ,ˆMˆMÝ˜�eœkÑ*Ô*ð 	KÝ(ˆMˆMåÐIÑJÔJÐJõ
 '€NÝ�!•U”[Ñ!Ô!ð .Ý-ˆõ ˜1ÑÔ€DÝ˜1ÑÔ€DÝŒN˜4 ¥r¤zÑ2Ô2€Eð4ð 4ð 4ð 4ð 4ð 4ð 4ð 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 )NTc                 ó*  •— 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Ý   )r`   ÚcovÚdiagÚsqrtrÞ   r1   r~   )rž  rá  r»  rd   rc  Ústddevr-   Úclip_fns          €r%   Únp_corrcoef_implz%np_corrcoef.<locals>.np_corrcoef_implZ  s›   ø€ ÝŒF�1�a˜Ñ Ô ˆÝŒG�A‰JŒJˆÝ”˜œ‘”ˆå�q”w˜q”zÑ"Ô"ð 	ð 	ˆAØˆa���ˆdˆGˆGŒG�vÑˆGˆG‰GØˆaˆaˆa�ˆdˆGˆGŒG�vÑˆGˆG‰GˆGàˆw�q‰zŒzÐr$   c                 ó8   — t          j        | ||¦  «        }||z  S r+   )r`   rú  )rž  rá  r»  rd   s       r%   Ú np_corrcoef_impl_single_variablez5np_corrcoef.<locals>.np_corrcoef_impl_single_variablee  s   € ÝŒF�1�a˜Ñ Ô ˆØ�1‰uˆr$   ©NT)r±  r`   r§  r×   Úcomplex_rë  ré  rå  )	rž  rá  r»  ru  rö  r’   rÿ  r  rþ  s	           @r%   Únp_corrcoefr  N  sŸ   ø€ õ ˜1ÑÔ€DÝ˜1ÑÔ€DÝŒN˜4 ¥r¤zÑ2Ô2€Eà•”ÒÐÝˆˆåˆð	ð 	ð 	ð 	ð 	ð 	ðð ð ð õ ˜a Ñ#Ô#ð  Ø/Ð/àÐr$   c                 ó”   ‡‡— t          | t          j        t          j        f¦  «        }t	          | ¦  «        r|sd„ }n
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í  )	r`   rs  r~   rç  r   r3   r@  Úvstackr  r)  s     r%   rH  znp_argwhere.<locals>.implz  sS   € Ý”*˜Q‘-”-ˆCØŒy˜BŠˆÝ”x ­e¬jÐ9Ñ9Ô9Ð9Ý”<¥¤	­"¬*°S©/¬/Ñ :Ô :Ñ;Ô;Ð;r$   )r   r   )r(   r   c                 ó¦   •— | �/t          | ¦  «        r t          j        ‰t          j        ¬¦  «        S t          j        ‰t          j        ¬¦  «        S rì  )r€  r`   rç  r   r3   )r,   ÚfalseishÚtrueishs    €€r%   rH  znp_argwhere.<locals>.implƒ  s@   ø€ Øˆ}¥ a¡¤ˆ}Ý”x ­u¬zÐ:Ñ:Ô:Ð:å”x µ´
Ð;Ñ;Ô;Ð;r$   )rS   r   r‚  r�  r
   )r,   Ú
use_scalarrH  r	  r
  s      @@r%   Únp_argwherer  s  sz   øø€ õ
 ˜A¥¤­e¬mÐ<Ñ=Ô=€JÝ˜ÑÔð < :ð <ð	<ð 	<ð 	<ð 	<ð ˆØˆð	<ð 	<ð 	<ð 	<ð 	<ð 	<ð €Kr$   c                 ó2   — t          | ¦  «        rd„ }nd„ }|S )Nc                 ó‚   — t          j        | ¦  «        }t          j        t          j        |¦  «        ¦  «        d         S rÝ   )r`   rs  r  rA  r)  s     r%   rH  znp_flatnonzero.<locals>.impl�  s,   € Ý”*˜Q‘-”-ˆCÝ”:�bœh s™mœmÑ,Ô,¨QÔ/Ð/r$   c                 óž   — | �t          | ¦  «        rdg}nd„ t          d¦  «        D ¦   «         }t          j        |t          j        ¬¦  «        S )Nr   c                 ó   — g | ]}|‘ŒS r#   r#   rß  s     r%   rÌ  z0np_flatnonzero.<locals>.impl.<locals>.<listcomp>˜  s   € Ð,Ð,Ð,˜a˜Ð,Ð,Ð,r$   rí  )r€  r1   r`   r1  r   r3   )r,   r?   s     r%   rH  znp_flatnonzero.<locals>.impl”  sJ   € Øˆ}¥ a¡¤ˆ}Ø�s��à,Ð,¥5¨¡8¤8Ð,Ñ,Ô,�Ý”8˜D­¬
Ð3Ñ3Ô3Ð3r$   r¦  )r,   rH  s     r%   Únp_flatnonzeror  Œ  s>   € õ ˜ÑÔð 
4ð	0ð 	0ð 	0ð 	0ð	4ð 	4ð 	4ð €Kr$   c                 óÄ  — | j         dk    r;| j        d         }| j        d         }d|z   }|r||z  }n«|t          ||¦  «        z  }n—t          j        | j        ¦  «        }t          j        t          j        |¦  «        dk    ¦  «        st          d¦  «        ‚dt          j        |d d…         ¦  «         	                    ¦   «         z   }| 
                    ¦   «         }||fS )Nrz   r   r(   z/All dimensions of input must be of equal lengthr?  )r{   r~   rø   r`   r1  rO  r>  r|   rÌ   r’  r±   )r,   Úwraprà   rq  ÚsteprC  r~   s          r%   Ú_fill_diagonal_paramsr  ž  sÑ   € à„v�‚{€{ØŒG�AŒJˆØŒG�AŒJˆØ�1‰uˆØð 	 Ø�a‘%ˆCˆCà•c˜!˜Q‘i”i‘-ˆCˆCå”˜œÑ!Ô!ˆåŒv•b”g˜e‘n”n¨Ò)Ñ*Ô*ð 	PÝÐNÑOÔOÐOà•B”J˜u S b SœzÑ*Ô*×/Ò/Ñ1Ô1Ñ1ˆØ�jŠj‰lŒlˆà�ˆ9Ðr$   c                 óh   — t          | |¦  «        \  }}t          d||¦  «        D ]}|| j        |<   Œd S rÝ   )r  r1   r¿   )r,   râ   r  rC  r  r-   s         r%   Ú_fill_diagonal_scalarr  ´  sG   € å% a¨Ñ.Ô.�I€Cˆå�1�c˜4Ñ Ô ð ð ˆØˆŒˆq‰	ˆ	ðð r$   c                 óª   — t          | |¦  «        \  }}d}t          |¦  «        }t          d||¦  «        D ]}||         | j        |<   |dz  }||z  }Œd S r¶  )r  rD   r1   r¿   )r,   râ   r  rC  r  ÚctrÚv_lenr-   s           r%   Ú_fill_diagonalr  ¼  sm   € å% a¨Ñ.Ô.�I€CˆØ
€CÝ�‰HŒH€Eå�1�c˜4Ñ Ô ð ð ˆØ˜”HˆŒˆq‰	Øˆq‰ˆØ�E‰kˆˆðð r$   c                 ó   — t          j        | j        ¦  «        }|j        }|j        }t          j        t          j        |¦  «         ¦  «        s0t          j        ||k     ¦  «        st          j        ||k    ¦  «        rt          d¦  «        ‚d S ©Nz'Unable to safely conform val to a.dtype)r`   Úiinfor’   rø   r  r†  r|  r|   )r,   râ   r  Úv_minÚv_maxs        r%   Ú_check_val_intr!  È  sŠ   € åŒH�Q”WÑÔ€EØŒI€EØŒI€Eõ 
„v�rŒ{˜3ÑÔÐÑ Ô ð D¥B¤F¨3°ª;Ñ$7Ô$7ð D½2¼6À#ÈÂ+Ñ;NÔ;Nð DÝÐBÑCÔCÐCðDð Dr$   c                 ó  — t          j        | j        ¦  «        }|j        }|j        }|t          j        |¦  «                 }t          j        ||k     ¦  «        st          j        ||k    ¦  «        rt          d¦  «        ‚d S r  )r`   Úfinfor’   rø   r  r|  r†  r|   )r,   râ   r#  r  r   Úfinite_valss         r%   Ú_check_val_floatr%  Ó  s�   € åŒH�Q”WÑÔ€EØŒI€EØŒI€Eð •b”k #Ñ&Ô&Ô'€KÝ	„vˆk˜EÒ!Ñ"Ô"ð D¥b¤f¨[¸5Ò-@Ñ&AÔ&Að DÝÐBÑCÔCÐCðDð Dr$   c                 ó   — | S r+   r#   ©rž  rá  s     r%   r¤  r¤  à  s   € ¨1€ r$   c                 ó   — d S r+   r#   r�  s    r%   r(  r(  ã  r4  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 d S )Nc                 ó   — | S r+   r#   r�  s    r%   r¤  z_asarray_impl.<locals>.<lambda>ê  s   € ˜€ r$   c                 ó*   — t          j        | ¦  «        S r+   r0  r�  s    r%   r¤  z_asarray_impl.<locals>.<lambda>ì  s   € �œ !™œ€ r$   c                 ó2   •— t          j        | g‰¬¦  «        S rì  r0  ©rž  rÎ  s    €r%   r¤  z_asarray_impl.<locals>.<lambda>ï  s   ø€ �œ 1 #¨RÐ0Ñ0Ô0€ r$   )rS   r   r¶   rÖ  rV   r‚  r�  r	   r-  s    @r%   Ú_asarray_implr.  ç  s‚   ø€ å�!•U”[Ñ!Ô!ð 1Øˆ{ÐÝ	�A�œ­¬Ð4Ñ	5Ô	5ð 1Ø$Ð$Ð$Ý	�A�œ¥e¤mÐ4Ñ	5Ô	5ð 1Ý�a‰[Œ[ˆØ0Ð0Ð0Ð0Ð0ð1ð 1r$   c                 óÞ  ‡— | j         dk    rÉt          | j        t          j        ¦  «        rt
          Šn.t          | 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 d S d| j         z  }t          |¦  «        ‚)Nr(   Fc                 ó„   •— t          |¦  «                             ¦   «         } ‰| |¦  «         t          | ||¦  «         d S r+   )r(  rv  r  ©r,   râ   r  ÚtmpvalÚcheckers       €r%   Úscalar_implz%np_fill_diagonal.<locals>.scalar_impl   sD   ø€ Ý˜c‘]”]×*Ò*Ñ,Ô,ˆFØˆG�A�vÑÔÐÝ! ! S¨$Ñ/Ô/Ð/Ð/Ð/r$   c                 ó„   •— t          |¦  «                             ¦   «         } ‰| |¦  «         t          | ||¦  «         d S r+   )r(  rv  r  r1  s       €r%   Únon_scalar_implz)np_fill_diagonal.<locals>.non_scalar_impl  sD   ø€ Ý˜c‘]”]×*Ò*Ñ,Ô,ˆFØˆG�A�vÑÔÐÝ˜1˜f dÑ+Ô+Ð+Ð+Ð+r$   z4The first argument must be at least 2-D (found %s-D)©F)r{   rS   r’   r   r  r!  r  r%  Ú
_check_nopr�  rV   rÖ  r¶   r   )r,   râ   r  r4  r6  r©   r3  s         @r%   Únp_fill_diagonalr9  ò  s   ø€ ð 	„v�‚z€zõ �a”g�uœ}Ñ-Ô-ð 	!Ý$ˆGˆGÝ˜œ¥¤Ñ-Ô-ð 	!Ý&ˆGˆGå ˆGð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð
	,ð 	,ð 	,ð 	,ð 	,ð 	,õ
 �c�EœK­¬½¼ÐFÑGÔGð 	#ØÐÝ˜�eœk­5¬>½5¼;ÐGÑHÔHð 	#Ø"Ð"ð	#ð 	#ð EÀqÄvÑMˆÝ˜#ÑÔÐr$   c                 ó   — d| j         fz  S )Nzllvm.rint.f%d)rÈ   )Útps    r%   Ú_np_round_intrinsicr<    s   € à˜bœk˜^Ñ+Ð+r$   c                 ó&   —  ||¦  «        }d„ }||fS )Nc                 ó@  — |\  }|j         d         }|                      |¦  «        }|j        }t          j                             ||g¦  «        }t          j        ||t          |¦  «        ¦  «        }	| 	                    |	|f¦  «        }
t          | ||j        |
¦  «        S rÝ   )r9   r/   ÚmoduleÚllvmliteÚirÚFunctionTyper   Úget_or_insert_functionr<  Úcallr   rm   )rp   r7   rq   r9   râ   r;  Úlltyr?  ÚfntyrÅ  rr   s              r%   rC   z _np_round_float.<locals>.codegen  s•   € Ø‰ˆØŒX�aŒ[ˆØ×%Ò% bÑ)Ô)ˆØ”ˆÝŒ{×'Ò'¨¨t¨fÑ5Ô5ˆÝÔ+¨F°DÝ,?ÀÑ,CÔ,CñEô Eˆà�lŠl˜2 ˜vÑ&Ô&ˆÝ! '¨7°C´OÀSÑIÔIÐIr$   r#   )Ú	typingctxrâ   rq   rC   s       r%   Ú_np_round_floatrH    s-   € à
ˆ#ˆc‰(Œ(€Cð	Jð 	Jð 	Jð �ˆ<Ðr$   c                 ó2  — t          j        | ¦  «        st          j        | ¦  «        r| S |dk    rK|dk    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      $@g’ÕMÏð€DrX  )r  rZ  r  rH  )rž  ÚndigitsÚpow1Úpow2rá  s        r%   Úround_ndigitsrN  *  sÄ   € å„z�!�}„}ð �œ
 1™œð Øˆð �!‚|€|Ø�RŠ<ˆ<ð ˜G b™LÑ)ˆDØˆDˆDà˜7‘?ˆDØˆDØ�‰X˜ÑˆÝŒ:�a‰=Œ=ð 	ØˆHÝ Ñ"Ô" TÑ)¨TÑ1Ð1ð ˜˜Ñ!ˆØ�‰HˆÝ˜qÑ!Ô! DÑ(Ð(r$   c                 óp  — t          | ¦  «        st          d¦  «        ‚t          |t          j        ¦  «        s t          |¦  «        sd}t          |¦  «        ‚t          | t          j        t          j        t          j        f¦  «        rwt          |¦  «        rbt          | t          j        ¦  «        rd
d„}|S t          | t          j        ¦  «        rd
d„}|S t          | t          j        ¦  «        rd
d„}|S d S d
d„}|S t          | t          j        ¦  «        rt          |¦  «        rd
d„}|S d
d	„}|S d S )Nz#The argument "a" must be array-likez5The argument "out" must be an array if it is providedr   c                 óL   — |dk    rt          | ¦  «        S t          | |¦  «        S rÝ   )rH  rN  ©r,   ÚdecimalsrÁ   s      r%   rH  zimpl_np_round.<locals>.implS  s)   € Ø 1’}�}Ý.¨qÑ1Ô1Ð1å,¨Q°Ñ9Ô9Ð9r$   c                 óL   — |dk    r| S t          t          | |¦  «        ¦  «        S rÝ   )r�  rN  rQ  s      r%   rH  zimpl_np_round.<locals>.implZ  s(   € Ø 1’}�}Ø ˜å"¥=°°HÑ#=Ô#=Ñ>Ô>Ð>r$   c                 óÔ   — |dk    r)t          | j        ¦  «        }t          | j        ¦  «        }n*t          | j        |¦  «        }t          | j        |¦  «        }t	          ||¦  «        S rÝ   )rH  rÞ   rý   rN  Úcomplex)r,   rR  rÁ   rÞ   rý   s        r%   rH  zimpl_np_round.<locals>.impla  s]   € Ø 1’}�}Ý.¨q¬vÑ6Ô6˜Ý.¨q¬vÑ6Ô6˜˜å,¨Q¬V°XÑ>Ô>˜Ý,¨Q¬V°XÑ>Ô>˜Ý" 4¨Ñ.Ô.Ð.r$   c                 ó6   — t          j        | |¦  «        |d<   |S rÝ   )r`   ÚroundrQ  s      r%   rH  zimpl_np_round.<locals>.implk  s   € Ýœ ! XÑ.Ô.��A‘Ø�
r$   c                 óV   — t          j        | ¦  «        }t          j        | ||¦  «        S r+   )r`   rº  rW  rQ  s      r%   rH  zimpl_np_round.<locals>.implq  s%   € Ý”m AÑ&Ô&�Ý”x  8¨SÑ1Ô1Ð1r$   c                 ó¨   — | j         |j         k    rt          d¦  «        ‚t          j        | ¦  «        D ]\  }}t          j        ||¦  «        ||<   Œ|S )Nzinvalid output shape)r~   r|   r`   rÉ  rW  )r,   rR  rÁ   rË  râ   s        r%   rH  zimpl_np_round.<locals>.implv  sY   € Ø”7˜cœiÒ'Ð'Ý$Ð%;Ñ<Ô<Ð<Ý"$¤.°Ñ"3Ô"3ð 9ð 9‘J�E˜3Ý!#¤¨#¨xÑ!8Ô!8�C˜‘J�JØ�
r$   r  )	r
   r   rS   r   r¶   r   r  r  r  )r,   rR  rÁ   r©   rH  s        r%   Úimpl_np_roundrZ  E  sŸ  € õ ˜AÑÔð AÝÐ?Ñ@Ô@Ð@å�s�EœKÑ(Ô(ð ­K¸Ñ,<Ô,<ð ØEˆÝ˜#ÑÔÐå�!•e”k¥5¤=µ%´-Ð@ÑAÔAð ,Ý�sÑÔð 	Ý˜!�Uœ[Ñ)Ô)ð ð:ð :ð :ð :ð
 �Ý˜A�uœ}Ñ-Ô-ð ð?ð ?ð ?ð ?ð
 �Ý˜A�uœ}Ñ-Ô-ð 	ð/ð /ð /ð /ð �ð	ð 	ðð ð ð ð ˆKÝ	�A•u”{Ñ	#Ô	#ð Ý�sÑÔð 	ð2ð 2ð 2ð 2ð ˆKðð ð ð ð ˆKðð r$   c                 óœ   — t          | t          j        ¦  «        rd„ }|S t          | t          j        ¦  «        rd„ }|S t	          d¦  «        ‚)Nc                 ó^   — | dk    rd} | t           j        z  } t          j        | ¦  «        | z  S )Nr�  g#B’¡œÇ;)r`   ÚpiÚsinr�  s    r%   rH  zimpl_np_sinc.<locals>.impl‚  s-   € Ø�DŠyˆyØ�Ø•”‰JˆAÝ”6˜!‘9”9˜q‘=Ð r$   c                 ó�   — t          j        | ¦  «        }t          j        | ¦  «        D ]\  }}t          j        |¦  «        ||<   Œ|S r+   )r`   rñ  rÉ  Úsinc)rž  rÁ   rË  râ   s       r%   rH  zimpl_np_sinc.<locals>.impl‰  sF   € Ý”- Ñ"Ô"ˆCÝ œn¨QÑ/Ô/ð *ð *‘
��sÝœW S™\œ\��E‘
�
ØˆJr$   z,Argument "x" must be a Number or array-like.)rS   r   r‚  r¶   r   r¹  s     r%   Úimpl_np_sincra    sg   € å�!•U”\Ñ"Ô"ð Mð	!ð 	!ð 	!ð
 ˆÝ	�A•u”{Ñ	#Ô	#ð Mð	ð 	ð 	ð
 ˆåÐKÑLÔLÐLr$   c                 óz  ‡‡— t          dt          j        z  ¦  «        Št          | t          j        ¦  «        rdˆfd„	}|S t          | t          j        ¦  «        rP| j        }t          |t          j        ¦  «        r|j	        Šnt          |t          j
        ¦  «        r|Šnd S dˆfd„	}|S t          d| › �¦  «        ‚)Né´   Fc                 óŠ   •— |r"t          j        | j        | j        ¦  «        ‰z  S t          j        | j        | j        ¦  «        S r+   )r`   Úarctan2rý   rÞ   )rþ  ÚdegÚdeg_mults     €r%   rH  zov_np_angle.<locals>.impl™  s<   ø€ Øð 2Ý”z !¤&¨!¬&Ñ1Ô1°HÑ<Ð<å”z !¤&¨!¬&Ñ1Ô1Ð1r$   c                 ó˜   •— t          j        | ‰¬¦  «        }t          j        | ¦  «        D ]\  }}t          j        ||¦  «        ||<   Œ|S rì  )r`   rñ  rÉ  Úangle)rþ  rf  rÁ   rË  râ   Ú	ret_dtypes        €r%   rH  zov_np_angle.<locals>.impl©  sP   ø€ Ý”- ¨Ð3Ñ3Ô3ˆCÝ œn¨QÑ/Ô/ð 0ð 0‘
��sÝœX c¨3Ñ/Ô/��E‘
�
ØˆJr$   z6Argument "z" must be a complex or Array[complex]. Got r7  )r  r`   r]  rS   r   r‚  r¶   r’   r  Úunderlying_floatr  r   )rþ  rf  rH  r’   rg  rj  s       @@r%   Úov_np_anglerl  “  sô   øø€ å�S�2œ5‘[Ñ!Ô!€Hõ �!•U”\Ñ"Ô"ð <ð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð
 ˆÝ	�A•u”{Ñ	#Ô	#ð <Ø”ˆå�e�Uœ]Ñ+Ô+ð 	ØÔ.ˆIˆIÝ˜�uœ{Ñ+Ô+ð 	ØˆIˆIàˆFð	ð 	ð 	ð 	ð 	ð 	ð
 ˆåð ;Ø78ð;ð ;ñ <ô <ð 	<r$   zarray.nonzeroc                 ó&  ‡ ‡‡‡— |j         d         }|j        }|j        Š|j        } t	          |¦  «        ‰ ‰|d         ¦  «        }t          j        ‰|j        ¦  «        }t          j        ‰|j        ¦  «        }	|j	        }
|j
        }‰                      t          j        d¦  «        }‰                      t          j        d¦  «        }t          j        ‰|¦  «        }t          j        ‰||j        ¦  «        5 }t          j        ‰ ‰|
||	||¦  «        }t%          ‰ ‰||¦  «        }‰                      ‰|j        |¦  «        }‰                     |¦  «        5  ‰                     ‰                     ‰                     |¦  «        |¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰                     |¦  «        fŠˆˆ ˆˆfd„t1          |¦  «        D ¦   «         }ˆˆ ˆfd„|D ¦   «         }d„ |D ¦   «         }t          j        ‰|¦  «        }t          j        ‰||j        ¦  «        5 }t          j        ‰ ‰|
||	||¦  «        }t%          ‰ ‰||¦  «        }‰                      ‰|j        |¦  «        }‰                     |¦  «        5  |s|f}‰                     |¦  «        }t1          |¦  «        D ]<}t          j        ‰ ‰||         ‰dd|g¦  «        }t3          ‰ ‰‰||         |¦  «         Œ=‰                     ‰                     ||¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰                      ‰|j        |¦  «        }t7          ‰ ‰|j        |¦  «        S )Nr   r(   c                 óX   •— g | ]&}t          ‰‰‰‰¦  «                             ¦   «         ‘Œ'S r#   )r   Ú	_getvalue)rÊ  r-   r7   rp   Ú	out_shapeÚoutarytys     €€€€r%   rÌ  z!array_nonzero.<locals>.<listcomp>Ñ  sC   ø€ ð #ð #ð #Øõ ˜7 G¨X°yÑAÔA×KÒKÑMÔMð #ð #ð #r$   c                 óD   •— g | ]} t          ‰¦  «        ‰‰|¦  «        ‘ŒS r#   )r   )rÊ  rÁ   r7   rp   rq  s     €€€r%   rÌ  z!array_nonzero.<locals>.<listcomp>Ó  s0   ø€ ÐKÐKÐK¸sÐ#�z˜(Ñ#Ô# G¨W°cÑ:Ô:ÐKÐKÐKr$   c                 ó   — g | ]	}|j         ‘Œ
S r#   )r?   )rÊ  rÁ   s     r%   rÌ  z!array_nonzero.<locals>.<listcomp>Ô  s   € Ð-Ð-Ð-˜c�”Ð-Ð-Ð-r$   r#   ÚC)r9   rm   r’   r  r   r   Úunpack_tupler~   Ústridesr?   Úlayoutr2   r   r3   Úalloca_once_valueÚ	loop_nestr�   Úget_item_pointer2r   Úis_trueÚif_thenÚstorerÉ  Úloadr1   r   Ú
make_tupler   )rp   r7   rq   r9   Úarytyr�   Únoutsr?  r~   rv  r?   rw  rf   r  r  ÚindicesÚptrrâ   ÚnzÚoutsÚoutarysÚ	out_datasrË  Úcurr-   r;   rp  rq  s   ``                        @@r%   Úarray_nonzeror‰  ´  s®  øøøø€ ð ŒH�QŒK€EàŒO€EØŒ{€HØŒK€Eà
�*�UÑ
Ô
˜G W¨d°1¬gÑ
6Ô
6€CÝÔ  ¨#¬)Ñ4Ô4€EÝÔ" 7¨C¬KÑ8Ô8€GØŒ8€DØŒ\€Fð ×Ò¥¤
¨AÑ.Ô.€DØ
×
Ò
�uœz¨1Ñ
-Ô
-€CÝÔ% g¨tÑ4Ô4€EÝ	Ô	˜7 E¨4¬9Ñ	5Ô	5ð H¸ÝÔ'¨°¸$ÀÀwØ(.°ñ9ô 9ˆå˜ ¨%°Ñ5Ô5ˆØ�_Š_˜W e¤k°3Ñ7Ô7ˆØ�_Š_˜RÑ Ô ð 	Hð 	HØ�MŠM˜'Ÿ+š+ g§l¢l°5Ñ&9Ô&9¸3Ñ?Ô?ÀÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	HðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð —’˜eÑ$Ô$Ð&€Ið#ð #ð #ð #ð #ð #ð #Ý˜5‘\”\ð#ñ #ô #€DàKÐKÐKÐKÐKÐKÀdÐKÑKÔK€GØ-Ð- WÐ-Ñ-Ô-€Iõ Ô% g¨tÑ4Ô4€EÝ	Ô	˜7 E¨4¬9Ñ	5Ô	5ð 8¸ÝÔ'¨°¸$ÀÀwØ(.°ñ9ô 9ˆå˜ ¨%°Ñ5Ô5ˆØ�_Š_˜W e¤k°3Ñ7Ô7ˆØ�_Š_˜RÑ Ô ð 	8ð 	8àð "à˜'�Ø—,’,˜uÑ%Ô%ˆCÝ˜5‘\”\ð Hð H�ÝÔ/°¸À)ÈAÄ,Ø09¸2Ø03°c°Uñ<ô <�õ ˜7 G¨X°w¸q´zÀ3ÑGÔGÐGÐGØ�MŠM˜'Ÿ+š+ c¨3Ñ/Ô/°Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð$ ×
Ò
˜W c¤o°tÑ
<Ô
<€CÝ˜G W¨c¬o¸sÑCÔCÐCso   Ã9AF8Å>F!ÆF8Æ!F%	Æ%F8Æ(F%	Æ)F8Æ8F<Æ?F<ÉAMÊ!BL>Ì2MÌ>M	ÍMÍM	ÍMÍMÍMc                 ó   ‡ — ˆ fd„}|S )Nc                 ó¬   •— t          j        |¦  «                             ‰¦  «        }t          j        |¦  «                             ‰¦  «        }| r|n|S r+   )r`   rs  rÈ  )Ú	conditionrž  rá  Úx_Úy_r’   s        €r%   rH  z)_where_zero_size_array_impl.<locals>.implï  sH   ø€ ÝŒZ˜‰]Œ]×!Ò! %Ñ(Ô(ˆÝŒZ˜‰]Œ]×!Ò! %Ñ(Ô(ˆØÐ&ˆrˆr BÐ&r$   r#   )r’   rH  s   ` r%   Ú_where_zero_size_array_implr�  î  s#   ø€ ð'ð 'ð 'ð 'ð 'ð €Kr$   c                 ód   — t          j        | ¦  «        D ]\  }}|r||         n||         ||<   Œ|S r+   )r`   rÉ  )Úcondrž  rá  rr   rÂ   rd   s         r%   Ú_where_generic_inner_implr’  ö  s@   € å”. Ñ&Ô&ð +ð +‰ˆˆQØÐ*�1�S”6�6 A c¤FˆˆC‰ˆØ€Jr$   c                 ó¢   — | j         }|j         }|j         }|j         }t          | j        ¦  «        D ]}||         r||         n||         ||<   Œ|S r+   )r¿   r1   r½   )	r‘  rž  rá  rr   ÚcfÚxfÚyfÚrfr-   s	            r%   Ú_where_fast_inner_implr˜  ý  s\   € à	Œ€BØ	
Œ€BØ	
Œ€BØ	Œ€BÝ�4”9ÑÔð *ð *ˆØ˜AœÐ)��1”� B q¤Eˆˆ1‰ˆØ€Jr$   c                 ó*   ‡ ‡‡— ‰dhdhfv Šˆ ˆˆfd„}|S )Nrt  ÚFc                 ó  •— 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í  )	r`   rs  rî  r~   rï  r¼   r°  r˜  r’  )rŒ  rž  rá  Úcond1Úx1Úy1r~   Úcond_r�  rŽ  rr   r’   rw  Úuse_faster_impls              €€€r%   rH  z!_where_generic_impl.<locals>.impl  sè   ø€ Ýœ
 9Ñ-Ô-­r¬z¸!©}¬}½b¼jÈ¹m¼m�2ˆrˆÝÔ# E¤K°´¸2¼8ÑDÔDˆÝ”  uÑ-Ô-ˆÝŒ_˜R Ñ'Ô'ˆÝŒ_˜R Ñ'Ô'ˆà�SŠ=ˆ=Ý”(˜5   2 œ;¨eÐ4Ñ4Ô4Ô6ˆCˆCå”(˜5¨Ð.Ñ.Ô.ˆCàð 	AÝ)¨%°°R¸Ñ=Ô=Ð=å,¨U°B¸¸CÑ@Ô@Ð@r$   r#   )r’   rw  rH  r   s   `` @r%   Ú_where_generic_implr¡    sH   øøø€ Ø # ¨¨ Ð.€OðAð Að Að Að Að Að Að" €Kr$   c                 óL   — t          | ¦  «        sd}t          |¦  «        ‚d„ }|S )Nú+The argument "condition" must be array-likec                 óN   — t          j        | ¦  «                             ¦   «         S r+   )r`   rs  r  )rŒ  s    r%   Úwhere_cond_none_nonez)ov_np_where.<locals>.where_cond_none_none%  s   € ÝŒz˜)Ñ$Ô$×,Ò,Ñ.Ô.Ð.r$   )r
   r   )rŒ  r©   r¥  s      r%   Úov_np_wherer¦    s:   € å˜IÑ&Ô&ð "Ø;ˆÝ˜SÑ!Ô!Ð!ð/ð /ð /àÐr$   c                 ó0  ‡— t          | ¦  «        sd}t          |¦  «        ‚t          |¦  «        st          |¦  «        rt          d¦  «        ‚t          ||fd¦  «        D ]8\  }}t          |¦  «        s$d}t          |                     |¦  «        ¦  «        ‚Œ9t          | t          j        ¦  «        }t          |t          j        ¦  «        }t          |t          j        ¦  «        }|r©t          |¦  «        }	t          |¦  «        }
t          j
        |	|
¦  «        }d„ Št          ˆfd„| ||fD ¦   «         ¦  «        }|rt          |¦  «        S | j        }|r+|r)|j        |j        cxk    r| j        k    rn n|j        }nd}t          ||¦  «        S d„ }|S )	Nr£  z"Argument "x" or "y" cannot be Noner'  z0The argument "{}" must be array-like if providedc                 ó€   — t          | t          j        ¦  «        p$t          | t          j        ¦  «        o
| j        dk    S rÝ   )rS   r   r‚  r¶   r{   )Úargs    r%   Úcheck_0_dimz$ov_np_where_x_y.<locals>.check_0_dimL  s7   € Ý˜c¥5¤<Ñ0Ô0ð @Ý˜3¥¤Ñ,Ô,Ð>°´¸Q²ð@r$   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r#   r#   )rÊ  r,   rª  s     €r%   rÌ  z#ov_np_where_x_y.<locals>.<listcomp>O  s!   ø€ ÐHÐHÐH°˜k˜k¨!™nœnÐHÐHÐHr$   r\  c                 óš   — t          j        t          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        ¦  «        S r+   )r`   rð  rs  )rŒ  rž  rá  s      r%   rH  zov_np_where_x_y.<locals>.impl[  s0   € Ý”8�BœJ yÑ1Ô1µ2´:¸a±=´=Å"Ä*ÈQÁ-Ä-ÑPÔPÐPr$   )r
   r   r   ÚziprÓ  rS   r   r¶   r±  r`   rt  rO  r�  rw  r¡  )rŒ  rž  rá  r©   r©  rÔ  Úcond_arrrr  r¾  ru  rö  r’   Úspecial_0_caserw  rH  rª  s                  @r%   Úov_np_where_x_yr°  *  sÚ  ø€ å˜IÑ&Ô&ð "Ø;ˆÝ˜SÑ!Ô!Ð!õ �1�~„~ð C� Q™œð CåÐAÑBÔBÐBå˜!˜Q˜ Ñ,Ô,ð 3ð 3‰	ˆˆTÝ Ñ$Ô$ð 	3ØDˆCÝ  §¢¨DÑ!1Ô!1Ñ2Ô2Ð2ð	3õ ˜)¥U¤[Ñ1Ô1€HÝ�q�%œ+Ñ&Ô&€EÝ�q�%œ+Ñ&Ô&€Eàð Ý˜qÑ!Ô!ˆÝ˜qÑ!Ô!ˆÝÔ   tÑ,Ô,ˆð	@ð 	@ð 	@õ ÐHÐHÐHÐH°yÀ!ÀQÐ6GÐHÑHÔHÑIÔIˆØð 	6Ý.¨uÑ5Ô5Ð5àÔ!ˆØð 	�Uð 	ØŒx˜1œ8Ð7Ð7Ò7Ð7 yÔ'7Ò7Ð7Ð7Ð7Ð7Øœ��à�Ý" 5¨&Ñ1Ô1Ð1ð	Qð 	Qð 	Qàˆr$   c                 ó   — d„ }|S )Nc                 ó   — | j         S r+   )rÞ   r@  s    r%   Únp_real_implznp_real.<locals>.np_real_implb  ó	   € ØŒxˆr$   r#   )râ   r³  s     r%   Únp_realrµ  `  ó   € ðð ð ð Ðr$   c                 ó   — d„ }|S )Nc                 ó   — | j         S r+   )rý   r@  s    r%   Únp_imag_implznp_imag.<locals>.np_imag_implj  r´  r$   r#   )râ   r¹  s     r%   Únp_imagrº  h  r¶  r$   c                 óD   — t          | t          j        ¦  «        sd S d„ }|S )Nc                 óF   — t          j        | ¦  «        D ]}||k    r dS ŒdS rû   )r`   ra   )rc   r‚  rž  s      r%   Únp_contains_implz%np_contains.<locals>.np_contains_implx  s3   € Ý”˜3‘”ð 	ð 	ˆAØ�CŠxˆxØ�t�tð àˆur$   rä   )rc   r‚  r½  s      r%   Únp_containsr¾  s  s2   € å�c�5œ;Ñ'Ô'ð Øˆðð ð ð Ðr$   c                 ót   — t          | ¦  «        st          d¦  «        ‚t          |¦  «        rdd„}|S dd„}|S )Nz3The argument to np.count_nonzero must be array-likec                 óZ   — t          j        | ¦  «        }t          j        |dk    ¦  «        S rÝ   )r`   rA  r’  ©r,   rX   Úarr2s      r%   rH  znp_count_nonzero.<locals>.impl‡  s#   € Ý”8˜A‘;”;ˆDÝ”6˜$ !š)Ñ$Ô$Ð$r$   c                 ól   — |                       t          j        ¦  «        }t          j        ||¬¦  «        S )N)rX   )rÈ  r`   rÇ   r’  rÁ  s      r%   rH  znp_count_nonzero.<locals>.implŒ  s*   € Ø—8’8�BœHÑ%Ô%ˆDÝ”6˜$ TÐ*Ñ*Ô*Ð*r$   r+   )r
   r   r   )r,   rX   rH  s      r%   Únp_count_nonzerorÄ  �  sh   € å˜AÑÔð QÝÐOÑPÔPÐPå�4ÑÔð 	ð	%ð 	%ð 	%ð 	%ð ˆð	+ð 	+ð 	+ð 	+ð ˆr$   c                 ó   — | S r+   r#   r�  s    r%   r¤  r¤  ’  s   € ¸€ r$   c                 ó*   — t          j        | ¦  «        S r+   r[  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)r`   rA  rs  r½   ÚonesrÇ   )rc   r9  rÞ  ÚkeepÚhandlers       €r%   Únp_delete_implz!np_delete.<locals>.np_delete_impl¦  sW   ø€ Ý”(�2œ: c™?œ?Ñ+Ô+ˆCØ”ˆAå”7˜1¥B¤HÐ-Ñ-Ô-ˆDØ�'˜#‘,”,ˆCØˆD�‰IØ�t”9Ð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(   )r`   rA  rs  r½   Ú
IndexErrorÚconcatenate)rc   r9  rÞ  Úposs       r%   Únp_delete_scalar_implz(np_delete.<locals>.np_delete_scalar_impl´  s„   € Ý”(�2œ: c™?œ?Ñ+Ô+ˆCØ”ˆAØˆCà�q�b’�˜C 1šH˜HÝ Ð!EÑFÔFÐFð �a’�Ø�q‘�å”> 3 t¨ t¤9¨c°#¸±'°(°(¬mÐ"<Ñ=Ô=Ð=r$   )
rS   r   r¶   rÖ  r   Ú	SliceTypeÚnp_delete_handler_isslicer’   r  Únp_delete_handler_isarray)rc   r9  rÌ  rÑ  rË  s       @r%   Ú	np_deleterÕ  –  só   ø€ õ
 �c�EœK­¬Ð8Ñ9Ô9ð GÝÐEÑFÔFÐFå�#�œ¥U¤^µU´_ÐEÑFÔFð $%Ý�c�EœOÑ-Ô-ð 	0Ý/ˆGˆGå˜cœi­¬Ñ7Ô7ð DÝ!Ð"BÑCÔCÐCÝ/ˆGð	ð 	ð 	ð 	ð 	ð Ðõ ˜#�uœ}Ñ-Ô-ð 	@ÝÐ>Ñ?Ô?Ð?ð	>ð 	>ð 	>ð %Ð$r$   r(   c                 ó\   — t          | t          j        ¦  «        r| j        dk    rd S dd„}|S )Nr   r(   c                 óø  — |dk    r|                       ¦   «         S |dk     rt          d¦  «        ‚| j        d         }| j        d d…         t          ||z
  d¦  «        fz   }t	          j        || j        ¦  «        }|j        dk    r|S |                      d|f¦  «        }|                     d|j        d         f¦  «        }t	          j        || j        ¦  «        }t          |j        d         ¦  «        D ]„}t          |dz
  ¦  «        D ]}	|||	dz   f         |||	f         z
  ||	<   Œt          d|¦  «        D ]1}
t          ||
z
  dz
  ¦  «        D ]}	||	dz            ||	         z
  ||	<   ŒŒ2|d ||z
  …         ||<   Œ…|S )Nr   z"diff(): order must be non-negativer?  r(   )
r¼  r|   r~   r  r`   r¼   r’   r½   rB  r1   )r,   rq  r½   rp  rÁ   Úa2Úout2ÚworkÚmajorr-   Úniters              r%   Ú	diff_implznp_diff_impl.<locals>.diff_implÊ  sš  € Ø�Š6ˆ6Ø—6’6‘8”8ˆOØˆqŠ5ˆ5ÝÐAÑBÔBÐBØŒw�rŒ{ˆØ”G˜C˜R˜C”L¥C¨¨q©°!Ñ$4Ô$4Ð#6Ñ6ˆ	ÝŒh�y !¤'Ñ*Ô*ˆØŒ8�qŠ=ˆ=ØˆJð �YŠY˜˜D�zÑ"Ô"ˆØ�{Š{˜B ¤	¨"¤Ð.Ñ/Ô/ˆåŒx˜˜aœgÑ&Ô&ˆå˜2œ8 Aœ;Ñ'Ô'ð 		*ð 		*ˆEå˜4 !™8‘_”_ð :ð :�Ø˜U A¨¡E˜\Ô*¨R°°q°¬\Ñ9��Q‘�å˜q !™œð 4ð 4�Ý˜t e™|¨aÑ/Ñ0Ô0ð 4ð 4�AØ" 1 q¡5œk¨D°¬GÑ3�D˜‘G�Gð4ð ˜y  q¡˜yœ/ˆD�‰KˆKàˆ
r$   rQ  )rS   r   r¶   r{   )r,   rq  rÝ  s      r%   Únp_diff_implrÞ  Å  sA   € å�a�œÑ%Ô%ð ¨¬°1ª¨Øˆðð ð ð ð> Ðr$   c                 óÞ   — t          | ¦  «        rt          |¦  «        st          d¦  «        ‚t          j        t          j        f}t          | |¦  «        rt          ||¦  «        rd„ }nd„ }|S )Nz3Both arguments to "array_equals" must be array-likec                 ó   — | |k    S r+   r#   )Úa1rØ  s     r%   rH  znp_array_equal.<locals>.implõ  s   € Ø˜’8ˆOr$   c                 ó¦   — t          j        | ¦  «        }t          j        |¦  «        }|j        |j        k    rt          j        ||k    ¦  «        S dS rö   )r`   rs  r~   rO  )rá  rØ  r,   rn  s       r%   rH  znp_array_equal.<locals>.implø  sB   € Ý”
˜2‘”ˆAÝ”
˜2‘”ˆAØŒw˜!œ'Ò!Ð!Ý”v˜a 1šf‘~”~Ð%Ø�5r$   )r
   r   r   r�  r‚  rS   )rá  rØ  ÚacceptedrH  s       r%   Únp_array_equalrä  ì  s�   € õ ˜RÑ Ô ð QÕ%5°bÑ%9Ô%9ð QÝÐOÑPÔPÐPå”�uœ|Ð,€HÝ�"�hÑÔð 
¥J¨r°8Ñ$<Ô$<ð 
ð	ð 	ð 	ð 	ð	ð 	ð 	ð €Kr$   c                 óf   — t          | ¦  «        st          |¦  «        st          d¦  «        ‚d„ }|S )Nz.intersect1d: first two args must be array-likec                 óF  — t          j        | ¦  «        } t          j        |¦  «        }t          j        | ¦  «        } t          j        |¦  «        }t          j        | |f¦  «        }|                     ¦   «          |dd …         |d d…         k    }|d d…         |         }|S )Nr(   r?  )r`   rs  rÊ  rÏ  Úsort)Úar1Úar2Úauxró  Úint1ds        r%   Únp_intersects1d_implz0jit_np_intersect1d.<locals>.np_intersects1d_impl
  s†   € ÝŒj˜‰oŒoˆÝŒj˜‰oŒoˆåŒi˜‰nŒnˆÝŒi˜‰nŒnˆåŒn˜c 3˜ZÑ(Ô(ˆØ�Š‰
Œ
ˆ
Ø�1�2�2Œw˜#˜c˜r˜cœ(Ò"ˆØ�C�R�C”˜”ˆØˆr$   ©r
   r   )rè  ré  rì  s      r%   Újit_np_intersect1drî    sL   € õ
 ˜SÑ!Ô!ð LÕ%5°cÑ%:Ô%:ð LÝÐJÑKÔKÐKðð ð ð  Ðr$   c                 ó  — t          |t          j        ¦  «        r/|j        dk    r"t	          d                     | ¦  «        ¦  «        ‚d S t          |t          j        ¦  «        s"t	          d                     | ¦  «        ¦  «        ‚d S )Nr(   z${0}(): input should have dimension 1z+{0}(): input should be an array or sequence)rS   r   r¶   r{   r‘  rÓ  rÖ  )Ú	func_nameÚseqs     r%   Úvalidate_1d_array_likerò    sŒ   € Ý�#•u”{Ñ#Ô#ð ,ØŒ8�qŠ=ˆ=ÝÐBß#šV IÑ.Ô.ñ0ô 0ð 0ð ˆ=õ ˜�Uœ^Ñ,Ô,ð ,ÝÐEßš 	Ñ*Ô*ñ,ô ,ð 	,ð,ð ,r$   c                 ó�  ‡‡‡— t          d| ¦  «         t          | j        t          j        ¦  «        sd S t          |d¦  «         |d t          j        fvr=t          d|¦  «         t          j        Št          d„ ¦   «         Št          d„ ¦   «         Šn,t          j
        Št          d„ ¦   «         Št          d„ ¦   «         Šd	ˆˆˆfd„	}|S )
NÚbincountÚ	minlengthc                 ód   — t          | ¦  «        t          |¦  «        k    rt          d¦  «        ‚d S )Nz7bincount(): weights and list don't have the same length)rD   r|   ©r,   r�  rõ  s      r%   Úvalidate_inputsz$np_bincount.<locals>.validate_inputs2  s8   € å�1‰vŒv�˜W™œÒ%Ð%Ý ð "3ñ 4ô 4ð 4ð &Ð%r$   c                 ó2   — | |xx         ||         z  cc<   d S r+   r#   ©rÁ   rÂ   râ   r�  s       r%   Ú
count_itemznp_bincount.<locals>.count_item8  s    € à�ˆHˆHŒH˜ œÑ$ˆHˆH‰HˆHˆHr$   c                 ó   — d S r+   r#   r÷  s      r%   rø  z$np_bincount.<locals>.validate_inputs?  s   € àˆDr$   c                 ó&   — | |xx         dz  cc<   d S r[  r#   rú  s       r%   rû  znp_bincount.<locals>.count_itemC  s   € à�ˆHˆHŒH˜‰MˆHˆH‰HˆHˆHr$   r   c                 ó®  •—  ‰
| ||¦  «         |dk     rt          d¦  «        ‚t          | ¦  «        }|dk    r| d         nd}t          d|¦  «        D ]3}| |         dk     rt          d¦  «        ‚t          || |         ¦  «        }Œ4t          |dz   |¦  «        }t	          j        |‰	¦  «        }t          |¦  «        D ]} ‰||| |         |¦  «         Œ|S )Nr   z 'minlength' must not be negativer?  r(   z/bincount(): first argument must be non-negative)r|   rD   r1   r  r`   rç  )r,   r�  rõ  rq  rQ  r-   Ú
out_lengthrÁ   rû  rD  rø  s           €€€r%   Úbincount_implz"np_bincount.<locals>.bincount_implG  sú   ø€ Øˆ˜˜7 IÑ.Ô.Ð.Ø�qŠ=ˆ=ÝÐ?Ñ@Ô@Ð@å�‰FŒFˆØ˜Aš˜��!”� 2ˆÝ�q˜!‘”ð 	%ð 	%ˆAØ�Œt�aŠxˆxÝ ð "0ñ 1ô 1ð 1å˜˜q œtÑ$Ô$ˆEˆEå˜ ™ IÑ.Ô.ˆ
ÝŒh�z 9Ñ-Ô-ˆÝ�q‘”ð 	.ð 	.ˆAØˆJ�s˜A˜q œt WÑ-Ô-Ð-Ð-Øˆ
r$   rÝ   )rò  rS   r’   r   r  r   r4  r`   r×   r   r3   )r,   r�  rõ  r   rû  rD  rø  s       @@@r%   Únp_bincountr  #  s  øøø€ å˜: qÑ)Ô)Ð)å�a”g�uœ}Ñ-Ô-ð Øˆå�Y Ñ,Ô,Ð,à�t�UœZÐ(Ð(Ð(Ý˜z¨7Ñ3Ô3Ð3õ ”Jˆ	å	ð	4ð 	4ñ 
Ô	ð	4õ
 
ð	%ð 	%ñ 
Ô	ð	%ð 	%õ ”Jˆ	å	ð	ð 	ñ 
Ô	ð	õ 
ð	ð 	ñ 
Ô	ð	ðð ð ð ð ð ð ð ð& Ðr$   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó*  •— t          j        |¦  «        r7t          |dd¦  «        D ]#}t          j        | |dz
           ¦  «        s|c S Œ$dS ||k     r|}nd}||k     r|dz   n|}||k    r(||z   dz	  } ‰| |         |¦  «        r|dz   }n|}||k    °(|S )a×  Perform inner loop of searchsorted (i.e. a binary search).

        This is loosely based on the NumPy implementation in [1]_.

        Parameters
        ----------
        a: 1-D array_like
            The input array.
        v: array_like
            The current value to insert into `a`.
        v_last: array_like
            The previous value inserted into `a`.
        lo: int
            The initial/previous "low" value of the binary search.
        hi: int
            The initial/previous "high" value of the binary search.
        n: int
            The length of `a`.


        .. [1] https://github.com/numpy/numpy/blob/809e8d26b03f549fd0b812a17b8a166bcd966889/numpy/core/src/npysort/binsearch.cpp#L173
        r   r?  r(   )r`   r  r1   )	r,   re   Úv_lastÚloÚhirq  r-   r`  Úfuncs	           €r%   Úsearchsorted_innerz)_searchsorted.<locals>.searchsorted_inner^  sÙ   ø€ õ. Œ8�A‰;Œ;ð 	õ ˜1˜a ‘_”_ð ð �Ý”x  ! a¡%¤Ñ)Ô)ð Ø�H�H�Hðà�1à�AŠ:ˆ:ØˆBˆBàˆBØ š6˜6��a‘� qˆBà�2ŠgˆgØ˜‘7˜q‘.ˆCØˆt�A�c”F˜QÑ Ô ð à˜1‘W��ð �ð �2Šgˆgð ˆ	r$   r#   )r  r  s   ` r%   Ú_searchsortedr	  ]  s%   ø€ ð-ð -ð -ð -ð -ð\ Ðr$   c                 ó   — | |k    S r+   r#   r'  s     r%   r¤  r¤  �  s
   €  A¨¢F€ r$   Úleftc                 ó  ‡— t          |d|¦  «        }|dk    rt          Šn |dk    rt          Šnt          d|› �¦  «        ‚t	          |t
          j        ¦  «        rdˆfd„	}n't	          |t
          j        ¦  «        rdˆfd„	}ndˆfd„	}|S )	NrU   r  Úrightz Invalid value given for 'side': c           	      ó^  •— t          | ¦  «        }d}|}t          j        |j        t          j        ¦  «        }|j        d         }t          j        ||f¦  «        D ]P\  }}	 ‰
| |                     ¦   «         ||||¦  «        }|                     ¦   «         }|	                     |¦  «         ŒQ|S rÝ   )	rD   r`   r¼   r~   r3   r¿   ra   rb   Úitemset)r,   re   Úsiderq  r  r  rÁ   r  r®   ÚoutviewÚ	loop_impls             €r%   Úsearchsorted_implz'searchsorted.<locals>.searchsorted_impl¡  s¡   ø€ Ý�A‘”ˆAØˆBØˆBÝ”(˜1œ7¥B¤GÑ,Ô,ˆCØ”V˜A”YˆFÝ!#¤¨A¨s¨8Ñ!4Ô!4ð $ð $‘��gØ�Y˜q $§)¢)¡+¤+¨v°r¸2¸qÑAÔA�ØŸš™œ�Ø—’ Ñ#Ô#Ð#Ð#ØˆJr$   c           	      ó  •— t          | ¦  «        }d}|}t          j        t          |¦  «        t          j        ¦  «        }|d         }t	          t          |¦  «        ¦  «        D ]%} ‰	| ||         ||||¦  «        }|||<   ||         }Œ&|S rÝ   )rD   r`   r¼   r3   r1   )
r,   re   r  rq  r  r  rÁ   r  r-   r  s
            €r%   r  z'searchsorted.<locals>.searchsorted_impl¯  s‹   ø€ Ý�A‘”ˆAØˆBØˆBÝ”(�3˜q™6œ6¥2¤7Ñ+Ô+ˆCØ�q”TˆFÝ�3˜q™6œ6‘]”]ð ð �Ø�Y˜q ! A¤$¨°°B¸Ñ:Ô:�Ø��A‘Ø˜1œ��ØˆJr$   c                 óB   •— t          | ¦  «        } ‰| ||d||¦  «        S rÝ   )rD   )r,   re   r  rq  r  s       €r%   r  z'searchsorted.<locals>.searchsorted_impl½  s(   ø€ Ý�A‘”ˆAØ�9˜Q  1 a¨¨AÑ.Ô.Ð.r$   ©r  )r˜   Ú_searchsorted_leftÚ_searchsorted_rightr   rS   r   r¶   rÖ  )r,   re   r  Úside_valr  r  s        @r%   Úsearchsortedr  •  så   ø€ å�t˜_¨dÑ3Ô3€HØ�6ÒÐÝ&ˆ	ˆ	Ø	�WÒ	Ð	Ý'ˆ	ˆ	åÐKÀÐKÐKÑLÔLÐLå�!•U”[Ñ!Ô!ð  /ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	õ 
�A•u”~Ñ	&Ô	&ð /ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð Ðr$   c                 óü   ‡‡‡— t           d„ ¦   «         Št           d„ ¦   «         Št           d„ ¦   «         Št          | t          j        ¦  «        r
dˆˆˆfd„	}|S t          | t          j        ¦  «        r
dˆˆˆfd„	}|S d S )Nc                 óÌ   — t          | ¦  «        }d}d}|dk    rJ| d         }t          d|¦  «        D ]1}| |         }|o||k     }|o||k      }|s|st          d¦  «        ‚|}Œ2|S )NTr(   r   z3bins must be monotonically increasing or decreasing)rD   r1   r|   )Úbinsrq  Úis_increasingÚis_decreasingÚprevr-   rˆ  s          r%   Úare_bins_increasingz(np_digitize.<locals>.are_bins_increasingÆ  sœ   € å�‰IŒIˆØˆØˆØˆqŠ5ˆ5Ø˜”7ˆDÝ˜1˜a‘[”[ð ð �Ø˜1”g�Ø -Ð @°d¸S²j°.�Ø -Ð @°d¸S²j°.�Ø$ð 6¨]ð 6Ý$ð &5ñ 6ô 6ð 6à��ØÐr$   c                 ó”  — t          |¦  «        }d}|}|rtt          j        | ¦  «        r7t          |dd¦  «        D ]#}t          j        ||dz
           ¦  «        s|c S Œ$dS ||k    r"||z   dz	  }||         | k     r|dz   }n|}||k    °"n>t          j        | ¦  «        r|S ||k    r"||z   dz	  }||         | k    r|dz   }n|}||k    °"|S )Nr   r?  r(   ©rD   r`   r  r1   ©rž  r  r  rq  r  r  r-   r`  s           r%   Údigitize_scalarz$np_digitize.<locals>.digitize_scalarÚ  s  € õ �‰IŒIˆØˆØˆàð 	ÝŒx˜‰{Œ{ð õ ˜q ! R™œð !ð !�AÝœ8 D¨¨Q©¤KÑ0Ô0ð !Ø ˜˜˜ð!à�qØ�r’'�'Ø˜B‘w 1‘n�Ø˜”9˜q’=�=à˜q™�B�Bð �Bð �r’'�'øõ Œx˜‰{Œ{ð à�Ø�r’'�'Ø˜B‘w 1‘n�Ø˜”9 ’>�>à˜q™�B�Bð �Bð �r’'�'ð ˆ	r$   c                 óŒ  — t          |¦  «        }d}|}|rpt          j        | ¦  «        r3t          d|¦  «        D ] }t          j        ||         ¦  «        s|c S Œ!|S ||k    r"||z   dz	  }||         | k     r|}n|dz   }||k    °"n>t          j        | ¦  «        rdS ||k    r"||z   dz	  }||         | k    r|}n|dz   }||k    °"|S r¶  r#  r$  s           r%   Údigitize_scalar_decreasingz/np_digitize.<locals>.digitize_scalar_decreasing   s  € õ �‰IŒIˆØˆØˆàð 	!ÝŒx˜‰{Œ{ð å˜q !™œð !ð !�AÝœ8 D¨¤GÑ,Ô,ð !Ø ˜˜˜ð!à�Ø�r’'�'Ø˜B‘w 1‘n�Ø˜”9˜q’=�=à�B�Bð ˜q™�Bð �r’'�'øõ Œx˜‰{Œ{ð à�qØ�r’'�'Ø˜B‘w 1‘n�Ø˜”9 ’>�>à�B�Bð ˜q™�Bð �r’'�'ð ˆ	r$   Fc                 óJ  •—  ‰|¦  «        }t          j        | j        t           j        ¦  «        }t          j        | |f¦  «        D ][\  }}|r  ‰	|                     ¦   «         ||¦  «        }n ‰
|                     ¦   «         ||¦  «        }|                     |¦  «         Œ\|S r+   )r`   r¼   r~   r3   ra   rb   r  )rž  r  r  r  rÁ   r®   r  rË  r!  r%  r'  s           €€€r%   Údigitize_implz"np_digitize.<locals>.digitize_impl(  s¥   ø€ Ø/Ð/°Ñ5Ô5ˆMÝ”(˜1œ7¥B¤GÑ,Ô,ˆCÝ!#¤¨A¨s¨8Ñ!4Ô!4ð 'ð '‘��gØ ð QØ+˜O¨D¯IªI©K¬K¸¸uÑEÔE�E�Eà6Ð6°t·y²y±{´{ÀDÈ%ÑPÔP�EØ—’ Ñ&Ô&Ð&Ð&ØˆJr$   c                 ó  •—  ‰|¦  «        }t          j        t          | ¦  «        t           j        ¦  «        }t	          t          | ¦  «        ¦  «        D ]1}|r ‰| |         ||¦  «        ||<   Œ ‰| |         ||¦  «        ||<   Œ2|S r+   )r`   r¼   rD   r3   r1   )	rž  r  r  r  rÁ   r-   r!  r%  r'  s	         €€€r%   r)  z"np_digitize.<locals>.digitize_impl8  s’   ø€ Ø/Ð/°Ñ5Ô5ˆMÝ”(�3˜q™6œ6¥2¤7Ñ+Ô+ˆCÝ�3˜q™6œ6‘]”]ð Kð K�Ø ð KØ,˜_¨Q¨q¬T°4¸Ñ?Ô?�C˜‘F�Fà7Ð7¸¸!¼¸dÀEÑJÔJ�C˜‘F�FØˆJr$   r7  )r   rS   r   r¶   rÖ  )rž  r  r  r)  r!  r%  r'  s       @@@r%   Únp_digitizer+  Ä  sí   øøø€ åðð ñ Ôðõ& ð#ð #ñ Ôð#õJ ð"ð "ñ Ôð"õH �!•U”[Ñ!Ô!ð ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð Ðå	�A•u”~Ñ	&Ô	&ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ððð r$   r‘  c                 ó¨   ‡— t          |t          t          j        f¦  «        r+|d t          j        fv rt          d¦  «        Šdˆfd„	}n	dd„}ndd„}|S )Nr}  r‘  c                 ó´   •— ‰}‰ }t          j        | ¦  «        D ]&}|                     ¦   «         }||k    r|}||k     r|}Œ't          j        | |||f¦  «        S r+   )r`   ra   rb   Ú	histogram)r,   r  r1   Úbin_minÚbin_maxr®   re   r}  s          €r%   Úhistogram_implz$np_histogram.<locals>.histogram_implQ  si   ø€ Ø�Ø˜$�ÝœI a™LœLð $ð $�DØŸ	š	™œ�AØ ’{�{Ø"#˜Ø ’{�{Ø"#˜øÝ”| A t¨g°wÐ-?Ñ@Ô@Ð@r$   c                 ó  — |dk    rt          d¦  «        ‚|\  }}||k    st          d¦  «        ‚t          j        |t          j        ¦  «        }||k    r”|||z
  z  }t          j        | ¦  «        D ]w}|                     ¦   «         }t          j        ||z
  |z  ¦  «        }	d|	cxk    r|k     r!n n|t          |	¦  «        xx         dz  cc<   Œ^||k    r||dz
  xx         dz  cc<   Œxt          j	        |||dz   ¦  «        }
||
fS )Nr   z0histogram(): `bins` should be a positive integerz;histogram(): max must be larger than min in range parameterr(   )
r|   r`   rç  r3   ra   rb   r  r€  r�  Úlinspace)r,   r  r1   r/  r0  ÚhistÚ	bin_ratior®   re   rn  Ú
bins_arrays              r%   r1  z$np_histogram.<locals>.histogram_impl]  s6  € Ø˜1’9�9Ý$ð &8ñ 9ô 9ð 9à#(Ñ �˜Ø 'Ò)Ð)Ý$ð &>ñ ?ô ?ð ?õ ”x ¥b¤gÑ.Ô.�Ø˜WÒ$Ð$Ø $¨°'Ñ(9Ñ :�IÝ "¤	¨!¡¤ð 0ð 0˜Ø ŸIšI™KœK˜Ý œJ¨¨G©°yÑ'@ÑAÔA˜Ø ˜=˜=š=˜= Dš=˜=˜=˜=˜=Ø ¥ Q¡¤˜L˜LœL¨AÑ-˜L˜L™L˜LØ 'š\˜\Ø  ¨¡˜N˜NœN¨aÑ/˜N˜N™Nøåœ[¨°'¸4À!¹8ÑDÔD�
Ø˜ZÐ'Ð'r$   c                 óþ  — t          |¦  «        dz
  }t          |¦  «        D ]&}||         ||dz            k    st          d¦  «        ‚Œ'|d         }||         }t          j        |t          j        ¦  «        }|dk    r}t          j        | ¦  «        D ]h}|                     ¦   «         }	||	cxk    r|k    sn Œ&d}
|dz
  }|
|k     r%|
|z   dz   dz	  }|	||         k     r|dz
  }n|}
|
|k     °%||
xx         dz  cc<   Œi||fS )Nr(   z-histogram(): bins must increase monotonicallyr   )rD   Ú_ranger|   r`   rç  r3   ra   rb   )r,   r  r1   Únbinsr-   r/  r0  r4  r®   re   r  r  r`  s                r%   r1  z$np_histogram.<locals>.histogram_implw  sE  € Ý˜‘I”I ‘MˆEÝ˜E‘]”]ð 6ð 6�à˜A”w $ q¨1¡u¤+Ò-Ð-Ý$ð &5ñ 6ô 6ð 6ð .ð ˜1”gˆGØ˜5”kˆGÝ”8˜E¥2¤7Ñ+Ô+ˆDà�qŠyˆyÝœI a™LœLð "ð "�DØŸ	š	™œ�AØ" aÐ2Ð2Ò2Ð2¨7Ò2Ð2Ð2Ð2à à�BØ ™�BØ˜rš'˜'ð  " B™w¨™{¨qÑ0˜Ø˜t Cœyš=˜=Ø!$ q¡˜B˜Bà!$˜Bð ˜rš'˜'ð ˜�H�H”H ‘M�H�H‘H�Hà˜�:Ðr$   ©r‘  N)rS   r�  r   r  r4  r  )r,   r  r1   r1  r}  s       @r%   Únp_histogramr;  H  sœ   ø€ å�$��eœmÐ,Ñ-Ô-ð Lð �T�5œ:Ð&Ð&Ð&Ý˜‘,”,ˆCð	Að 	Að 	Að 	Að 	Að 	Að 	Að(ð (ð (ð (ð (ð4	ð 	ð 	ð 	ðB Ðr$   )Úibetar  ÚmachepÚepsÚnegepÚepsnegÚiexpÚminexpÚxminÚmaxexpÚxmaxÚirndÚngrdÚepsilonÚtinyÚhugeÚ	precisionÚ
resolutionÚMachAr)r>  r@  rA  r=  r  rD  rø   rB  r?  ÚnexpÚnmantrK  rL  rI  Úbitsr#  )rø   r  rP  r  c                  ó  ‡‡— t           dk    rd S d Št          j        d¬¦  «        5 Šd} t          j        d| t          d¬¦  «         t
          j        Šd d d ¦  «         n# 1 swxY w Y   t          ‰¦  «        ˆˆfd„¦   «         }d S )	N)r(   é   T)Úrecordz(`np.MachAr` is deprecated \(NumPy 1.22\)Úalwaysz.*numba.*arraymath)ÚmessageÚcategoryr?  c                  óê   •‡‡—  ‰¦   «         Št          ˆfd„t          D ¦   «         ¦  «        Š‰r>‰d         } t          j        | j        j        d         t          | j        | j        ¦  «         ˆfd„}|S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r#   rS  ©rÊ  rž  rˆ  s     €r%   rÌ  z7_gen_np_machar.<locals>.MachAr_impl.<locals>.<listcomp>Ä  s!   ø€ ÐIÐIÐI°�w q¨!™}œ}ÐIÐIÐIr$   r   c                  ó   •— t          ‰ Ž S r+   )rM  )Ú_mach_ar_datas   €r%   rH  z1_gen_np_machar.<locals>.MachAr_impl.<locals>.implÍ  s   ø€ Ý˜=Ð)Ð)r$   )	rI  Ú_mach_ar_supportedÚwarningsÚwarn_explicitrU  r9   r   ÚfilenameÚlineno)ÚwmsgrH  r[  rˆ  Ú	np_MachArÚws     @@€€r%   ÚMachAr_implz#_gen_np_machar.<locals>.MachAr_implÁ  s�   øøø€ àˆI‰KŒKˆÝÐIÐIÐIÐIÕ6HÐIÑIÔIÑJÔJˆàð 	0Ø�Q”4ˆDÝÔ" 4¤<Ô#4°QÔ#7Ý#:Ø#'¤=Ø#'¤;ñ0ô 0ð 0ð
	*ð 	*ð 	*ð 	*ð 	*àˆr$   )r   r]  Úcatch_warningsÚfilterwarningsÚDeprecationWarningr`   rM  r   )r©   rd  rb  rc  s     @@r%   Ú_gen_np_macharrh  ´  sî   øø€ å˜ÒÐØˆà€AÝ	Ô	 ¨Ð	-Ñ	-Ô	-ð °Ø9ˆÝÔ °#Ý);Ø'<ð	>ñ 	>ô 	>ð 	>õ ”Iˆ	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˆiÑÔðð ð ð ð ñ Ôðð ð s   §,AÁA#Á&A#c                 óä   ‡‡‡— t          | d| ¦  «        }t          |¦  «        }	  ||¦  «        Šn# t          $ r Y d S w xY wt          ˆfd„|D ¦   «         ¦  «        Št          ˆˆfd„¦   «         }|S )Nr’   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r#   rS  rY  s     €r%   rÌ  z'generate_xinfo_body.<locals>.<listcomp>Ý  s!   ø€ Ð.Ð.Ð. A•'˜!˜Q‘-”-Ð.Ð.Ð.r$   c                 ó   •—  ‰‰Ž S r+   r#   )r©  Ú	containerr?   s    €€r%   rH  z!generate_xinfo_body.<locals>.implß  s   ø€ àˆy˜$ÐÐr$   )r˜   r	   r|   rI  r   )	r©  Únp_funcrl  ÚattrÚnbtyÚnp_dtyperH  r?   rˆ  s	     `    @@r%   Úgenerate_xinfo_bodyrq  Õ  s«   øøø€ Ý�3˜ Ñ%Ô%€DÝ˜‰~Œ~€HðØˆG�HÑÔˆˆøÝð ð ð àˆtˆtðøøøõ Ð.Ð.Ð.Ð.¨Ð.Ñ.Ô.Ñ/Ô/€Dåð ð  ð  ð  ð  ñ Ôð à€Ks   ¥1 ±
?¾?c                 ó^   ‡— t          | t          j        t          t          ¦  «        Šˆfd„}|S )Nc                 ó   •—  ‰| ¦  «        S r+   r#   )r’   rÅ  s    €r%   rH  zol_np_finfo.<locals>.implé  s   ø€ Øˆr�%‰yŒyÐr$   )rq  r`   r#  Ú_finfo_supported)r’   rH  rÅ  s     @r%   Úol_np_finforu  å  s7   ø€ å	˜U¥B¤H­eÕ5EÑ	FÔ	F€Bðð ð ð ð à€Kr$   c                 ó^   ‡— t          | t          j        t          t          ¦  «        Šˆfd„}|S )Nc                 ó   •—  ‰| ¦  «        S r+   r#   )Úint_typerÅ  s    €r%   rH  zol_np_iinfo.<locals>.implò  s   ø€ Øˆr�(‰|Œ|Ðr$   )rq  r`   r  Ú_iinfo_supported)rx  rH  rÅ  s     @r%   Úol_np_iinforz  î  s7   ø€ å	˜X¥r¤xµÕ8HÑ	IÔ	I€Bðð ð ð ð à€Kr$   c                 ó  ‡— t           d„ ¦   «         }t          s|S t          j        t          j        z  }| |v o||v }|s|S t          | ¦  «        }t          |¦  «        }t          j        ||¦  «        Št           ˆfd„¦   «         }|S )Nc                 óp   — d}t          t          | ¦  «        ¦  «        D ]}|| |         ||         z  z   }Œ|S rÝ   ©r1   rD   )r,   rn  Úaccr-   s       r%   Ú
_innerprodz#_get_inner_prod.<locals>._innerprodû  s?   € àˆÝ•s˜1‘v”v‘”ð 	$ð 	$ˆAØ˜˜!œ˜q œt™Ñ#ˆCˆCØˆ
r$   c                 óz   •— t          j        |                      ‰¦  «        |                     ‰¦  «        ¦  «        S r+   )r`   r¯  rÈ  )r,   rn  rµ  s     €r%   Ú	_dot_wrapz"_get_inner_prod.<locals>._dot_wrap  s)   ø€ å”6˜!Ÿ(š( 2™,œ,¨¯ª°©¬Ñ5Ô5Ð5r$   )r   Ú
_HAVE_BLASr   Úreal_domainÚcomplex_domainr	   r`   rt  )	ÚdtaÚdtbr  ÚfltyÚfloatsÚa_dtÚb_dtr�  rµ  s	           @r%   Ú_get_inner_prodr‹  ÷  s±   ø€ õ ðð ñ Ôðõ ð ØÐåÔ�uÔ3Ñ3€DØ�Dˆ[Ð(˜S D˜[€FØð 
ØÐå˜‰}Œ}ˆÝ˜‰}Œ}ˆÝÔ˜d DÑ)Ô)ˆå	ð	6ð 	6ð 	6ð 	6ñ 
Ô	ð	6àÐr$   c                 óx   — t          | t          j        ¦  «        r| j        dk    st	          d|z  ¦  «        ‚d S d S )Nr(   z!%s() only supported on 1D arrays )rS   r   r¶   r{   r   )r,   rð  s     r%   Ú
_assert_1dr�    sG   € Ý�!•U”[Ñ!Ô!ð OØŒv˜Š{ˆ{ÝÐAÀIÑMÑNÔNÐNðOð OØˆ{r$   c                 ó   — d S r+   r#   )Úap1Úap2ÚmodeÚ	directions       r%   Ú_np_correlate_corer“    r4  r$   c                 óÄ   ‡‡— t          | j        ¦  «        }t          |j        ¦  «        }t          j        ||¦  «        Št	          | j        |j        ¦  «        Šˆˆfd„}|S )Nc                 óø  •— t          | ¦  «        }t          |¦  «        }||k     rt          d¦  «        ‚|}|}|dk    r||z
  dz   }d}d}	n<|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   }Œ0t	          ||z
  dz   ¦  «        D ]!} ‰| |||z   …         |¦  «        |
|<   ||z   }Œ"t	          |	¦  «        D ]/}||z
  dz
  } ‰| | d …         |d |…         ¦  «        |
|<   ||z   }Œ0|
S )Nz''len(ap1)' must greater than 'len(ap2)'r“  r(   r   r€   Úsamerz   z1Invalid 'mode', valid are 'full', 'same', 'valid'r?  zInvalid direction)rD   r|   r`   rç  r1   )r�  r�  r‘  r’  Ún1Ún2rƒ  rq  Ún_leftÚn_rightre  rÂ   Úincr-   ri  rµ  Ú	innerprods                  €€r%   rH  z%_np_correlate_core_impl.<locals>.impl&  s  ø€ õ �‰XŒXˆÝ�‰XŒXˆà�Š7ˆ7õ ÐFÑGÔGÐGàˆØˆØ�7Š?ˆ?Ø˜a‘Z !‘^ˆFØˆFØˆGˆGØ�VŠ^ˆ^Ø˜!‘eˆGØ˜‘UˆFØ˜a‘Z !‘^ˆFˆFØ�VŠ^ˆ^Ø˜!‘VˆFØ˜&‘j 1‘nˆGˆGåð4ñô ð õ
 Œh�v˜rÑ"Ô"ˆà˜Š>ˆ>ØˆCØˆCˆCØ˜"Š_ˆ_Ø˜1‘*ˆCØˆCˆCåÐ0Ñ1Ô1Ð1å�v‘”ð 	ð 	ˆAØ�A‘˜‘ˆAØ �y  R a R¤¨#¨q¨b¨c¨c¬(Ñ3Ô3ˆC�‰HØ˜‘)ˆCˆCå�r˜B‘w ‘{Ñ#Ô#ð 	ð 	ˆAØ �y  Q¨¨R© Z¤°#Ñ6Ô6ˆC�‰HØ˜‘)ˆCˆCå�w‘”ð 	ð 	ˆAØ�A‘˜‘	ˆAØ �y  a R S S¤¨3¨r°¨r¬7Ñ3Ô3ˆC�‰HØ˜‘)ˆCˆCàˆ
r$   )r	   r’   r`   rt  r‹  )	r�  r�  r‘  r’  r‰  rŠ  rH  rµ  rœ  s	          @@r%   Ú_np_correlate_core_implr�    sm   øø€ å�C”IÑÔ€DÝ�C”IÑÔ€DÝ	Ô	˜$ Ñ	%Ô	%€BÝ ¤	¨3¬9Ñ5Ô5€Ið>ð >ð >ð >ð >ð >ð@ €Kr$   r“  c                 ó0  ‡‡— 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+   )r`   rß   r�  s    r%   Úop_conjz_np_correlate.<locals>.op_conjn  s   € åŒw�q‰zŒzÐr$   c                 ó   — | S r+   r#   r�  s    r%   Úop_nopz_np_correlate.<locals>.op_nopr  s   € àˆr$   r“  c                 ó0  •— 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(   ©rD   r|   r“  )r,   re   r‘  ÚlaÚlvÚa_opÚb_ops        €€r%   rH  z_np_correlate.<locals>.impl…  sš   ø€ Ý�‰VŒVˆÝ�‰VŒVˆà�Š7ˆ7ÝÐ2Ñ3Ô3Ð3Ø�Š7ˆ7ÝÐ2Ñ3Ô3Ð3à�Š7ˆ7Ý% d d¨1¡g¤g¨t¨t°A©w¬w¸¸bÑAÔAÐAå% d d¨1¡g¤g¨t¨t°A©w¬w¸¸aÑ@Ô@Ð@r$   ©r“  )r�  r   r’   r   r„  )r,   re   r‘  r   r¢  rH  r¨  r©  s         @@r%   Ú_np_correlater«  i  së   øø€ åˆq�.Ñ!Ô!Ð!Ýˆq�.Ñ!Ô!Ð!åðð ñ Ôðõ ðð ñ Ôðð 	„w•%Ô&Ð&Ð&ØŒ7•eÔ*Ð*Ð*ØˆDØˆDˆDàˆDØˆDˆDàŒ7•eÔ*Ð*Ð*ØˆDØˆDˆDàˆDØˆDðAð Að Að Að Að Að Að €Kr$   r€   c                 óN   — t          | d¦  «         t          |d¦  «         dd„}|S )Nznp.convolver€   c                 ó
  — 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,   re   r‘  r¦  r§  s        r%   rH  znp_convolve.<locals>.impl›  s�   € Ý�‰VŒVˆÝ�‰VŒVˆà�Š7ˆ7ÝÐ2Ñ3Ô3Ð3Ø�Š7ˆ7ÝÐ2Ñ3Ô3Ð3à�Š7ˆ7Ý% a¨¨4¨4¨R¨4¬°$¸Ñ:Ô:Ð:å% a¨¨4¨4¨R¨4¬°$¸Ñ:Ô:Ð:r$   ©r€   )r�  )r,   re   r‘  rH  s       r%   Únp_convolver¯  –  s=   € åˆq�-Ñ Ô Ð Ýˆq�-Ñ Ô Ð ð;ð ;ð ;ð ;ð €Kr$   c                 ó>  ‡‡‡— t          | ¦  «        sd S d }t          | t          j        ¦  «        r+t	          |¦  «        s| j        |j        k    rd	d„}�nGd	d„}�nAt          | t          j        t          j        f¦  «        rt	          |¦  «        rd	d„}�nd	d„}�n t          | t          j        t          j	        f¦  «        r)t	          |¦  «        r| n|}t          |¦  «        Šd	ˆfd„	}n±t          | t          j        j        ¦  «        rYt          | j        t          j        t          j	        f¦  «        st          d¦  «        ‚t	          |¦  «        r| j        n|Šd	ˆfd„	}n9t          | t          j        ¦  «        rt          j        | j        ¦  «        Šd	ˆfd„	}|S )
Nc                 ó   — | S r+   r#   ©r,   r’   s     r%   rH  znp_asarray.<locals>.impl·  s   € Ø�r$   c                 ó,   — |                       |¦  «        S r+   )rÈ  r²  s     r%   rH  znp_asarray.<locals>.implº  s   € Ø—x’x ‘”Ð&r$   c                 ó*   — t          j        | ¦  «        S r+   r0  r²  s     r%   rH  znp_asarray.<locals>.implÁ  s   € Ý”x ‘{”{Ð"r$   c                 ó,   — t          j        | |¦  «        S r+   r0  r²  s     r%   rH  znp_asarray.<locals>.implÄ  s   € Ý”x  5Ñ)Ô)Ð)r$   c                 ó.   •— t          j        | ‰¦  «        S r+   r0  )r,   r’   rÎ  s     €r%   rH  znp_asarray.<locals>.implÊ  s   ø€ Ý”8˜A˜r‘?”?Ð"r$   z?asarray support for List is limited to Boolean and Number typesc                 ó†   •— t          | ¦  «        }t          j        |‰¬¦  «        }t          | ¦  «        D ]
\  }}|||<   Œ|S rì  )rD   r`   r¼   r¾   )r,   r’   r:  re  r-   re   Útarget_dtypes         €r%   rH  znp_asarray.<locals>.implÔ  sK   ø€ Ý�A‘”ˆAÝ”(˜1 LÐ1Ñ1Ô1ˆCÝ! !™œð ð ‘��1Ø��A‘�ØˆJr$   c                 ó,   •— ‰                      ¦   «         S r+   )r¼  )r,   r’   rc   s     €r%   rH  znp_asarray.<locals>.implÝ  s   ø€ Ø—8’8‘:”:Ðr$   r+   )r
   rS   r   r¶   r   r’   rÖ  rV   r‚  r�  r	   Ú
containersÚListTyper   ÚStringLiteralr`   rs  rU   )r,   r’   rH  Údt_convrc   r¸  rÎ  s       @@@r%   Ú
np_asarrayr¾  ¬  s  øøø€ õ
 ˜AÑÔð Øˆtà€DÝ�!•U”[Ñ!Ô!ð )Ý�uÑÔð 	' ¤¨E¬KÒ!7Ð!7ðð ð ð ñ ð'ð 'ð 'ð 'ñ 'å	�A�œ­¬Ð4Ñ	5Ô	5ð "õ �uÑÔð 	*ð#ð #ð #ð #ñ #ð*ð *ð *ð *ñ *å	�A�œ¥e¤mÐ4Ñ	5Ô	5ð Ý" 5Ñ)Ô)Ð4�!�!¨uˆÝ�gÑÔˆð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#å	�A•uÔ'Ô0Ñ	1Ô	1ð Ý˜!œ'¥E¤Lµ%´-Ð#@ÑAÔAð 	/Ýð.ñ/ô /ð /õ #.¨eÑ"4Ô"4Ð?�q”w�w¸%ˆð	ð 	ð 	ð 	ð 	ð 	ð 	õ 
�A•uÔ*Ñ	+Ô	+ð ÝŒj˜œÑ)Ô)ˆð	ð 	ð 	ð 	ð 	ð 	ð €Kr$   c                 óØ   ‡— t          |t          j        ¦  «        rt          |¦  «        }t	          j        |t          j        ¦  «        st          j        Šn|Št          j        fˆfd„	}|S )Nc                 ó.   •— t          j        | ‰¦  «        S r+   r[  )r,   r’   rW  s     €r%   rH  znp_asfarray.<locals>.implí  s   ø€ ÝŒz˜!˜RÑ Ô Ð r$   )rS   r   ÚTyper	   r`   r³  Úinexactr×   )r,   r’   rH  rW  s      @r%   Únp_asfarrayrÃ  ã  sp   ø€ õ �%�œÑ$Ô$ð  Ý˜‘”ˆÝŒ=˜¥¤
Ñ+Ô+ð ÝŒ]ˆˆàˆå”jð !ð !ð !ð !ð !ð !à€Kr$   c                 ó   — d„ }|S )Nc                 óÆ  ‡‡— t          j        | ¦  «                             ¦   «         Št          j        |¦  «        Š‰j        dk    rt	          d¦  «        ‚t          j        ‰‰j        d …         ¦  «        r!‰j        ‰j        k    rd}t	          |¦  «        ‚t          ‰j        ‰j        ¦  «        }ˆˆfd„t          |¦  «        D ¦   «         }t          j        |¦  «        S )Nr   z"Cannot extract from an empty arrayz+condition shape inconsistent with arr shapec                 ó:   •— g | ]}‰|         ¯
‰j         |         ‘ŒS r#   r¥  )rÊ  rÂ   r,   r‘  s     €€r%   rÌ  z7np_extract.<locals>.np_extract_impl.<locals>.<listcomp>  s(   ø€ ÐBÐBÐB˜s¸¸S¼	ÐBˆqŒv�cŒ{ÐBÐBÐBr$   )	r`   rs  rv  r½   r|   r†  rø   r1   r1  )rŒ  rc   r©   Úmax_lenrÁ   r,   r‘  s        @@r%   Únp_extract_implz#np_extract.<locals>.np_extract_implõ  sÈ   øø€ ÝŒz˜)Ñ$Ô$×,Ò,Ñ.Ô.ˆÝŒJ�s‰OŒOˆàŒ6�QŠ;ˆ;ÝÐAÑBÔBÐBõ Œ6�$�q”v�w�w”-Ñ Ô ð 	" T¤Y°´Ò%7Ð%7Ø?ˆCÝ˜S‘/”/Ð!õ �a”f˜dœiÑ(Ô(ˆØBÐBÐBÐBÐB¥e¨G¡n¤nÐBÑBÔBˆåŒx˜‰}Œ}Ðr$   r#   )rŒ  rc   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        ¦  «        r4t          | d         j	        t          j        ¦  «        st	          d¦  «        ‚t          | d         t          j        ¦  «        rUt          | d         t          j        ¦  «        r&t          | d         d         t          j        ¦  «        st	          d	¦  «        ‚t          | d         t          j        ¦  «        r+| d         j
        |d         j
        k    rt	          d
¦  «        ‚t          | d         t          j        ¦  «        r | d         j
        dk     rt	          d¦  «        ‚|S )Nr   c                 óT  — t          | ¦  «        t          |¦  «        k    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?  )rD   r|   r`   rÉ  r~   r’   r1   rð  )ÚcondlistÚ
choicelistÚdefaultrÁ   r-   r‘  Úchoices          r%   Únp_select_arr_implz%np_select.<locals>.np_select_arr_impl  s¦   € Ýˆx‰=Œ=�C 
™OœOÒ+Ð+Ýð -ñ .ô .ð .à�œ 
¨1¤Ô 3°ZÀ´]Ô5HÑIÔIÑIˆå•s˜8‘}”} qÑ(¨"¨bÑ1Ô1ð 	.ð 	.ˆAØ˜A”;ˆDØ ”]ˆFÝ”(˜4 ¨Ñ-Ô-ˆCˆ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  )rS   r   ÚListrE   r   r�  r‚  r�  r¶   r’   r{   )rÌ  rÍ  rÎ  rÐ  s       r%   Ú	np_selectrÒ    s  € ð
ð 
ð 
ð 
õ �h¥¤­U¬^Ð <Ñ=Ô=ð CÝÐAÑBÔBÐBÝ�j¥5¤:­u¬~Ð">Ñ?Ô?ð EÝÐCÑDÔDÐDÝ�g¥¥U¤\µ5´=ÐAÑBÔBð MÝÐKÑLÔLÐLõ �h˜q”k¥5¤;Ñ/Ô/ð AÝÐ?Ñ@Ô@Ð@Ý�j ”m¥U¤[Ñ1Ô1ð CÝÐAÑBÔBÐBõ �(˜1”+�uœ{Ñ+Ô+ð JÝ˜( 1œ+Ô+­U¬]Ñ;Ô;ð 	JÝ Ð!HÑIÔIÐIÝ�(˜1”+�uœ~Ñ.Ô.ð OÝ˜8 Aœ;­¬Ñ7Ô7ð 	OÝ˜x¨œ{¨1œ~­u¬}Ñ=Ô=ð	Oå Ð!MÑNÔNÐNå�8˜A”;¥¤Ñ,Ô,ð :Ø�QŒKÔ 
¨1¤Ô 2Ò2Ð2Ýð 9ñ :ô :ð 	:å�(˜1”+�uœ{Ñ+Ô+ð P°¸´Ô0@À1Ò0DÐ0DÝÐNÑOÔOÐOàÐr$   c                 óð   — t          | ¦  «        rt          |¦  «        st          d¦  «        ‚d| j        j        v sd|j        j        v r)| j        j        |j        j        k    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+   )r`   rA  rs  rÊ  rÏ  )rè  ré  r,   rn  s       r%   Ú
union_implznp_union1d.<locals>.union_implG  sN   € ÝŒH•R”Z ‘_”_Ñ%Ô%ˆÝŒH•R”Z ‘_”_Ñ%Ô%ˆÝŒy�œ¨¨A¨Ñ/Ô/Ñ0Ô0Ð0r$   )r
   r   r’   rÔ  )rè  ré  rÖ  s      r%   Ú
np_union1dr×  ?  s‰   € å˜CÑ Ô ð LÕ(8¸Ñ(=Ô(=ð LÝÐJÑKÔKÐKØ	�S”Y”^Ð	#Ð	# x°3´9´>Ð'AÐ'AØ
„y„~˜œœÒ'Ð'ÝÐKÑLÔLÐLð1ð 1ð 1ð
 Ðr$   c                 ó"  ‡— d}t          | t          j        t          j        t          j        f¦  «        st          |¦  «        ‚t          |¦  «        r| j        Šn.	 t          |¦  «        Šn# t          $ r t          d¦  «        ‚w xY wdˆfd„	}|S )Nz7The argument to np.asarray_chkfinite must be array-likez!dtype must be a valid Numpy dtypec                 ó¨   •— t          j        | ‰¬¦  «        } t          j        | ¦  «        D ]%}t          j        |¦  «        st	          d¦  «        ‚Œ&| S )Nrí  z#array must not contain infs or NaNs)r`   rs  ra   r|  r|   )r,   r’   r-   rµ  s      €r%   rH  z"np_asarray_chkfinite.<locals>.impl^  s[   ø€ ÝŒJ�q Ð#Ñ#Ô#ˆÝ”˜1‘”ð 	Hð 	HˆAÝ”;˜q‘>”>ð HÝ Ð!FÑGÔGÐGðHàˆr$   r+   )
rS   r   r¶   rÖ  rV   r   r   r’   r	   r   )r,   r’   r©   rH  rµ  s       @r%   Únp_asarray_chkfiniterÚ  O  s¸   ø€ ð D€CÝ�a�%œ+¥u¤~µu´{ÐCÑDÔDð Ý˜#ÑÔÐå�5ÑÔð CØŒWˆˆð	CÝ˜%‘”ˆBˆBøÝ'ð 	Cð 	Cð 	CÝÐAÑBÔBÐBð	Cøøøðð ð ð ð ð ð €Ks   ÁA, Á,Bc                 óª   — t          j        d| z
  | d¦  «        }t          j        t          j        |d¦  «        d|| dz
  z  z   d|| dz
  z  z
  ¦  «        S )NrX  rz   r   r(   )r`   rÃ  rð  Ú
less_equal©rß  rq  s     r%   Únp_bartlett_implrÞ  p  sQ   € å
Œ	�"�q‘&˜!˜QÑÔ€AÝŒ8•B”M ! QÑ'Ô'¨¨Q°!°a±%©[©¸!¸aÀ1ÀqÁ5¹k¹/ÑJÔ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 )NrX  rz   gáz®GáÚ?rê   r(   g{®Gáz´?ra  ©r`   rÃ  Úcosr]  rÝ  s     r%   Únp_blackman_implrâ  v  sn   € å
Œ	�"�q‘&˜!˜QÑÔ€AØ�3�œ¥¤¨¡	¨Q°©UÑ 3Ñ4Ô4Ñ4Ñ4Ø•2”6˜#¥¤™+¨™/¨Q°©UÑ3Ñ4Ô4Ñ4ñ5ð 6r$   c                 óŽ   — t          j        d| z
  | d¦  «        }ddt          j        t           j        |z  | dz
  z  ¦  «        z  z   S )Nr(   rz   gHáz®Gá?gq=
×£pÝ?rà  rÝ  s     r%   Únp_hamming_implrä  }  sB   € å
Œ	�!�a‘%˜˜AÑÔ€AØ�$�œ¥¤¨¡	¨Q°©UÑ 3Ñ4Ô4Ñ4Ñ4Ð4r$   c                 óŽ   — t          j        d| z
  | d¦  «        }ddt          j        t           j        |z  | dz
  z  ¦  «        z  z   S )Nr(   rz   rê   rà  rÝ  s     r%   Únp_hanning_implræ  ƒ  sB   € å
Œ	�!�a‘%˜˜AÑÔ€AØ�•r”v�bœe a™i¨1¨q©5Ñ1Ñ2Ô2Ñ2Ñ2Ð2r$   c                 ó   ‡ — ˆ fd„}|S )Nc                 ód   •— 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í  )r`   r1  Úfloat_rÉ  )rß  r  s    €r%   Úwindow_implz>window_generator.<locals>.window_overload.<locals>.window_implŽ  sP   ø€ à�1ŠuˆuÝ”x ­"¬)Ð4Ñ4Ô4Ð4Ø�AŠvˆvÝ”w˜q­¬	Ð2Ñ2Ô2Ð2Ø�4˜‘7”7ˆNr$   )rS   r   r  r   )rß  rì  r  s     €r%   Úwindow_overloadz)window_generator.<locals>.window_overloadŠ  sG   ø€ Ý˜!�Uœ]Ñ+Ô+ð 	6ÝÐ4Ñ5Ô5Ð5ð	ð 	ð 	ð 	ð 	ð Ðr$   r#   )r  rí  s   ` r%   Úwindow_generatorrî  ‰  s$   ø€ ðð ð ð ð ð Ðr$   )gïÐ4!·\T¼g‰¥}—b3ƒ<g´»rë„±¼gº^ö“ØæÞ<gëû—Â"P
½g'&&KF›5=gðîbLa½g$Ó›á/þ‰=g¼j”z•ü²½g<tÌ¾˜Ú=gV•®þÔ¾g4ËT¤Ù&>g«0ŒöêK¾g5dM�v;p>g�"�cì‘¾g¬ôŒ—$¿²>g'd¥Ëo†Ò¾gY(š¾X?ñ>gZÄY&+¿g«|tµ(?gRëýâB¿gŠuÜZ?gI¨ ^¶q¿gÝãÝóa™…?gð¶!ñžN˜¿g-£¨ÎŠ>©?gê-4pK¸¿gÀˆ¬w¬÷Å?g�ÍWÀëÓ¿g*¢5�N¨å?)g‹ÊT·­`¼g0‘fÚFV¼g!„Ù¾‰<gÍA`Ýóƒ<gäÒ«`´¼g8ÞÙç®¸¼gûê£}îß<g×æ”�‘*ñ<gšbe~þƒ½g2»hÏ™]'½gEÅ_ÿV=gsÀƒkŒ[=gìŒ&úGCi=gf�C�½gò{~5×­½g%t9QÁ½gO è«þ$ª=guoôÀÌù >g‡["©d,->gmÕÖ€’VX>gnaÍÙ€‹>g†ÅÁ+AÈ>gRž™x£?gI�å¢Œ™k?gË	¨¬b¾é?c                 ó�   — |d         }d}t          dt          |¦  «        ¦  «        D ]}|}|}| |z  |z
  ||         z   }Œd||z
  z  S )Nr   r�  r(   rê   r}  )rž  ÚvalsÚb0Úb1r-   Úb2s         r%   Ú_chbevlrô  Þ  s_   € à	ˆaŒ€BØ	€Bå�1•c˜$‘i”iÑ Ô ð #ð #ˆØˆØˆØ�‰V�b‰[˜4 œ7Ñ"ˆˆà�"�r‘'‰?Ðr$   c                 ó  — | dk     r|  } | dk    r2d| 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ê   ra  g      @@)r`   Úexprô  Ú_i0AÚ_i0Brü  r'  s     r%   Ú_i0rù  ë  sw   € àˆ1‚u€uØˆBˆØˆC‚x€xØ�1‰W˜‰OˆÝŒv�a‰yŒy�7 1¥dÑ+Ô+Ñ+Ð+åŒ6�!‰9Œ9•w˜t a™x¨#™~­tÑ4Ô4Ñ4µr´w¸q±z´zÑAÐAr$   c           	      ó>  — t          j        | t           j        ¬¦  «        }t          t          j        |¦  «        ¦  «        }t	          t          |¦  «        ¦  «        D ]>}t          |t          j        d| |         |z
  |z  dz  z
  ¦  «        z  ¦  «        |z  ||<   Œ?|S )Nrí  r(   ra  )r`   rº  rë  rù  r1   rD   rü  )rq  ÚalphaÚbetará  Útr-   s         r%   Ú_i0nrþ  ö  s�   € å
Œ�a�rœyÐ)Ñ)Ô)€AÝ�BŒI�d‰OŒOÑÔ€AÝ•3�q‘6”6‰]Œ]ð Jð JˆÝ�4�"œ' !¨¨!¬¨u©¸Ñ'=ÀÑ&CÑ"CÑDÔDÑDÑEÔEÈÑIˆˆ!‰ˆà€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   ra  )r`   r1  rë  rÉ  rÃ  rþ  )rß  rü  rq  rû  s       r%   Únp_kaiser_implz!np_kaiser.<locals>.np_kaiser_impl  sp   € ØˆqŠ5ˆ5Ý”8˜B¥b¤iÐ0Ñ0Ô0Ð0Ø�Š6ˆ6Ý”7˜1¥B¤IÐ.Ñ.Ô.Ð.åŒI�a˜‰OŒOˆØ�Q‘˜#‘ˆå�A�u˜dÑ#Ô#Ð#r$   )rS   r   r  r   r  )rß  rü  r  s      r%   Ú	np_kaiserr     sf   € å�a�œÑ'Ô'ð 2ÝÐ0Ñ1Ô1Ð1å�d�Uœ]­E¬KÐ8Ñ9Ô9ð >ÝÐ<Ñ=Ô=Ð=ð	$ð 	$ð 	$ð Ðr$   c                 óh  — d„ } || ¦  «        \  }}} ||¦  «        \  }}}	t          j        ||	¦  «        t          j        ||¦  «        z
  }
t          j        ||¦  «        t          j        ||	¦  «        z
  }t          j        ||¦  «        t          j        ||¦  «        z
  }|
|d<   ||d<   ||d<   d S )Nc                 óº   — | d         }| d         }| j         d         dk    r	| d         }n-t          j        | j                             d¦  «        |¦  «        }|||fS )N©.r   ©.r(   r?  ry   ©.rz   r   )r~   r`   r”  r’   r�   )rž  Úx0r�  Úx2s       r%   Ú_cross_preprocessingz._cross_operation.<locals>._cross_preprocessing  sY   € ØˆvŒYˆØˆvŒYˆØŒ7�2Œ;˜!ÒÐØ�6”ˆBˆBå”˜QœWŸ\š\¨!™_œ_¨bÑ1Ô1ˆBØ�2�rˆzÐr$   r  r  r  )r`   r”  )r,   rn  rÁ   r
  Úa0rá  rØ  rñ  rò  ró  Úcp0Úcp1Úcp2s                r%   Ú_cross_operationr    sÄ   € ðð ð ð &Ð% aÑ(Ô(�J€BˆˆBØ%Ð% aÑ(Ô(�J€BˆˆBå
Œ+�b˜"Ñ
Ô
¥¤¨B°Ñ 3Ô 3Ñ
3€CÝ
Œ+�b˜"Ñ
Ô
¥¤¨B°Ñ 3Ô 3Ñ
3€CÝ
Œ+�b˜"Ñ
Ô
¥¤¨B°Ñ 3Ô 3Ñ
3€Cà€Cˆ�KØ€Cˆ�KØ€Cˆ�K€K€Kr$   c                 ó   — d S r+   r#   rÑ  s     r%   Ú_crossr  .  r4  r$   c                 ó¼   ‡— t          j        t          | j        ¦  «        t          |j        ¦  «        ¦  «        Š| j        dk    r|j        dk    rˆfd„}nˆfd„}|S )Nr(   c                 óT   •— t          j        d‰¦  «        }t          | ||¦  «         |S )N©ry   )r`   r¼   r  )r,   rn  Úcpr’   s      €r%   rH  z_cross_impl.<locals>.impl6  s+   ø€ Ý”˜$ Ñ&Ô&ˆBÝ˜Q  2Ñ&Ô&Ð&ØˆIr$   c                 ó¦   •— t          j        | d         |d         ¦  «        j        }t          j        |dz   ‰¦  «        }t	          | ||¦  «         |S )Nr  r  )r`   rÉ  r~   r¼   r  )r,   rn  r~   r  r’   s       €r%   rH  z_cross_impl.<locals>.impl;  sK   ø€ Ý”F˜1˜Vœ9 a¨¤iÑ0Ô0Ô6ˆEÝ”˜% $™,¨Ñ.Ô.ˆBÝ˜Q  2Ñ&Ô&Ð&ØˆIr$   )r`   rt  r	   r’   r{   )r,   rn  rH  r’   s      @r%   Ú_cross_implr  2  s|   ø€ åÔ�X a¤gÑ.Ô.µ¸¼Ñ0AÔ0AÑBÔB€EØ„v�‚{€{�q”v ’{�{ð	ð 	ð 	ð 	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð
 €Kr$   c                 óf   — 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?  )rz   ry   zDIncompatible dimensions for cross product
(dimension must be 2 or 3)ry   z†Dimensions for both inputs is 2.
Please replace your numpy.cross(a, b) call with a call to `cross2d(a, b)` from `numba.np.extensions`.)r`   rs  r~   r|   r  ©r,   rn  rð  rñ  s       r%   rH  znp_cross.<locals>.implH  s�   € ÝŒZ˜‰]Œ]ˆÝŒZ˜‰]Œ]ˆØŒ8�BŒ<˜vÐ%Ð%¨¬°"¬¸VÐ)CÐ)CÝð-ñô ð ð
 Œ8�BŒ<˜1ÒÐ ¤¨¤°Ò 1Ð 1Ý˜"˜b‘>”>Ð!åðHñô ð r$   rí  ©r,   rn  rH  s      r%   Únp_crossr  C  sG   € å˜AÑÔð 8Õ&6°qÑ&9Ô&9ð 8ÝÐ6Ñ7Ô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   € ØˆvŒYˆØˆvŒYˆØ�2ˆvˆr$   )r`   r”  rs  )r,   rn  r
  r  rá  rñ  rò  r  s           r%   Ú_cross2d_operationr   \  sm   € ðð ð ð
 "Ð! !Ñ$Ô$�F€BˆØ!Ð! !Ñ$Ô$�F€Bˆå	Œ�R˜Ñ	Ô	�rœ{¨2¨rÑ2Ô2Ñ	2€Bõ Œ:�b‰>Œ>Ðr$   c                 ó   — d S r+   r#   rÑ  s     r%   Úcross2dr"  p  r4  r$   c                 óf   — t          | ¦  «        rt          |¦  «        st          d¦  «        ‚d„ }|S )Nr  c                 óÔ   — t          j        | ¦  «        }t          j        |¦  «        }|j        d         dk    s|j        d         dk    rt          d¦  «        ‚t	          ||¦  «        S )Nr?  rz   zRIncompatible dimensions for 2D cross product
(dimension must be 2 for both inputs))r`   rs  r~   r|   r   r  s       r%   rH  zcross2d_impl.<locals>.imply  sf   € ÝŒZ˜‰]Œ]ˆÝŒZ˜‰]Œ]ˆØŒ8�BŒ<˜1ÒÐ ¤¨¤°Ò 1Ð 1Ýð8ñô ð õ " " bÑ)Ô)Ð)r$   rí  r  s      r%   Úcross2d_implr%  t  sG   € å˜AÑÔð 8Õ&6°qÑ&9Ô&9ð 8ÝÐ6Ñ7Ô7Ð7ð*ð *ð *ð €Kr$   Úfbc                 óô   — t          | t          j        ¦  «        st          d¦  «        ‚| j        dk    rt          d¦  «        ‚t          |t
          t          j        f¦  «        st          d¦  «        ‚dd„}|S )Nz#The first argument must be an arrayr(   zarray must be 1Dz$The second argument must be a stringr&  c                 óò   — t          j        | ¦  «        }d}|                     ¦   «         }d|v r|D ]}|dk    r n|dz   }Œt          | ¦  «        }d|v r|d d d…         D ]}|dk    r n|dz
  }Œ|||…         S )Nr   rˆ  r(   rn  r?  )r`   rs  r‰  rD   )ÚfiltÚtrimrð  Úfirstr-   Úlasts         r%   rH  znp_trim_zeros.<locals>.impl‘  s¨   € ÝŒZ˜ÑÔˆØˆØ�zŠz‰|Œ|ˆØ�$ˆ;ˆ;Øð &ð &�Ø˜’6�6Ø�Eà! A™I�E�EÝ�4‰yŒyˆØ�$ˆ;ˆ;Ø˜˜˜"˜”Xð $ð $�Ø˜’6�6Ø�Eà !™8�D�DØ�%˜�*Œ~Ðr$   ©r&  )rS   r   r¶   r   r{   ÚstrÚUnicodeType)r)  r*  rH  s      r%   Únp_trim_zerosr0  †  s…   € å�d�EœKÑ(Ô(ð DÝÐBÑCÔCÐCà„y�1‚}€}ÝÐ/Ñ0Ô0Ð0å�d�S¥%Ô"3Ð4Ñ5Ô5ð EÝÐCÑDÔDÐDðð ð ð ð& €Kr$   r+   r~  r˜  r7  rÝ   r  r  rg  rö   rò  r  rQ  r  r:  rª  r®  r-  (v  Ú__doc__r  Úcollectionsr   r8  r]  Úllvmlite.irr@  Únumpyr`   Ú
numba.corer   r   Únumba.core.extendingr   r   r   Únumba.np.numpy_supportr	   r
   r   r   r   r   Únumba.core.imputilsr   r   r   r   Únumba.np.arrayobjr   r   r   r   Únumba.np.linalgr   r   Únumba.core.errorsr   r   r   r   r   r   Únumba.cpython.unsafe.tupler   r&   r‚  rI   r\   r’  r¶   rs   rv   r�   r3   Ú	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*  r2  r7  r:  r<  r1  rJ  rN  rO  rT  rc  rd  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*  r0  r3  r6  r:  r>  rA  rJ  rK  rV  rX  rf  re  Ú_partition_w_nanÚ_argpartition_w_nanrl  rk  r½  rÄ  rn  rs  Úmedianrx  r‹  r�  r”  r™  r›  rŸ  r§  rƒ  r¬  Únanpercentiler®  Úquantiler±  Únanquantiler³  Ú	nanmedianr¸  rÁ  rÆ  rÌ  Ú	partitionrØ  rc  rÜ  rá  rî  rå  rè  rô  Útrilr  r  r  Útril_indices_fromr  r  Útriur!  r(  r%  Útriu_indices_fromr*  r-  r5  r;  Úediff1drL  rN  rU  rX  r^  Útrapzrh  rk  rm  Úvanderrv  Ú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%  r8  r(  r.  Úfill_diagonalr9  r<  rH  rN  ÚaroundrW  Úround_rZ  r`  ra  ri  rl  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	  Ú_ltÚ_ler  r  r  Údigitizer+  r1   r8  r.  r;  r\  rM  rt  r#  ry  r  rh  rq  ru  rz  r‹  r�  r“  r�  Ú	correlater«  Úconvolver¯  rs  r¾  Úasfarrayr×   rÃ  ÚextractrÉ  ÚselectrÒ  Úunion1dr×  Úasarray_chkfiniterÚ  rÞ  râ  rä  ræ  rî  ÚbartlettÚblackmanÚhammingÚhanningr1  r÷  rø  rô  rù  rþ  Úkaiserr  r  r  r  Úcrossr  r   r"  r%  Ú
trim_zerosr0  r#   r$   r%   ú<module>ry     sÔ"  ððð ð
 €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø €€€à Ð Ð Ð Ø Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð/ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /à 'Ð 'Ð 'Ð 'Ð 'Ð 'à *Ð *Ð *Ð *Ð *Ð *ðHð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð 5Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ˆ[‰]Œ]€
ð ð%!ð %!ñ „ð%!ðP ðE!ð E!ñ „ðE!ðV €ˆrŒv�u”{Ñ#Ô#Ø€ˆ{˜EœKÑ(Ô(ðEð Eñ )Ô(ñ $Ô#ðEð ðð ñ Ôðð>ð >ð >ðB €ˆrŒv�u”{ E¤J°´Ñ@Ô@Ø€ˆrŒv�u”{ EÔ$8¸%¼/ÑJÔJØ€ˆ{˜EœK¨¬°U´_ÑEÔEØ€ˆ{˜EœK¨Ô)=¸u¼ÑOÔOð$Dð $Dñ PÔOñ FÔEñ KÔJñ AÔ@ð$DðN €ˆrŒv�u”{ U¤_Ñ5Ô5Ø€ˆ{˜EœK¨¬Ñ9Ô9ðEð Eñ :Ô9ñ 6Ô5ðEð €ˆrŒv�u”{ E¤JÑ/Ô/Ø€ˆrŒv�u”{ EÔ$8Ñ9Ô9Ø€ˆ{˜EœK¨¬Ñ4Ô4Ø€ˆ{˜EœK¨Ô)=Ñ>Ô>ð%Dð %Dñ ?Ô>ñ 5Ô4ñ :Ô9ñ 0Ô/ð%DðPð ð ð 
€ˆ"Œ'ÑÔØ€�”˜fÑ%Ô%ðð ñ &Ô%ñ Ôðð 
€ˆ"Œ)ÑÔØ€�”˜hÑ'Ô'ð!ð !ñ (Ô'ñ Ôð!ð. 
€ˆ"Œ*ÑÔØ€�”˜iÑ(Ô(ð"ð "ñ )Ô(ñ Ôð"ð. 
€ˆ"Œ'ÑÔØ€�”˜fÑ%Ô%ðð ñ &Ô%ñ Ôðð* 
€ˆ"Œ&ÑÔØ€�”˜eÑ$Ô$ðð ñ %Ô$ñ Ôðð  
€ˆ"Œ&ÑÔØ€�”˜eÑ$Ô$ðð ñ %Ô$ñ Ôðð ðð ñ Ôðð ðð ñ Ôðð ðð ñ Ôðð 
€ˆ"Œ&ÑÔØ	€ˆ"Œ'ÑÔØ€�”˜eÑ$Ô$ð,ð ,ñ %Ô$ñ Ôñ Ôð,ð^ 
€ˆ"Œ&ÑÔØ	€ˆ"Œ'ÑÔØ€�”˜eÑ$Ô$ð,ð ,ñ %Ô$ñ Ôñ Ôð,ð^ ðð ñ Ôðð* ðð ñ Ôðð* ðð ñ Ôðð& 
€ˆ"Œ)ÑÔØ€�”˜hÑ'Ô'ñð ð ñ (Ô'ñ Ôðð$ ðð ñ Ôðð* ðð ñ Ôðð* ðð ñ Ôðð")ð )ð )ðX 
€ˆ"Œ)ÑÔØ€�”˜hÑ'Ô'ñð ð ñ (Ô'ñ Ôðð$ 
€ˆ"Œ&ÑÔØ€�”˜eÑ$Ô$ðð ñ %Ô$ñ Ôðð ñð ð ñ Ôðð2 
€ˆ"Œ+ÑÔØ€�”˜jÑ)Ô)ñ?,ð ?,ð ?,ñ *Ô)ñ Ôð?,ðD 
€ˆ"Œ&ÑÔØ€�”˜eÑ$Ô$ðð ñ %Ô$ñ Ôðð 
€ˆ"Œ*ÑÔñ!ð !ð !ñ Ôð!ðH
ð 
ð 
ð 
€ˆ"Œ,ÑÔðð ñ Ôðð 
€ˆ"Œ)ÑÔðð ñ Ôðð 
€ˆ"Œ/ÑÔðð ñ Ôðð& 
€ˆ"Œ,ÑÔðð ñ Ôðð 
€ˆ"Œ+ÑÔðð ñ Ôðð
ð 
ð 
ð 
€ˆ"Œ+ÑÔñ&ð &ð &ñ Ôð&ð
 
€ˆ"Œ+ÑÔñ&ð &ð &ñ Ôð&ð
 ðð ñ Ôðð ðð ñ Ôðð ðPð Pñ ÔðPð
ð ð ðD ÐØÐ˜	°EÐ:Ñ:Ô:ñô €ð ÐØÐ˜°uÐ=Ñ=Ô=ñô €ð "Ð!ØÐ˜	°DÐ9Ñ9Ô9ñô €ð "Ð!ØÐ˜°tÐ<Ñ<Ô<ñô €ð
 ð2ð 2ñ Ôð2ð 
€ˆ"Œ*ÑÔñ5ð 5ð 5ñ Ôð5ðp 
€ˆ"Œ)ÑÔðð ñ Ôðð 
€ˆ"Œ)ÑÔðð ñ Ôðð 
€ˆ"Œ*ÑÔðð ñ Ôðð& 
€ˆ"Œ)ÑÔðð ñ Ôðð0 
€ˆ"Œ)ÑÔðð ñ Ôðð 
€ˆ"Œ)ÑÔðð ñ Ôðð* 
€ˆ"Œ*ÑÔðð ñ Ôðð* 
€ˆ"Œ-ÑÔðð ñ Ôðð0 
€ˆ"Œ,ÑÔðð ñ Ôðð0 ðð ñ Ôððð ð ð(	ð 	ð 	ð	ð 	ð 	ð 
€ˆ.ÑÔðHð Hñ ÔðHð 
€ˆ.ÑÔðHð Hñ ÔðHð	ð 	ð 	ð 
€ˆ-ÑÔðð ñ Ôðð. €�”˜eÑ$Ô$Ø	€ˆ"Œ&ÑÔðð ñ Ôñ %Ô$ðð< ðð ñ Ôðñ.ð .ð .ð .ðb ÐÐ0Ð0°Ñ;Ô;Ñ<Ô<€
Ø#Ð#Ð$6Ð$6Ð7JÑ$KÔ$KÑLÔLÐ Ø&Ð&Ð'9Ð'9ØØð(ñ (ô (ñ ô Ð ðð ð ð" Ð
˜?˜?¨:Ñ6Ô6Ñ
7Ô
7€Ø Ð   Ð1AÑ!BÔ!BÑCÔC€Ø$Ð$ _ _Ð5HÑ%IÔ%IÑJÔJÐ ð ð ð  ñ Ôð ð0 ð3ð 3ñ Ôð3ð 
€ˆ"Œ)ÑÔðð ñ Ôðð ð1ð 1ñ Ôð1ðh ðð ñ Ôðð  ðð ñ Ôðð  ðFð Fñ ÔðFð
 ðBð Bñ ÔðBð
 ðð ñ Ôðð""ð "ð "ð4 
€ˆ"Œ-ÑÔðð ñ Ôðð 
€ˆ"Ô
ÑÔðð ñ Ôðð 
€ˆ"Œ+ÑÔðð ñ Ôðð 
€ˆ"Œ.ÑÔðð ñ Ôðð 
€ˆ"Œ,ÑÔðð ñ Ôðð0 ðð ñ Ôðð( ðð ñ Ôðð* ðð ñ ÔððD 
€ˆ"Œ,ÑÔðð ñ Ôðð0 
€ˆ"Œ/ÑÔð ð  ñ Ôð ð6 ð	ð 	ñ Ôð	ð 
€ˆ"Œ&ÑÔñ
ð 
ð 
ñ Ôð
ð ðð ñ Ôðð  ñ>ð >ð >ñ Ôð>ð
 
€ˆ"Œ'ÑÔñ"ð "ð "ñ Ôð"ð4 
€ˆ"Œ/ÑÔñ
 ð 
 ð 
 ñ Ôð
 ð 
€ˆ"Ô
ÑÔñ
%ð 
%ð 
%ñ  Ôð
%ð ñ>ð >ð >ñ Ôð>ð
 
€ˆ"Œ'ÑÔñ"ð "ð "ñ Ôð"ð2 
€ˆ"Œ/ÑÔñ
 ð 
 ð 
 ñ Ôð
 ð 
€ˆ"Ô
ÑÔñ
%ð 
%ð 
%ñ  Ôð
%ð	ð 	ð 	ð 
€ˆ.ÑÔð1ð 1ñ Ôð1ð ð  ð  ð" 
€ˆ"Œ*ÑÔñ4ð 4ð 4ñ Ôð4ðn	ð 	ð 	ð 
€ˆ/ÑÔðð ñ Ôðð	ð 	ð 	ð 
€ˆ&ÑÔðð ñ Ôðð 
€ˆ"Œ(ÑÔñð ð ñ Ôðð* ð<ð <ñ Ôð<ð6 ð@ð @ñ Ôð@ð 
€ˆ"Œ)ÑÔñ$"ð $"ð $"ñ Ôð$"ðN 
€ˆ"Œ'ÑÔðð ñ Ôðð2 Ð ð ðAð Añ ÔðAðH ðjð jñ ÔðjðZ ðUð Uñ ÔðUðp 
€ˆ"Œ)ÑÔð%ð %ñ Ôð%ðV ð	ð 	ñ Ôð	ð ðð ñ Ôðð0	ð 	ð 	ð 
€Ð
"Ñ#Ô#ð$$ð $$ñ $Ô#ð$$ðN ð ð  ñ Ôð ð %Ð$ [ [Ñ1Ô1Ð ðð ð ð*Oð Oð Oð ð8ð 8ñ Ôð8ð $Ð# K KÑ0Ô0Ð ð ð9ð 9ñ Ôð9ðð ð ð4 ð3ð 3ñ Ôð3ð ðð ñ Ôðð 
€ˆ"Œ&ÑÔñ7ð 7ð 7ñ Ôð7ðt 
€ˆ"Œ+ÑÔñ ð  ð  ñ Ôð ðH 
€ˆ"Œ+ÑÔðð ñ Ôðð0 
€ˆ"Œ.ÑÔðð ñ Ôðð" ðð ñ Ôðð* ðð ñ Ôðð ðð ñ Ôðð ðDð Dñ ÔñDð ðDð Dñ ÔñDð Ð˜n˜nÑ-Ô-�
ð	ð 	ñ 	ð 
€‰(ÑÔð1ð 1ñ Ôñ1ð 
€ˆ"Õ
ÑÔñð ð ñ Ôñð@,ð ,ñ ,ð
 ðð ñ „ñð" ð)ð )ñ Ôñ)ð4 
€ˆ"�)ÑÔØ	€ˆ"�(ÑÔØ	€ˆ"�)ÑÔñ4ð 4ð 4ñ Ôñ Ôñ Ôñ4ðn 
€ˆ"�'ÑÔðMð Mñ ÔñMð& 
€ˆ"�(ÑÔñ<ð <ð <ñ Ôñ<ð@ €ˆr�z˜5œ;Ñ'Ô'Ø€ˆ ¤Ñ,Ô,ð5Dð 5Dñ -Ô,ñ (Ô'ñ5Dðpð ñ ð ðð ñ Ôñð ðð ñ Ôñðð ñ ð. 
€ˆ"�(ÑÔð ð  ñ Ôñ ð 
€ˆ"�(ÑÔð2ð 2ñ Ôñ2ðj 
€ˆ"�'ÑÔðð ñ Ôñð 
€ˆ"�'ÑÔðð ñ Ôñð 
€ˆ(Õ
ÑÔð
ð 
ñ Ôñ
ð 
€ˆ"Õ
ÑÔñð ð ñ Ôñð  -Ð,¨\¨\Ñ:Ô:Ñ Ø,Ð,Ð-EÐ-EÑFÔFÑ ð 
€ˆ"�)ÑÔð+%ð +%ñ Ôñ+%ð\ 
€ˆ"�'ÑÔñ#ð #ð #ñ Ôñ#ðL 
€ˆ"�.ÑÔðð ñ Ôñð* 
€ˆ"�.ÑÔð ð  ñ Ôñ ð,,ð ,ñ ,ð 
€ˆ"�+ÑÔñ6ð 6ð 6ñ Ôñ6ðr/ð /ñ /ðd �ØÐÐ*Ð*Ñ+Ô+�Ø%Ð% m¡m±CÑ&8Ô&8Ñ9Ô9Ñ Ø&Ð& }¡}±SÑ'9Ô'9Ñ:Ô:Ñ ð 
€ˆ"�/ÑÔñ+ð +ð +ñ Ôñ+ð\ 
€ˆ"�+ÑÔñ}ð }ð }ñ Ôñ}ñ@ 
�ð 
€ˆ"�,ÑÔñOð Oð Oñ ÔñOðh%Ñ ð 
ˆ�HÑ0Ñ	1Ô	1�ð3Ñ ð
 	ˆ
�7Ñ,Ñ-Ô-�ð +Ñ àˆ
�7Ñ,Ñ-Ô-�ð
ð ñ ð< �Ñ Ô Ð ðð ñ ð  
€ˆ"�(ÑÔðð ñ Ôñð 
€ˆ"�(ÑÔðð ñ Ôñðð ñ ð<Oð Oñ Oð	ð 	ñ 	ð 
€Ñ
ÑÔðFð Fñ ÔñFðR 
€ˆ"�,ÑÔñ)ð )ð )ñ Ôñ)ðX 
€ˆ"�+ÑÔñð ð ñ Ôñð* 
€ˆ"�*ÑÔñ3ð 3ð 3ñ Ôñ3ðl 
€ˆ"�+ÑÔØ�ð ð ð ñ Ôñð 
€ˆ"�*ÑÔðð ñ Ôñð2 
€ˆ"�)ÑÔñ/ð /ð /ñ Ôñ/ðd 
€ˆ"�*ÑÔðð ñ Ôñð 
€ˆ"Õ
ÑÔñð ð ñ  Ôñð@ ðKð Kñ ÔñKð
 ð6ð 6ñ Ôñ6ð ð5ð 5ñ Ôñ5ð
 ð3ð 3ñ Ôñ3ð
ð ñ ð" €€ˆ�Ñ Ô Ð&Ñ&Ñ'7Ñ8Ô8Ñ 9Ô 9Ð 9Ø €€ˆ�Ñ Ô Ð&Ñ&Ñ'7Ñ8Ô8Ñ 9Ô 9Ð 9Ø €€ˆ�Ñ Ô Ð%Ñ%¡oÑ6Ô6Ñ 7Ô 7Ð 7Ø €€ˆ�Ñ Ô Ð%Ñ%¡oÑ6Ô6Ñ 7Ô 7Ð 7ð €r…xð ð ð ñ ô �ðB €r…xð ð ð ñ ô �ð: ð	ð 	ñ Ôñ	ð ðBð Bñ ÔñBð ðð ñ Ôñð 
€ˆ"�)ÑÔðð ñ Ôñð* ðð ñ Ôñð.	ð 	ñ 	ð 
€‰&ÑÔðð ñ Ôñð  
€ˆ"�(ÑÔðð ñ Ôñð0 ðð ñ Ôññ&	ð 	ñ 	ð 
€‰'ÑÔñð ñ Ôñð" 
€ˆ"�-ÑÔññ ð ñ Ôñð ð r$   