N
!&5c       sĩ    d  Z   	 k l 
 k Z  h  d d <d d <d d <d d <d	 d
 <Z  d   Z  h  d  Z  e e  Z  d Z  d   Z	 $ d Z
 & y & e	 e d d  Z Wn ' e j
 o
 ' n X( y ( e	 e d d  Z Wn ) e j
 o
 ) n X* y * e	 e d d  Z Wn + e j
 o
 + n X, y , e	 e d d  Z Wn - e j
 o
 - n X. y . e	 e d d  Z Wn / e j
 o
 / n X0 y 0 e	 e d d  Z Wn 1 e j
 o
 1 n X2 d Z 4 y 4 e	 e d d  Z Wn 5 e j
 o
 5 n X6 y 6 e	 e d d  Z Wn 7 e j
 o
 7 n X8 y 8 e	 e d d  Z Wn 9 e j
 o
 9 n X: y : e	 e d d  Z Wn ; e j
 o
 ; n X< y < e	 e d d  Z Wn = e j
 o
 = n X> y > e	 e d d  Z Wn ? e j
 o
 ? n X@ d Z B y B e	 e d
 d  Z Wn C e j
 o
 C n XD y D e	 e d
 d  Z Wn E e j
 o
 E n XF y F e	 e d
 d  Z Wn G e j
 o
 G n XH y H e	 e d
 d  Z Wn I e j
 o
 I n XJ y J e	 e d
 d  Z Wn K e j
 o
 K n XL y L e	 e d
 d  Z Wn M e j
 o
 M n XN d Z P d Z  d S(   sÔ    A simple hack to start thinking about a better way to handle
specification of typecodes.

TODO:
    The code_table should proably be cached somehow
    Float/Complex needs to have precision and range specifiers
s   cs	   Characters   1sils   Integers   bs   UnsignedIntegers   fds   Floats   FDs   Complexc    s\     g  }  x? |  d  r2 }  | i t d f |  i   d | f  q W | Sd  S(   Ni    i   i   (   s   lsts	   typecodess   ts   appends   zeross   itemsize(   s	   typecodess   lsts   ts   ./Lib/Precision.pys   _get_precisions s
   	 	0c    sF     x2 |  i   d  r \ } }  t |  | | <q W | Sd  S(   Ni    (   s	   typecodess   itemss   keys   values   _get_precisionss   table(   s	   typecodess   tables   keys   values   ./Lib/Precision.pys   _fill_table s    s   PrecisionErrorc    sl     |  | }  x4 | d  r' \ } }   | | j o ! | Sn q W" t | d t |  d  d  S(   Ni    s    of s"    bits not available on this system(   s   tables   keys   lsts   bitss   typecodes   required_bitss   PrecisionErrors   str(   s   tables   keys   required_bitss   lsts   bitss   typecodes   ./Lib/Precision.pys   _lookup s    i    i   i   i    i@   i   s   ls   ds   Ds   ON(!   s   __doc__s
   multiarrays   zeross   strings	   typecodess   _get_precisionss   _fill_tables   _code_tables   PrecisionErrors   _lookups   UnsignedInt8s   Int0s   Int8s   Int16s   Int32s   Int64s   Int128s   Ints   Float0s   Float8s   Float16s   Float32s   Float64s   Float128s   Floats   Complex0s   Complex8s	   Complex16s	   Complex32s	   Complex64s
   Complex128s   Complexs   PyObject(    s   ./Lib/Precision.pys   ? sĒ   
	6		            	            	            	