Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
ts.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef MCW_TS_HEADER
00008 #define MCW_TS_HEADER
00009
00010
00011
00012 typedef struct {
00013 char *fname ;
00014 int len ;
00015 float *ts ;
00016 } time_series ;
00017
00018 typedef struct {
00019 int num , nall ;
00020 time_series ** tsarr ;
00021 } time_series_array ;
00022
00023 #define INC_TSARR 8
00024
00025 #define INIT_TSARR(name) \
00026 ( (name) = (time_series_array *) malloc( sizeof(time_series_array) ) , \
00027 (name)->num = 0 , (name)->nall = INC_TSARR , \
00028 (name)->tsarr = (time_series **)malloc(sizeof(time_series *)*INC_TSARR) )
00029
00030 #define ADDTO_TSARR(name,tsname) \
00031 do{ int nn ; \
00032 if( (name)->num == (name)->nall ){ \
00033 (name)->nall += INC_TSARR ; nn = sizeof(time_series *) * (name)->nall ; \
00034 (name)->tsarr = ((name)->tsarr == NULL) ? (time_series **)malloc(nn) \
00035 : (time_series **)realloc((name)->tsarr,nn); \
00036 if( name->tsarr == NULL ){ \
00037 fprintf(stderr,"ADDTO_TSARR malloc fails at line %d in file %s\n", \
00038 __LINE__,__FILE__) ; exit(1) ; \
00039 } } \
00040 nn = (name)->num ; (name)->tsarr[nn] = (tsname) ; (name)->num++ ; break ; } while(0)
00041
00042 #define DESTROY_TSARR(name) \
00043 do{ int ii ; \
00044 if( (name) != NULL ) \
00045 for( ii=0 ; ii < (name)->num ; ii++ ) RWC_free_time_series((name)->tsarr[ii]) ; \
00046 free((name)->tsarr) ; free((name)) ; (name) = NULL ; break ; } while(0)
00047
00048 extern time_series * RWC_read_time_series() ;
00049 extern float RWC_norm_ts() ;
00050 extern float RWC_max_ts() ;
00051 extern float RWC_min_ts() ;
00052 extern void RWC_free_time_series() ;
00053 extern time_series * RWC_blank_time_series() ;
00054 extern void RWC_medfilt_time_series() ;
00055
00056 #define MALLOC_ERR(str) \
00057 { fprintf(stderr,"MALLOC error: %s\n",str); exit(-1); }
00058
00059 #ifndef MIN
00060 # define MIN(x,y) (((x)<(y)) ? (x) : (y))
00061 #endif
00062
00063 #ifndef MAX
00064 # define MAX(x,y) (((x)>(y)) ? (x) : (y))
00065 #endif
00066
00067 #endif