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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscSetFPTrap.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>PetscSetFPTrap</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.14.5 2021-03-03</b></div>
<div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.14.5 v3.14.5 docs/manualpages/Sys/PetscSetFPTrap.html "><small>Report Typos and Errors</small></a></div>
<A NAME="PetscSetFPTrap"><H1>PetscSetFPTrap</H1></A>
Enables traps/exceptions on common floating point errors. This option may not work on certain systems.
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscsys.h"
<A HREF="../Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> <A HREF="../Sys/PetscSetFPTrap.html#PetscSetFPTrap">PetscSetFPTrap</A>(PetscFPTrap flag)
</PRE>
Not Collective
<P>
<H3><FONT COLOR="#CC3333">Input Parameters</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>flag </B></TD><TD>- PETSC_FP_TRAP_ON, PETSC_FP_TRAP_OFF.
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Options Database Keys</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-fp_trap </B></TD><TD>- Activates floating point trapping
</TD></TR></TABLE>
<P>
<P>
<H3><FONT COLOR="#CC3333">Description</FONT></H3>
On systems that support it, when called with PETSC_FP_TRAP_ON this routine causes floating point
underflow, overflow, divide-by-zero, and invalid-operand (e.g., a NaN) to
cause a message to be printed and the program to exit.
<P>
<H3><FONT COLOR="#CC3333">Note</FONT></H3>
On many common systems, the floating
point exception state is not preserved from the location where the trap
occurred through to the signal handler. In this case, the signal handler
will just say that an unknown floating point exception occurred and which
function it occurred in. If you run with -fp_trap in a debugger, it will
break on the line where the error occurred. On systems that support C99
floating point exception handling You can check which
exception occurred using fetestexcept(FE_ALL_EXCEPT). See fenv.h
(usually at /usr/include/bits/fenv.h) for the enum values on your system.
<P>
<H3><FONT COLOR="#CC3333">Caution</FONT></H3>
On certain machines, in particular the IBM PowerPC, floating point
trapping may be VERY slow!
<P>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../Sys/PetscFPTrapPush.html#PetscFPTrapPush">PetscFPTrapPush</A>(), <A HREF="../Sys/PetscFPTrapPop.html#PetscFPTrapPop">PetscFPTrapPop</A>(), <A HREF="../Sys/PetscDetermineInitialFPTrap.html#PetscDetermineInitialFPTrap">PetscDetermineInitialFPTrap</A>()
<BR><P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>advanced<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/sys/error/fp.c.html#PetscSetFPTrap">src/sys/error/fp.c</A>
<BR><A HREF="./index.html">Index of all Sys routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>
|