00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00071
00072
00073
00074 #include <stdlib.h>
00075 #include <math.h>
00076 #include "M3.h"
00077
00078 #define STRING_LENGTH 256
00079
00080
00081
00082 int main( int argc, char **argv )
00083 {
00084 M3_RunConfigStruct *runConfig;
00085 M3_DataSetLL *dataSet;
00086 M3_IntervalLL *intervalNode;
00087 int notDone;
00088 int64_t i, j, k, l, n;
00089 M3_Interval interval;
00090 double *tod = NULL;
00091 double maxVal = -HUGE_VAL, minVal = HUGE_VAL;
00092
00093
00094 M3_RunConfigStruct_Read(&runConfig, argv[1], M3_SPRINGTIDE_RUN_TYPE );
00095
00096
00097 for ( notDone = M3_RunConfigStruct_GetDataSetRoot( runConfig, &dataSet );
00098 notDone;
00099 M3_DataSetLL_GetNextNodeInList( &dataSet ))
00100 {
00101
00102 for( notDone = M3_DataSetLL_GetCoveredIntervalRoot( dataSet, &intervalNode);
00103 notDone;
00104 notDone = M3_IntervalLL_GetNextNodeInList( &intervalNode ) )
00105 {
00106
00107 M3_IntervalLL_GetInterval( intervalNode, &interval );
00108
00109 n = interval.lastSample - interval.firstSample + 1;
00110
00111
00112 if( tod )
00113 {
00114 tod = (double*)realloc( tod, sizeof(double)*n);
00115 }
00116
00117 else
00118 {
00119 tod = (double*)malloc( sizeof(double)*n);
00120 }
00121
00122
00123 M3_DataSetLL_GetTOD( dataSet, interval, tod );
00124
00125
00126
00127 for( i = 0; i < n; i++ )
00128 {
00129 if( tod[i] > maxVal )
00130 maxVal = tod[i];
00131 if( tod[i] < minVal )
00132 minVal = tod[i];
00133 }
00134 }
00135 }
00136 fprintf(stdout, "maximum = %.8e\n", maxVal);
00137 fprintf(stdout, "minimum = %.8e\n", minVal);
00138
00139 free(tod);
00140
00141 return 0;
00142 }
00143