σ
ΨΖχXc           @` s  d  Z  d d l m Z m Z m Z d d l Z d d l m Z d d l m	 Z
 d d l m Z d d l m Z e
 j j Z e
 j j Z e
 j j Z e
 j j Z e
 j j Z e
 j j Z d d e d  Z d d e d	  Z d d d e d
  Z  d d d e d  Z! d d d e d  Z" d d d e d  Z# d   Z$ d d d e d  Z% d d d d e d  Z& d d d d e d  Z' d S(   sx   
Array methods which are called by both the C-code for the method
and the Python code for the NumPy-namespace function

i    (   t   divisiont   absolute_importt   print_functionN(   t
   multiarray(   t   umath(   t
   asanyarray(   t   numerictypesc         C` s   t  |  | d  | |  S(   N(   t   umr_maximumt   None(   t   at   axist   outt   keepdims(    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _amax   s    c         C` s   t  |  | d  | |  S(   N(   t   umr_minimumR   (   R	   R
   R   R   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _amin   s    c         C` s   t  |  | | | |  S(   N(   t   umr_sum(   R	   R
   t   dtypeR   R   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _sum   s    c         C` s   t  |  | | | |  S(   N(   t   umr_prod(   R	   R
   R   R   R   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _prod"   s    c         C` s   t  |  | | | |  S(   N(   t   umr_any(   R	   R
   R   R   R   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _any%   s    c         C` s   t  |  | | | |  S(   N(   t   umr_all(   R	   R
   R   R   R   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _all(   s    c         C` sk   | d  k r$ t t |  j   } n  t | t  s? | f } n  d } x | D] } | |  j | 9} qL W| S(   Ni   (   R   t   tuplet   ranget   ndimt
   isinstancet   shape(   t   arrR
   t   itemst   ax(    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _count_reduce_items+   s    c   	   	   C` s  t  |   } t } t | |  } | d k rF t j d t d d n  | d  k rΈ t | j j	 t
 j t
 j f  r t j d  } qΈ t | j j	 t
 j  rΈ t j d  } t } qΈ n  t | | | | |  } t | t j  r0t j | | d | d d	 d
 t } | r| d  k r| j j	 |  } qnQ t | d  rw| r^| j j	 | |  } q| j j	 | |  } n
 | | } | S(   Ni    s   Mean of empty slice.t
   stackleveli   t   f8t   f4R   t   castingt   unsafet   subokR   (   R   t   FalseR!   t   warningst   warnt   RuntimeWarningR   t
   issubclassR   t   typet   ntt   integert   bool_t   mut   float16t   TrueR   R   t   ndarrayt   umt   true_dividet   hasattr(	   R	   R
   R   R   R   R   t   is_float16_resultt   rcountt   ret(    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _mean5   s.    !
c      	   C` sκ  t  |   } t | |  } | | k r@ t j d t d d n  | d  k r t | j j t	 j
 t	 j f  r t j d  } n  t | | | d t } t | t j  rΠ t j | | d | d d d	 t } n | j j | |  } t  | |  }	 t | j j t	 j  r5t j |	 t j |	  d |	 j }	 n t j |	 |	 d |	 }	 t |	 | | | |  }
 t | | d
 g  } t |
 t j  r΄t j |
 | d |
 d d d	 t }
 n2 t |
 d  rά|
 j j |
 |  }
 n
 |
 | }
 |
 S(   Ns!   Degrees of freedom <= 0 for sliceR"   i   R#   R   R   R%   R&   R'   i    R   (   R   R!   R)   R*   R+   R   R,   R   R-   R.   R/   R0   R1   R   R3   R   R4   R5   R6   R(   t   complexfloatingt   multiplyt	   conjugatet   realt   maxR7   (   R	   R
   R   R   t   ddofR   R   R9   t   arrmeant   xR:   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _varV   s2    
-!'!
c         C` s   t  |  d | d | d | d | d | } t | t j  rT t j | d | } n< t | d  r | j j t j |   } n t j |  } | S(   NR
   R   R   RA   R   (	   RD   R   R1   R4   R5   t   sqrtR7   R   R-   (   R	   R
   R   R   RA   R   R:   (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   _std   s    !	((   t   __doc__t
   __future__R    R   R   R)   t
   numpy.coreR   R1   R   R5   t   numpy.core.numericR   R   R.   t   maximumt   reduceR   t   minimumR   t   addR   R=   R   t
   logical_orR   t   logical_andR   R   R(   R   R   R   R   R   R   R!   R;   RD   RF   (    (    (    s2   /tmp/pip-build-X4mzal/numpy/numpy/core/_methods.pyt   <module>   s,   	
!/