REM::~REM() { histogram_free(hist); if (membersArray != NULL) { free(membersArray); } membersArray = NULL; }
int main(int argc, char **argv) { struct timeval one_second = { 1, 0 }; struct event *timeout_event, *sigint_event; base = event_base_new(); durations = histogram_new(100); delays = histogram_new(100); /* add prepare and check watchers; no need to hang on to their pointers, * since they will be freed for us in event_base_free. */ evwatch_prepare_new(base, &on_prepare, NULL); evwatch_check_new(base, &on_check, NULL); /* set a persistent one second timeout */ timeout_event = event_new(base, -1, EV_PERSIST, &on_timeout, NULL); if (!timeout_event) return EXIT_FAILURE; event_add(timeout_event, &one_second); /* set a handler for interrupt, so we can quit cleanly */ sigint_event = evsignal_new(base, SIGINT, &on_sigint, NULL); if (!sigint_event) return EXIT_FAILURE; event_add(sigint_event, NULL); /* run the event loop until interrupted */ event_base_dispatch(base); /* clean up */ event_free(timeout_event); event_free(sigint_event); event_base_free(base); histogram_free(durations); histogram_free(delays); return EXIT_SUCCESS; }
EXT double* kirt_mc_h2neg_var (int n, double cutoff, get_histogram callback) { int i; double neg, nrm, avrg = 0.0, disp = 0.0, buff = 0.0; double* dispersion = double_alloc(n); loop(i,n) { histogram* h = callback(); kirt_h2neg(h,cutoff, &neg); disp += neg * neg; avrg += neg; nrm = 1.0 / (i+1); dispersion[i] = sqrt( nrm * ( disp - nrm * avrg*avrg ) ); histogram_free(h); }