[vox-tech] help with signals and C

Peter Jay Salzman vox-tech@lists.lugod.org
Wed, 13 Mar 2002 11:03:49 -0800


hi mike,

thanks for replying!  i /just/ posted some signal test code before
getting this email, and it looks like we're getting the same results;
SIGFPE just isn't being caught.

i can send you my ising 2-D quantum spin code, but that's not so crucial
because it's pretty obvious when stuff goes bad there.  besides, i can
re-write the program less efficiently to avoid these kinds of errors.
basically, i have an average energy per site which gets incremented
quite a bit

   int spins[N][M];

   loop (i < bignumber) {
      avgEnergy = do_calculation();
	}
	avgEnergy /= (N*M*bignumber);
	return 0;

and can turn this into:

   int spins[N][M];

   loop (i < bignumber) {
      avgEnergy += (do_calculation() / (N*M*bignumber);
	}
	return 0;

for example, to avoid avgEnergy from getting too big (i guess i'd need
to worry about stuff getting too small?).   i have a quantum simulator
which isn't nearly so simple.  if you don't mind, i'll just tar that up
and send it to you.

if you can give me some pointers on how to trap overflows or underflows
with this code, i'd be very grateful!

thanks!

pete


begin msimons@moria.simons-clan.com <msimons@moria.simons-clan.com> 
> On Mon, Mar 11, 2002 at 12:43:32PM -0800, Peter Jay Salzman wrote:
> > can someone post some example code of how to trap a SIGFPE signal and
> > abort execution during the course of a C program on linux?
> 
> Pete,
> 
>   If you can provide a snip of code that invokes a FPE, then I can 
> send you code to trap it.
> 
>     TTFN,
>       Mike
> 
>   I wrote some stuff Monday night but nothing I tried (asside from kill
> itself) would generate a SIGFPE, I tried all the simple things like
>   a = 1.4 / 0.0;
>   b = 1e150 / 1e-150;
>   c = 1e-150 / 1e150;
>   d = 1e150 * 1e150;
>   etc...
> 
> (note that the compiler will warn about all of the above, so
> I actually stuck things into variables and went through a few 
> steps to do the above... but no SIGFPE)
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech