void freeDoubleMovingStdDev(DoubleMovingStdDev** container) { freeDoubleMovingMean(&((*container)->meanContainer)); free(*container); *container = NULL; }
void freeDoubleMovingStatFilter(DoubleMovingStatFilter** container) { if((container==NULL) || (*container==NULL)) { return; } freeDoubleMovingMean(&((*container)->meanContainer)); free(*container); *container = NULL; }
static int outlierFilterShutdown(OutlierFilter *filter) { if(filter->rawStats != NULL ) { freeDoubleMovingStdDev(&filter->rawStats); } if(filter->filteredStats != NULL ) { freeDoubleMovingMean(&filter->filteredStats); } resetDoublePermanentMean(&filter->outlierStats); resetDoublePermanentMean(&filter->acceptedStats); return 1; }