o
    Žqi±	  ã                   @   s®   d dl Z dd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd*d$d%„Zd&d'„ Zd(d)„ ZdS )+é    Nc                 C   s4   t | ƒsJ ‚t| ƒrdS t| ƒrdS t| ƒrdS dS )Né   é   é   é   )Úis_int64Úis_int8Úis_int16Úis_int32©Ún© r   úI/home/app/PyTorch/test/pytorch/third_party/python-peachpy/peachpy/util.pyÚint_size   s   r   c                 C   s   t | tjƒS ©N©Ú
isinstanceÚsixÚinteger_typesr
   r   r   r   Úis_int   s   r   c                 C   ó$   t | tjƒod|   kodkS   S )Nìûÿÿÿ         ì   ÿÿÿÿ r   r
   r   r   r   r      ó   $r   c                 C   r   )Nr   l   ÿÿÿÿ r   r
   r   r   r   Ú	is_sint64   r   r   c                 C   r   )Nr   r   r   r
   r   r   r   Ú	is_uint64   r   r   c                 C   r   )Né   €ì   ÿÿ r   r
   r   r   r   r	   #   r   r	   c                 C   r   )Nr   iÿÿÿr   r
   r   r   r   Ú	is_sint32'   r   r   c                 C   r   )Nr   r   r   r
   r   r   r   Ú	is_uint32+   r   r   c                 C   r   )Né €ÿÿéÿÿ  r   r
   r   r   r   r   /   r   r   c                 C   r   )Nr   iÿ  r   r
   r   r   r   Ú	is_sint163   r   r!   c                 C   r   )Nr   r    r   r
   r   r   r   Ú	is_uint167   r   r"   c                 C   r   )Né€ÿÿÿéÿ   r   r
   r   r   r   r   ;   r   r   c                 C   r   )Nr   r$   r   r
   r   r   r   Úis_uint8?   r   r%   c                 C   r   )Nr#   é   r   r
   r   r   r   Úis_sint8C   r   r'   c                 C   s&   dd l }t| t| ƒt|ƒ ¡| ƒS ©Nr   )ÚmathÚintZceilÚfloat)r   Úqr)   r   r   r   ÚroundupG   s   r-   c                 C   sP   | | d @ dkrt d|  ƒ‚| dkrdS d}| dkr&|d7 }| dL } | dks|S )Nr   r   z%u is not an power of 2)Ú
ValueError)r   Úlr   r   r   Úilog2L   s   þr0   c                 C   s4   t ƒ }g }| D ]}||vr| |¡ | |¡ q|S r   )ÚsetÚaddÚappend)ÚseqZ
seq_valuesZ
unique_seqÚvaluer   r   r   ÚuniqueY   s   

€r6   c                 C   s$   |d u r| gS | |vr|  | ¡ |S r   )r3   )r5   Úsequencer   r   r   Úappend_uniquec   s
   
r8   c                 C   s,   dd l }| | ¡\}}t|d ƒ | ||¡S r(   )Ú	itertoolsÚteeÚnextZizip)Úiterabler9   ÚaÚbr   r   r   Úpairwisel   s   
r?   c                 C   s   dd l }t|jt| ƒƒS r(   )ÚoperatorÚmapÚ__sub__r?   )r7   r@   r   r   r   Údiffs   s   rC   r   )r   r   r   r   r   r   r	   r   r   r   r!   r"   r   r%   r'   r-   r0   r6   r8   r?   rC   r   r   r   r   Ú<module>   s*   

	