Ñò [ÐKc@sbdZdgZddklZddklZdefd„ƒYZedjo eƒGHndS(sX Machine arithmetics - determine the parameters of the floating-point arithmetic system tMachAriÿÿÿÿ(tany(tseterrcBs;eZdZeeed„dd„Zd„Zd„ZRS(sò Diagnosing machine parameters. Attributes ---------- ibeta : int Radix in which numbers are represented. it : int Number of base-`ibeta` digits in the floating point mantissa M. machep : int Exponent of the smallest (most negative) power of `ibeta` that, added to 1.0, gives something different from 1.0 eps : float Floating-point number ``beta**machep`` (floating point precision) negep : int Exponent of the smallest power of `ibeta` that, substracted from 1.0, gives something different from 1.0. epsneg : float Floating-point number ``beta**negep``. iexp : int Number of bits in the exponent (including its sign and bias). minexp : int Smallest (most negative) power of `ibeta` consistent with there being no leading zeros in the mantissa. xmin : float Floating point number ``beta**minexp`` (the smallest [in magnitude] usable floating value). maxexp : int Smallest (positive) power of `ibeta` that causes overflow. xmax : float ``(1-epsneg) * beta**maxexp`` (the largest [in magnitude] usable floating value). irnd : int In ``range(6)``, information on what kind of rounding is done in addition, and on how underflow is handled. ngrd : int Number of 'guard digits' used when truncating the product of two mantissas to fit the representation. epsilon : float Same as `eps`. tiny : float Same as `xmin`. huge : float Same as `xmax`. precision : float ``- int(-log10(eps))`` resolution : float ``- 10**(-precision)`` Parameters ---------- float_conv : function, optional Function that converts an integer or integer array to a float or float array. Default is `float`. int_conv : function, optional Function that converts a float or float array to an integer or integer array. Default is `int`. float_to_float : function, optional Function that converts a float array to float. Default is `float`. Note that this does not seem to do anything useful in the current implementation. float_to_str : function, optional Function that converts a single float to a string. Default is ``lambda v:'%24.16e' %v``. title : str, optional Title that is printed in the string representation of `MachAr`. See Also -------- finfo : Machine limits for floating point types. iinfo : Machine limits for integer types. References ---------- .. [1] Press, Teukolsky, Vetterling and Flannery, "Numerical Recipes in C++," 2nd ed, Cambridge University Press, 2002, p. 31. cCsd|S(s%24.16e((tv((s6/usr/lib64/python2.6/site-packages/numpy/lib/machar.pytassPython floating point numberc Cs>tddƒ}z|i|||||ƒWdt|XdS(s) float_conv - convert integer to float (array) int_conv - convert float (array) to integer float_to_float - convert float array to float float_to_str - convert array float to str title - description of used floating point numbers tundertignoreN(Rt_do_init(tselft float_convtint_convtfloat_to_floatt float_to_strttitlet saverrstate((s6/usr/lib64/python2.6/site-packages/numpy/lib/machar.pyt__init___s c.Cs d}d}|dƒ}||} ||} |} xdt|ƒD]@} | | } | |} | | }t||| jƒoPq?q?Wt|| |if‚|}xft|ƒD]B} ||}| |} || | ƒ}t|djƒoPq¬q¬Wt|| |if‚|}||ƒ}d}|}xnt|ƒD]J} |d}||}||} | |}t||| jƒoPq3q3Wt|| |if‚|| }|} xdt|ƒD]@} | | } | |} | | }t||| jƒoPq´q´Wt|| |if‚| |} d}t| | | jƒo d}n| |}||} |djo!t| || jƒo d}n|d}||}|} xt|ƒD]}| |} q¨W| }x…t|ƒD]a} || } t| || jƒoPn| |} |d}|djotdtƒ‚qÏqÏWt|| |if‚| }| }| d}|} xdt|ƒD]@} || } t| || jƒoPn| |} |d}quWt|| |if‚| }d}||} |djo%t| ||| jƒo d}nd}d}|}||} d}!x½t|ƒD]™} |}"|"|"}||} || } t| | | jƒptt|ƒ|"jƒoPn| |}t|||jƒoPn|d}||}qFWt|| |if‚|d jo|d}#||}$nDd}#|}%x&||%jo|%|}%|#d}#q-W|%|%d}$xÒt|ƒD]®} |"}&|"|}"|"|} |"| } t| | | jƒoltt|"ƒ|&jƒoS|d}| |}t|||"jƒo$t| |"jƒod}!|"}&PqqnPqnWt|| |if‚| }'|$||djo%|d jo|$|$}$|#d}#n|$|'}(||!}|djo|(d}(n|(|'}|djo| o|(d}(n|d jo|(d}(nt| |"jƒo|(d}(n||})t|)||)jƒo|||})n|)|&|||})|(|'d}x9t|ƒD]+}*|djo|)|)})qs|)|})qsW||_||_||_ ||ƒ|_ ||ƒ|_ ||_ ||ƒ|_ ||ƒ|_||_|#|_|'|_||&ƒ|_||&ƒ|_|(|_||)ƒ|_||)ƒ|_||_||_|i |_|i|_|i|_ddk}+t|+i||i ƒƒ ƒ|_| | | | | },|,|i }-||-ƒ|_ ||-ƒ|_!dS( Ni's'Did not converge after %d tries with %siiiÿÿÿÿiisAcould not determine machine tolerance for 'negep', locals() -> %si i("txrangeRt RuntimeErrortdtypetrangetlocalstabstibetatittnegeptepsnegt _str_epsnegtmacheptepst_str_epstngrdtiexptminexptxmint _str_xmintmaxexptxmaxt _str_xmaxtirndR tepsilonttinythugetmathtinttlog10t precisiont resolutiont_str_resolution(.RR R R R R t max_iterNtmsgtonettwotzerotat_ttempttemp1tbtitempRtbetaRtbetahR&ttempaRtbetaintiRRRRtktztttnxrestyRtmxtizR!R R#R$tjR*ttenR.((s6/usr/lib64/python2.6/site-packages/numpy/lib/machar.pyRrsr                             $              (      0          0  * "                       "cCs d|iS(NsòMachine parameters for %(title)s --------------------------------------------------------------------- ibeta=%(ibeta)s it=%(it)s iexp=%(iexp)s ngrd=%(ngrd)s irnd=%(irnd)s machep=%(machep)s eps=%(_str_eps)s (beta**machep == epsilon) negep =%(negep)s epsneg=%(_str_epsneg)s (beta**epsneg) minexp=%(minexp)s xmin=%(_str_xmin)s (beta**minexp == tiny) maxexp=%(maxexp)s xmax=%(_str_xmax)s ((1-epsneg)*beta**maxexp == huge) --------------------------------------------------------------------- (t__dict__(R((s6/usr/lib64/python2.6/site-packages/numpy/lib/machar.pyt__str__Es (t__name__t __module__t__doc__tfloatR+RRRJ(((s6/usr/lib64/python2.6/site-packages/numpy/lib/machar.pyRsO  Ót__main__N( RMt__all__tnumpy.core.fromnumericRtnumpy.core.numericRtobjectRRK(((s6/usr/lib64/python2.6/site-packages/numpy/lib/machar.pyts ÿD