Chris: This is an underflow. I used to argue (some years ago) with the DEC/Compaq guys about it (throwing an exception when they should have done a round-to-zero). This is in the FP status word, and I am not sure if I remember where to look exactly for the changes. Take a look in GLIBC docs about setting the FP status words so that denorm round to zero is set (sets underflows to 0 rather than tossing an exception). Joe On Fri, 7 May 2004, Chris Dwan wrote: > > Further work on the problem has me stumped again and looking for more > clues: > > Per Joe and Iddo's suggestion, I installed gcc 3.4 and am now using it. > I have rebuilt the NCBI toolkit with optimization OFF and using the -g > flag, so as to retain symbols for debugging. This gave the following: > > ------------------------------------------------------------------------ > ------ > [cdwan at alpha ~]$ gdb /tmp/ncbi/ncbi/build/bl2seq ./core > GNU gdb Red Hat Linux (5.1-4) > Copyright 2001 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "alpha-redhat-linux"... > > Core was generated by `/tmp/ncbi/ncbi/build/bl2seq -i > /home/cdwan/seq_1.fsa -j /home/cdwan/seq_2.fsa -'. > Program terminated with signal 8, Arithmetic exception. > Reading symbols from /lib/libm.so.6.1...done. > Loaded symbols for /lib/libm.so.6.1 > Reading symbols from /lib/libc.so.6.1...done. > Loaded symbols for /lib/libc.so.6.1 > Reading symbols from /lib/ld-linux.so.2...done. > Loaded symbols for /lib/ld-linux.so.2 > #0 0x12004bd1c in BlastKarlinStoE_simple () > > (gdb) where > #0 0x12004bd1c in BlastKarlinStoE_simple () > #1 0x12001926c in BlastNtGappedScoreInternal () > #2 0x12001df04 in BlastNTGetGappedScore () > #3 0x1200d1a04 in BLASTPerformFinalSearch () > #4 0x1200d0f70 in BLASTPerformSearch () > #5 0x1200076e4 in BlastTwoSequencesCoreEx () > #6 0x120007fa8 in BlastTwoSequencesCore () > #7 0x12000b358 in BlastTwoSequencesByLocWithCallback () > #8 0x12000b744 in BlastTwoSequencesWithCallback () > #9 0x120004bf0 in Nlm_Main () > #10 0x12034bda4 in main () > #11 0x200000fd10c in __libc_start_main (main=0x12034bd48 <main>, argc=7, > ubp_av=0x11ffff8b8, init=0x1200034f8 <_init>, > fini=0x2000002d778 <_dl_debug_mask>, rtld_fini=0, > stack_end=0x11ffff8a0) > at ../sysdeps/generic/libc-start.c:129 > ------------------------------------------------------------------------ > ------ > > I inserted some idiot-prints in the function BlastKarlinStoE_simple and > determined that the fault occurs on the following line: > > return searchsp * exp((Nlm_FloatHi)(-Lambda * S) + kbp->logK); > > My printouts of the values in the function look like this: > > ------------------------------------------------------------------------ > ------ > Entering BlastKarlinStoE_simple > ^^ searchsp: 351649.000000 Lambda: 1.374063 S: 489 logK: -0.341642 > ^^ -Lambda * S: -671.916867 > ^^ exp((-Lambda * S) + kbp->logK): 1.101132e-292 > ^^ searchsp * the above: 3.872119e-287 > Leaving BlastKarlinStoE_simple > Entering BlastKarlinStoE_simple > ^^ searchsp: 351649.000000 Lambda: 1.374063 S: 518 logK: -0.341642 > ^^ -Lambda * S: -711.764697 > ^^ exp((-Lambda * S) + kbp->logK): 5.446862e-310 > Floating exception (core dumped) > ------------------------------------------------------------------------ > ------ > > -Chris Dwan > > _______________________________________________ > Biodevelopers mailing list > Biodevelopers at bioinformatics.org > https://bioinformatics.org/mailman/listinfo/biodevelopers >