/* ** nmglobal.h ** Global definitions for native mode benchmarks. ** ** BYTEmark (tm) ** BYTE's Native Mode Benchmarks ** Rick Grehan, BYTE Magazine ** ** Creation: ** Revision: 3/95;10/95 ** 10/95 - Added memory array & alignment -- RG ** ** DISCLAIMER ** The source, executable, and documentation files that comprise ** the BYTEmark benchmarks are made available on an "as is" basis. ** This means that we at BYTE Magazine have made every reasonable ** effort to verify that the there are no errors in the source and ** executable code. We cannot, however, guarantee that the programs ** are error-free. Consequently, McGraw-HIll and BYTE Magazine make ** no claims in regard to the fitness of the source code, executable ** code, and documentation of the BYTEmark. ** Furthermore, BYTE Magazine, McGraw-Hill, and all employees ** of McGraw-Hill cannot be held responsible for any damages resulting ** from the use of this code or the results obtained from using ** this code. */ /* ** SYSTEM DEFINES */ #include #define TRUE 1 #define FALSE 0 #define MINIMUM_TICKS 60 #define MINIMUM_SECONDS 5 /* Minimum number of seconds to run each test */ typedef struct { double results; /* # of sort iterations per sec */ } SortStruct; typedef struct { double results; /* # of bitfield ops per sec */ } BitOpStruct; /**************************** ** EMULATED FLOATING POINT ** ****************************/ /* ** DEFINES */ #define INTERNAL_FPF_PRECISION 4 /* ** The following constant is the maximum number of loops ** of the emulated floating point test that the system ** will allow before flagging an error. This is not a ** critical constant, and can be altered if your system is ** a real barn-burner. */ /*#define CPUEMFLOATLOOPMAX 50000L*/ #define CPUEMFLOATLOOPMAX 500000L /* ** Set size of array */ #define EMFARRAYSIZE 3000L /* ** TYPEDEFS */ typedef struct { double results; /* Results */ unsigned long arraysize; /* Size of array */ unsigned long loops; /* Loops per iterations */ } EmFloatStruct; /************************* ** FOURIER COEFFICIENTS ** *************************/ /* ** TYPEDEFS */ typedef struct { double results; /* Results */ unsigned long arraysize; /* Size of coeff. arrays */ } FourierStruct; /************************* ** ASSIGNMENT ALGORITHM ** *************************/ /* ** TYPEDEFS */ typedef struct { double results; /* Results */ } AssignStruct; /******************** ** IDEA ENCRYPTION ** ********************/ /* ** DEFINES */ /* Following constant defines the max number of loops the ** system will attempt. Keeps things from going off into the ** weeds. */ /*#define MAXIDEALOOPS 50000L*/ #define MAXIDEALOOPS 500000L /* ** Following constant sets the size of the arrays. ** NOTE: For the IDEA algorithm to work properly, this ** number MUST be some multiple of 8. */ #define IDEAARRAYSIZE 4000L /* ** TYPEDEFS */ typedef struct { double results; /* Results */ unsigned long arraysize; /* Size of array */ unsigned long loops; /* # of times to convert */ } IDEAStruct; /************************ ** HUFFMAN COMPRESSION ** ************************/ /* ** DEFINES */ /* ** MAXHUFFLOOPS ** ** This constant specifies the maximum number of Huffman ** compression loops the system will try for. This keeps ** the test from going off into the weeds. This is not ** a critical constant, and can be increased if your ** system is a real barn-burner. */ /*#define MAXHUFFLOOPS 50000L*/ #define MAXHUFFLOOPS 500000L /* ** Following constant sets the size of the arrays to ** be compressed/uncompressed. */ #define HUFFARRAYSIZE 5000L /* ** TYPEDEFS */ typedef struct { double results; /* Results */ unsigned long arraysize; /* Size of array */ unsigned long loops; /* # of times to compress/decompress */ } HuffStruct; /******************************** ** BACK PROPAGATION NEURAL NET ** ********************************/ /* ** MAXNNETLOOPS ** ** This constant sets the max number of loops through the neural ** net that the system will attempt before giving up. This ** is not a critical constant. You can alter it if your system ** has sufficient horsepower. */ /*#define MAXNNETLOOPS 50000L*/ #define MAXNNETLOOPS 500000L /* ** TYPEDEFS */ typedef struct { double results; /* Results */ unsigned long loops; /* # of times to learn */ } NNetStruct; /*********************** ** LU DECOMPOSITION ** ** (Linear Equations) ** ***********************/ /* ** MAXLUARRAYS ** ** This sets the upper limit on the number of arrays ** that the benchmark will attempt to build before ** flagging an error. It is not a critical constant, and ** may be increased if your system has the horsepower. */ /*#define MAXLUARRAYS 1000*/ #define MAXLUARRAYS 10000 /* ** TYPEDEFS */ typedef struct { double results; /* Results */ } LUStruct; extern SortStruct global_numsortstruct; extern SortStruct global_strsortstruct; extern BitOpStruct global_bitopstruct; extern EmFloatStruct global_emfloatstruct; extern FourierStruct global_fourierstruct; extern AssignStruct global_assignstruct; extern IDEAStruct global_ideastruct; extern HuffStruct global_huffstruct; extern NNetStruct global_nnetstruct; extern LUStruct global_lustruct;