ASPN ActiveState Programmer Network
  ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups | Web Services
SEARCH
advanced | search help

Reference
ActivePython 2.4
Python Documentation
Library Reference
3. Python Runtime Services
3.1 sys -- System-specific parameters and functions
3.2 gc -- Garbage Collector interface
3.3 weakref -- Weak references
3.4 fpectl -- Floating point exception control
3.4.1 Example
3.4.2 Limitations and other considerations
3.5 atexit -- Exit handlers
3.6 types -- Names for built-in types
3.7 UserDict -- Class wrapper for dictionary objects
3.8 UserList -- Class wrapper for list objects
3.9 UserString -- Class wrapper for string objects
3.10 operator -- Standard operators as functions.
3.11 inspect -- Inspect live objects
3.12 traceback -- Print or retrieve a stack traceback
3.13 linecache -- Random access to text lines
3.14 pickle -- Python object serialization
3.15 cPickle -- A faster pickle
3.16 copy reg -- Register pickle support functions
3.17 shelve -- Python object persistence
3.18 copy -- Shallow and deep copy operations
3.19 marshal -- Internal Python object serialization
3.20 warnings -- Warning control
3.21 imp -- Access the import internals
3.22 zipimport -- Import modules from Zip archives
3.23 pkgutil -- Package extension utility
3.24 modulefinder -- Find modules used by a script
3.25 code -- Interpreter base classes
3.26 codeop -- Compile Python code
3.27 pprint -- Data pretty printer
3.28 repr -- Alternate repr() implementation
3.29 new -- Creation of runtime internal objects
3.30 site -- Site-specific configuration hook
3.31 user -- User-specific configuration hook
3.32 builtin -- Built-in objects
3.33 main -- Top-level script environment
3.34 future -- Future statement definitions

MyASPN >> Reference >> ActivePython 2.4 >> Python Documentation >> Library Reference >> 3. Python Runtime Services
ActivePython 2.4 documentation

3.4 fpectl -- Floating point exception control

Availability: Unix.

Most computers carry out floating point operations in conformance with the so-called IEEE-754 standard. On any real computer, some floating point operations produce results that cannot be expressed as a normal floating point value. For example, try

>>> import math
>>> math.exp(1000)
inf
>>> math.exp(1000) / math.exp(1000)
nan

(The example above will work on many platforms. DEC Alpha may be one exception.) "Inf" is a special, non-numeric value in IEEE-754 that stands for "infinity", and "nan" means "not a number." Note that, other than the non-numeric results, nothing special happened when you asked Python to carry out those calculations. That is in fact the default behaviour prescribed in the IEEE-754 standard, and if it works for you, stop reading now.

In some circumstances, it would be better to raise an exception and stop processing at the point where the faulty operation was attempted. The fpectl module is for use in that situation. It provides control over floating point units from several hardware manufacturers, allowing the user to turn on the generation of SIGFPE whenever any of the IEEE-754 exceptions Division by Zero, Overflow, or Invalid Operation occurs. In tandem with a pair of wrapper macros that are inserted into the C code comprising your python system, SIGFPE is trapped and converted into the Python FloatingPointError exception.

The fpectl module defines the following functions and may raise the given exception:

turnon_sigfpe( )
Turn on the generation of SIGFPE, and set up an appropriate signal handler.

turnoff_sigfpe( )
Reset default handling of floating point exceptions.

exception FloatingPointError
After turnon_sigfpe() has been executed, a floating point operation that raises one of the IEEE-754 exceptions Division by Zero, Overflow, or Invalid operation will in turn raise this standard Python exception.



See About this document... for information on suggesting changes.

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState 2004 All rights reserved