ó
*åèNc           @   sH   d  d l  m Z m Z d e d „ Z d „  Z e d k rD e ƒ  n  d S(   iÿÿÿÿ(   t   modft   floori   c         C   sF  | s t  |  ƒ } n |  } d | k o2 d k n s; d
 Sd d d d d d d d d d d d d f d d d	 d d f g	 } | | d \ } } } }	 t |  ƒ }
 t | |
 | | d ƒ \ } } | d k  rÜ | d S| |
 k rô | |
 d St t | ƒ ƒ } | d k r| | S| | | | d | | | |	 | Sd
 S(   sÀ  
    Args:
       x - input data
       q - quantile
       qtype - algorithm
       issorted- True if x already sorted.
 
    Compute quantiles from input array x given q.For median,
    specify q=0.5.
 
    References:
       http://reference.wolfram.com/mathematica/ref/Quantile.html
       http://wiki.r-project.org/rwiki/doku.php?id=rdoc:stats:quantile
 
    Author:
	Ernesto P.Adorio Ph.D.
	UP Extension Program in Pampanga, Clark Field.
    i   i	   i    g      à?iÿÿÿÿg      ð?i   g       @g      Ð?N(   i    i    i   i    (   g      à?i    i   i    (   g      à?i    i    i    (   i    i    i    i   (   g      à?i    i    i   (   i    i   i    i   (   i   iÿÿÿÿi    i   (   t   sortedt   Nonet   lenR    t   intR   (   t   xt   qt   qtypet   issortedt   yt   abcdt   at   bt   ct   dt   nt   gt   j(    (    s=   /woldlab/castor/data00/home/georgi/programs/SLIDE/quantile.pyt   quantile   s2    "c       	   C   sT   d d d d d d d d d	 g	 }  x, t  d
 d ƒ D] } | Gt |  d | ƒ GHq1 Wd  S(   NgÍÌÌÌÌÌ&@gÍÌÌÌÌL1@gÍÌÌÌÌL5@gfffffæ9@gÍÌÌÌÌD@g     @I@g      N@g     €Q@iK   i   i
   gffffffÖ?(   t   rangeR   (   R   R   (    (    s=   /woldlab/castor/data00/home/georgi/programs/SLIDE/quantile.pyt   Test;   s    !t   __main__N(   t   mathR    R   t   FalseR   R   t   __name__(    (    (    s=   /woldlab/castor/data00/home/georgi/programs/SLIDE/quantile.pyt   <module>   s   5	