[ET Trac] [Einstein Toolkit] #1958: parfiles accept 1.0, 0.0, 1e3 for integer typed parameters

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Sep 21 19:03:50 CDT 2016


#1958: parfiles accept 1.0, 0.0, 1e3 for integer typed parameters
----------------------+-----------------------------------------------------
 Reporter:  rhaas     |       Owner:                     
     Type:  defect    |      Status:  new                
 Priority:  optional  |   Milestone:                     
Component:  Cactus    |     Version:  development version
 Keywords:            |  
----------------------+-----------------------------------------------------
 Currently I can put
 {{{
 Cactus::cctk_itlast = 1.0e3
 }}}
 into a parameter file and Cactus will accept this parfile ({{{cctk_itlast
 = 0.5}}} fails).

 My feeling would that it is better only allow "[-+]?[0-9]+" for integers
 and not accept everything and then check afterwards if it could be
 converted to an integer without loss of accuracy.

 This probably changed when the parfile gained the ability to evaluate
 expressions (both using piraha and before). Mostly I am concerned that
 accepting floating point numbers that have integer values can mask errors
 in parfile generating scripts (eg I have one that apparently sets Llama's
 n_angular to 24.0) and which will crop up when the input to the parfile
 generator changes a bit.

 Maybe the simplest way to achieve this is, is to test like this:
 {{{
 char valuestring[];
 char *endp;
 long int intval = strtol(valuestring, &endptr, 10);
 if(*endptr && (strdod(valuestring, &endptr), !*endptr)) {
   CCTK_VERROR("Float given for int parameter");
 }
 }}}
 which tests if the parameter cannot be converted to an integer but can be
 converted to a floating-point number. I believe there is already a similar
 test in the parfile code to check if valuestring is a constant or an
 expression.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1958>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list