From: Ethan M. <merritt@u.washington.edu> - 2005-06-08 23:03:22
|
On Wednesday 08 June 2005 03:53 pm, Robert Hart wrote: > > The question is whether this comment, which dates back at least to 1999, > > is in fact correct. Could you please compare the previous benchmarks > > to the case where the code is prefixed by: #define OSK 1 > > This is much much worse. (Taking nearly 5 minutes on my benchmark) OK. No surprise, but I thought it worth testing. I think I'll remove that OSK chunk altogether, and make the NO_FORTRAN_NUMS a run-time option. Probably set datafile {no}fortran_floats > In the standard code path, sscanf is used to get the next float out of the > input. Then, if the *NEXT CHARACTER* is a d, D, q, or Q, that character is > replaced with an "e" and the sscanf is repeated. > > In the NO_FORTRANS_NUMS code path, atof is used to get the next > float. This is much faster than sscanf. Are you saying that the speed gain could be achieved just by replacing sscanf with atof in the standard code path, even though it still takes the time to check for d/D/q/Q and rescan if found? In that case, maybe we don't even need the run-time option. thanks, Ethan -- Ethan A Merritt merritt@u.washington.edu Biomolecular Structure Center Mailstop 357742 University of Washington, Seattle, WA 98195 |