def add_to_Cfunction_dict_find_timestep():
    delxx = ixp.declarerank1('dxx', DIM=3)
    ds_drn = ds_dirn(delxx)
    ds_dirn_h = outputC([ds_drn[0], ds_drn[1], ds_drn[2]], ['ds_dirn0', 'ds_dirn1', 'ds_dirn2'], 'returnstring')
    desc = 'Find the CFL-constrained timestep'
    add_to_Cfunction_dict(desc=desc, c_type='REAL', name='find_timestep', params='const paramstruct *restrict params, REAL *restrict xx[3]', preloop='REAL dsmin = 1e38; // Start with a crazy high value... close to the largest number in single precision.', body=(('REAL ds_dirn0, ds_dirn1, ds_dirn2;\n' + ds_dirn_h) + '\n#ifndef MIN\n#define MIN(A, B) ( ((A) < (B)) ? (A) : (B) )\n#endif\n        // Set dsmin = MIN(dsmin, ds_dirn0, ds_dirn1, ds_dirn2);\n        dsmin = MIN(dsmin,MIN(ds_dirn0,MIN(ds_dirn1,ds_dirn2)));\n'), loopopts='InteriorPoints,Read_xxs,DisableOpenMP', postloop='return dsmin*CFL_FACTOR/wavespeed;\n')
def add_to_Cfunction_dict_find_timestep():
    delxx = ixp.declarerank1('dxx', DIM=3)
    ds_drn = ds_dirn(delxx)
    ds_dirn_h = outputC([ds_drn[0], ds_drn[1], ds_drn[2]], ['ds_dirn0', 'ds_dirn1', 'ds_dirn2'], 'returnstring')
    desc = 'Find the CFL-constrained timestep'
    add_to_Cfunction_dict(desc=desc, c_type='REAL', name='find_timestep', params='const paramstruct *restrict params, REAL *restrict xx[3]', preloop='REAL dsmin = 1e38; // Start with a crazy high value... close to the largest number in single precision.', body=(('REAL ds_dirn0, ds_dirn1, ds_dirn2;\n' + ds_dirn_h) + '\n#ifndef MIN\n#define MIN(A, B) ( ((A) < (B)) ? (A) : (B) )\n#endif\n        // Set dsmin = MIN(dsmin, ds_dirn0, ds_dirn1, ds_dirn2);\n        dsmin = MIN(dsmin,MIN(ds_dirn0,MIN(ds_dirn1,ds_dirn2)));\n'), loopopts='InteriorPoints,Read_xxs,DisableOpenMP', postloop='return dsmin*CFL_FACTOR/wavespeed;\n')