00001 00007 #ifndef _AGGREGATE_H 00008 #define _AGGREGATE_H 00009 00010 #include "platform.h" 00011 #include "find.h" 00012 00013 typedef enum {AGGR_NOP, AGGR_MIN, AGGR_MAX, AGGR_AVG, AGGR_STD, AGGR_MBE, AGGR_MEAN, AGGR_VAR, AGGR_KUR, AGGR_GAMMA, AGGR_COUNT, AGGR_SUM, AGGR_PROD} AGGREGATOR; 00014 typedef enum {AP_NONE, AP_REAL, AP_IMAG, AP_MAG, AP_ANG, AP_ARG} AGGRPART; 00016 #define AF_ABS 0x01 00018 typedef struct s_aggregate { 00019 AGGREGATOR op; 00020 struct s_findpgm *group; 00021 PROPERTY *pinfo; 00022 AGGRPART part; 00023 unsigned char flags; 00024 struct s_findlist *last; 00025 struct s_aggregate *next; 00026 } AGGREGATION; 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 AGGREGATION *aggregate_mkgroup(char *aggregator, char *group_expression); 00033 double aggregate_value(AGGREGATION *aggregate); 00034 00035 #ifdef __cplusplus 00036 } 00037 #endif 00038 00039 #endif 00040