19 return ( *(
double*)a - *(
double*)b );
41 for(count=0, token=strtok(strtmp,
","); token; count++, token=strtok(NULL,
","))
55 for(count=0,token=strtok(outputlist,
","); count <
Sync.
OutputListLength && token; count++, token=strtok(NULL,
","))
63 double a = atof(token);
66 endrun(1,
"Requesting a negative output scaling factor a = %g\n", a);
97 setup_sync_points(
double TimeIC,
double TimeMax,
double no_snapshot_until_time,
int SnapshotWithFOF)
126 double loga = log(a);
148 if(
SyncPoints[j].a > no_snapshot_until_time) {
150 if(SnapshotWithFOF) {
227 endrun(1,
"Requesting snap %d, from ti %d, beyond last sync point %d\n", lastsnap, ti,
NSyncPoints);
232 return last + dti * logDTime;
265 endrun(1,
"Requesting dti %d larger than TIMEBASE %u\n", sign*dti,
TIMEBASE);
267 return Dloga * dti * sign;
282 return (timebin > 0 ? (1u << (
unsigned) timebin) : 0 ) * logDTime;
297 return ti_min * sign;
void message(int where, const char *fmt,...)
void endrun(int where, const char *fmt,...)
#define mymalloc(name, size)
char * param_get_string(ParameterSet *ps, const char *name)
char * fastpm_strdup(const char *str)
double OutputListTimes[1024]
static double Dloga_interval_ti(inttime_t ti)
inttime_t dti_from_dloga(double loga, const inttime_t Ti_Current)
inttime_t ti_from_loga(double loga)
SyncPoint * find_next_sync_point(inttime_t ti)
inttime_t round_down_power_of_two(inttime_t dti)
int OutputListAction(ParameterSet *ps, const char *name, void *data)
double dloga_from_dti(inttime_t dti, const inttime_t Ti_Current)
double get_dloga_for_bin(int timebin, const inttime_t Ti_Current)
double loga_from_ti(inttime_t ti)
SyncPoint * find_current_sync_point(inttime_t ti)
int cmp_double(const void *a, const void *b)
void setup_sync_points(double TimeIC, double TimeMax, double no_snapshot_until_time, int SnapshotWithFOF)
static SyncPoint * SyncPoints
static struct sync_params Sync
void set_sync_params(int OutputListLength, double *OutputListTimes)