/******************************************************************************
*
* NSSDC/CDF Header file for CDFstats.
*
* Version 1.7a, 18-Nov-97, Hughes STX.
*
* Modification history:
*
* V1.0 23-Sep-91, J Love Original version (for CDF V2.1).
* V1.1 23-Mar-92, J Love CDF V2.2. Added fill value filtering.
* V1.2 11-Jun-92, J Love CDF V2.3 (shareable/NeXT).
* V1.3 26-Nov-93, J Love CDF V2.4.
* V1.4 13-Dec-94, J Love CDF V2.5.
* V1.5 28-Mar-95, J Love POSIX.
* V1.5a 15-May-95, J Love Prototypes for `ASSIGNx', `EQx', etc. moved
* to `cdftools.h'.
* V1.6 14-Sep-95, J Love Hyper groups.
* V1.7 1-Aug-96, J Love CDF V2.6.
* V1.7a 18-Nov-97, J Love Windows NT/Visual C++.
*
******************************************************************************/
#if !defined(CDFSTATSh_INCLUDEd__)
#define CDFSTATSh_INCLUDEd__
/******************************************************************************
* Include files.
******************************************************************************/
#include "cdftools.h"
#if defined(mac)
# include "cdfstats.rh"
#endif
/******************************************************************************
* QOP constants.
******************************************************************************/
#define CDFPATHparm 0
#define RANGEqual 0
#define NORANGEqual 1
#define OUTPUTqual 2
#define FILLqual 3
#define NOFILLqual 4
#define FORMATqual 5
#define NOFORMATqual 6
#define PAGEqual 7
#define NOPAGEqual 8
#define UPDATE_VALIDSqual 9
#define NOUPDATE_VALIDSqual 10
#define UPDATE_SCALESqual 11
#define NOUPDATE_SCALESqual 12
#define ZMODEqual 13
#define NEG2POSFP0qual 14
#define NONEG2POSFP0qual 15
#define UPDATE_MONOTONICqual 16
#define NOUPDATE_MONOTONICqual 17
#define REPORTqual 18
#define CACHEqual 19
#define ABOUTqual 20
#define STATSqual 21
#define NOSTATSqual 22
/******************************************************************************
* Constants.
******************************************************************************/
#define MONOTON_RESULT_LEN 8
#define MINnHYPERS 5
/******************************************************************************
* Enumerators.
******************************************************************************/
enum monoStatesENUM { _Init, _Steady, _Increase, _Decrease, _noIncrease,
_noDecrease, _False };
/******************************************************************************
* Global variables.
******************************************************************************/
#if defined(CDFSTATS)
Logical updateValids;
Logical updateScales;
Logical updateMonotonic;
Logical useFormat;
Logical rangeCheck;
Logical ignoreFills;
FILE *OUTfp;
long validminAttrN; /* attribute number */
long validmaxAttrN; /* attribute number */
long fillvalAttrN;
long formatAttrN;
long majority;
#else
extern Logical updateValids;
extern Logical updateScales;
extern Logical updateMonotonic;
extern Logical useFormat;
extern Logical rangeCheck;
extern Logical ignoreFills;
extern FILE *OUTfp;
extern long validminAttrN; /* attribute number */
extern long validmaxAttrN; /* attribute number */
extern long fillvalAttrN;
extern long formatAttrN;
extern long majority;
#endif
/******************************************************************************
* VarStruct.
******************************************************************************/
struct VarStruct {
Logical Z;
long varN;
char varName[CDF_VAR_NAME_LEN256+1];
long dataTypeV;
long numElemsV;
long numDims;
long dimSizes[CDF_MAX_DIMS];
long recVary;
long dimVarys[CDF_MAX_DIMS];
long varMaxRec;
Logical checkMonotonicVar;
Logical rangeCheckVar;
Logical ignoreFillsVar;
char *format;
void *validmin;
void *validmax;
void *fillval;
Byte *value;
Byte *buffer;
void *min, *max, *last;
void *minINrange, *maxINrange;
long low, high;
long fills;
Logical oneINrange;
Logical minmaxInited;
Logical monoInited;
Logical hyper;
enum monoStatesENUM monoState;
long nValueBytes;
};
/******************************************************************************
* Function Prototypes.
******************************************************************************/
Logical CalculateStatistics PROTOARGs((int argC, char *argV[]));
Logical StatisticsQOPs PROTOARGs((int *argC, char **argV[]));
void MinMaxInit PROTOARGs((struct VarStruct *));
void MinMaxCheck PROTOARGs((struct VarStruct *));
void Monotonic PROTOARGs((struct VarStruct *));
void DisplayMin PROTOARGs((struct VarStruct *));
void DisplayMax PROTOARGs((struct VarStruct *));
void DisplayFill PROTOARGs((struct VarStruct *));
Logical SetupVar PROTOARGs((struct VarStruct *));
Logical CALCstat PROTOARGs((struct VarStruct *));
void DISPstat PROTOARGs((struct VarStruct *));
void FreeVarMem PROTOARGs((struct VarStruct *Var));
Logical StatusHandlerStats PROTOARGs((CDFstatus));
/*****************************************************************************/
#endif
syntax highlighted by Code2HTML, v. 0.9.1