File: limits.py

package info (click to toggle)
python-scipy 0.7.2%2Bdfsg1-1%2Bdeb6u1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze-lts
  • size: 28,572 kB
  • ctags: 36,183
  • sloc: cpp: 216,880; fortran: 76,016; python: 71,833; ansic: 62,118; makefile: 243; sh: 17
file content (37 lines) | stat: -rw-r--r-- 1,273 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
""" Machine limits for Float32 and Float64.
"""

import warnings
warnings.warn('limits module is deprecated, please use numpy.finfo instead',
              DeprecationWarning)


__all__ = ['float_epsilon','float_tiny','float_min',
           'float_max','float_precision','float_resolution',
           'single_epsilon','single_tiny','single_min','single_max',
           'single_precision','single_resolution',
           'double_epsilon','double_tiny','double_min','double_max',
           'double_precision','double_resolution']


from numpy import finfo, single, float_

single_epsilon = finfo(single).eps
single_tiny = finfo(single).tiny
single_max = finfo(single).max
single_min = -single_max
single_precision = finfo(single).precision
single_resolution = finfo(single).resolution

double_epsilon = float_epsilon = finfo(float_).eps
double_tiny = float_tiny = finfo(float_).tiny
double_max = float_max = finfo(float_).max
double_min = float_min = -float_max
double_precision = float_precision = finfo(float_).precision
double_resolution = float_resolution = finfo(float_).resolution

if __name__ == '__main__':
    print 'single epsilon:',single_epsilon
    print 'single tiny:',single_tiny
    print 'float epsilon:',float_epsilon
    print 'float tiny:',float_tiny