summaryrefslogtreecommitdiff
path: root/nbench1.h
diff options
context:
space:
mode:
Diffstat (limited to 'nbench1.h')
-rw-r--r--nbench1.h428
1 files changed, 0 insertions, 428 deletions
diff --git a/nbench1.h b/nbench1.h
deleted file mode 100644
index 13a5907..0000000
--- a/nbench1.h
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
-** nbench1.h
-** Header for nbench1.c
-** BYTEmark (tm)
-** BYTE's Native Mode Benchmarks
-** Rick Grehan, BYTE Magazine
-**
-** Creation:
-** Revision: 3/95;10/95
-**
-** 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.
-*/
-
-/*
-** DEFINES
-*/
-/* #define DEBUG */
-
-/*
-** EXTERNALS
-*/
-extern ulong global_min_ticks;
-
-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;
-
-/* External PROTOTYPES */
-/*extern unsigned long abs_randwc(unsigned long num);*/ /* From MISC */
-/*extern long randnum(long lngval);*/
-extern int32 randwc(int32 num);
-extern u32 abs_randwc(u32 num);
-extern int32 randnum(int32 lngval);
-
-extern farvoid *AllocateMemory(unsigned long nbytes, /* From SYSSPEC */
- int *errorcode);
-extern void FreeMemory(farvoid *mempointer,
- int *errorcode);
-extern void MoveMemory(farvoid *destination,
- farvoid *source, unsigned long nbytes);
-extern void ReportError(char *context, int errorcode);
-extern void ErrorExit();
-extern unsigned long StartStopwatch();
-extern unsigned long StopStopwatch(unsigned long startticks);
-extern unsigned long TicksToSecs(unsigned long tickamount);
-extern double TicksToFracSecs(unsigned long tickamount);
-
-/*****************
-** NUMERIC SORT **
-*****************/
-
-/*
-** PROTOTYPES
-*/
-void DoNumSort(void);
-static ulong DoNumSortIteration(farlong *arraybase,
- ulong arraysize,
- uint numarrays);
-static void LoadNumArrayWithRand(farlong *array,
- ulong arraysize,
- uint numarrays);
-static void NumHeapSort(farlong *array,
- ulong bottom,
- ulong top);
-static void NumSift(farlong *array,
- ulong i,
- ulong j);
-
-
-/****************
-** STRING SORT **
-*****************
-*/
-
-
-/*
-** PROTOTYPES
-*/
-void DoStringSort(void);
-static ulong DoStringSortIteration(faruchar *arraybase,
- uint numarrays,
- ulong arraysize);
-static farulong *LoadStringArray(faruchar *strarray,
- uint numarrays,
- ulong *strings,
- ulong arraysize);
-static void stradjust(farulong *optrarray,
- faruchar *strarray,
- ulong nstrings,
- ulong i,
- uchar l);
-static void StrHeapSort(farulong *optrarray,
- faruchar *strarray,
- ulong numstrings,
- ulong bottom,
- ulong top);
-static int str_is_less(farulong *optrarray,
- faruchar *strarray,
- ulong numstrings,
- ulong a,
- ulong b);
-static void strsift(farulong *optrarray,
- faruchar *strarray,
- ulong numstrings,
- ulong i,
- ulong j);
-
-/************************
-** BITFIELD OPERATIONS **
-*************************
-*/
-
-/*
-** PROTOTYPES
-*/
-void DoBitops(void);
-static ulong DoBitfieldIteration(farulong *bitarraybase,
- farulong *bitoparraybase,
- long bitoparraysize,
- ulong *nbitops);
-static void ToggleBitRun(farulong *bitmap,
- ulong bit_addr,
- ulong nbits,
- uint val);
-static void FlipBitRun(farulong *bitmap,
- ulong bit_addr,
- ulong nbits);
-
-/****************************
-** EMULATED FLOATING POINT **
-****************************/
-typedef struct
-{
- u8 type; /* Indicates, NORMAL, SUBNORMAL, etc. */
- u8 sign; /* Mantissa sign */
- short exp; /* Signed exponent...no bias */
- u16 mantissa[INTERNAL_FPF_PRECISION];
-} InternalFPF;
-
-/*
-** PROTOTYPES
-*/
-void DoEmFloat(void);
-
-/*
-** EXTERNALS
-*/
-extern void SetupCPUEmFloatArrays(InternalFPF *abase,
- InternalFPF *bbase, InternalFPF *cbase,
- ulong arraysize);
-extern ulong DoEmFloatIteration(InternalFPF *abase,
- InternalFPF *bbase, InternalFPF *cbase,
- ulong arraysize, ulong loops);
-
-/*************************
-** FOURIER COEFFICIENTS **
-*************************/
-
-/*
-** PROTOTYPES
-*/
-void DoFourier(void);
-static ulong DoFPUTransIteration(fardouble *abase,
- fardouble *bbase,
- ulong arraysize);
-static double TrapezoidIntegrate(double x0,
- double x1,
- int nsteps,
- double omegan,
- int select);
-static double thefunction(double x,
- double omegan,
- int select);
-
-/*************************
-** ASSIGNMENT ALGORITHM **
-*************************/
-
-/*
-** DEFINES
-*/
-
-#define ASSIGNROWS 101L
-#define ASSIGNCOLS 101L
-
-/*
-** TYPEDEFS
-*/
-typedef struct {
- union {
- long *p;
- long (*ap)[ASSIGNROWS][ASSIGNCOLS];
- } ptrs;
-} longptr;
-
-/*
-** PROTOTYPES
-*/
-void DoAssign(void);
-static ulong DoAssignIteration(farlong *arraybase,
- ulong numarrays);
-static void LoadAssignArrayWithRand(farlong *arraybase,
- ulong numarrays);
-static void LoadAssign(farlong arraybase[][ASSIGNCOLS]);
-static void CopyToAssign(farlong arrayfrom[][ASSIGNCOLS],
- long arrayto[][ASSIGNCOLS]);
-static void Assignment(farlong arraybase[][ASSIGNCOLS]);
-static void calc_minimum_costs(long tableau[][ASSIGNCOLS]);
-static int first_assignments(long tableau[][ASSIGNCOLS],
- short assignedtableau[][ASSIGNCOLS]);
-static void second_assignments(long tableau[][ASSIGNCOLS],
- short assignedtableau[][ASSIGNCOLS]);
-
-/********************
-** IDEA ENCRYPTION **
-********************/
-
-/*
-** DEFINES
-*/
-#define IDEAKEYSIZE 16
-#define IDEABLOCKSIZE 8
-#define ROUNDS 8
-#define KEYLEN (6*ROUNDS+4)
-
-/*
-** MACROS
-*/
-#define low16(x) ((x) & 0x0FFFF)
-#define MUL(x,y) (x=mul(low16(x),y))
-
-
-typedef u16 IDEAkey[KEYLEN];
-
-/*
-** PROTOTYPES
-*/
-void DoIDEA(void);
-static ulong DoIDEAIteration(faruchar *plain1,
- faruchar *crypt1, faruchar *plain2,
- ulong arraysize, ulong nloops,
- IDEAkey Z, IDEAkey DK);
-static u16 mul(register u16 a, register u16 b);
-static u16 inv(u16 x);
-static void en_key_idea(u16 userkey[8], IDEAkey Z);
-static void de_key_idea(IDEAkey Z, IDEAkey DK);
-static void cipher_idea(u16 in[4], u16 out[4], IDEAkey Z);
-
-/************************
-** HUFFMAN COMPRESSION **
-************************/
-
-/*
-** DEFINES
-*/
-#define EXCLUDED 32000L /* Big positive value */
-
-/*
-** TYPEDEFS
-*/
-typedef struct {
- uchar c; /* Byte value */
- float freq; /* Frequency */
- int parent; /* Parent node */
- int left; /* Left pointer = 0 */
- int right; /* Right pointer = 1 */
-} huff_node;
-
-/*
-** GLOBALS
-*/
-static huff_node *hufftree; /* The huffman tree */
-static long plaintextlen; /* Length of plaintext */
-
-/*
-** PROTOTYPES
-*/
-void DoHuffman();
-static void create_text_line(farchar *dt,long nchars);
-static void create_text_block(farchar *tb, ulong tblen,
- ushort maxlinlen);
-static ulong DoHuffIteration(farchar *plaintext,
- farchar *comparray, farchar *decomparray,
- ulong arraysize, ulong nloops, huff_node *hufftree);
-static void SetCompBit(u8 *comparray, u32 bitoffset, char bitchar);
-static int GetCompBit(u8 *comparray, u32 bitoffset);
-
-/********************************
-** BACK PROPAGATION NEURAL NET **
-********************************/
-
-/*
-** DEFINES
-*/
-#define T 1 /* TRUE */
-#define F 0 /* FALSE */
-#define ERR -1
-#define MAXPATS 10 /* max number of patterns in data file */
-#define IN_X_SIZE 5 /* number of neurodes/row of input layer */
-#define IN_Y_SIZE 7 /* number of neurodes/col of input layer */
-#define IN_SIZE 35 /* equals IN_X_SIZE*IN_Y_SIZE */
-#define MID_SIZE 8 /* number of neurodes in middle layer */
-#define OUT_SIZE 8 /* number of neurodes in output layer */
-#define MARGIN 0.1 /* how near to 1,0 do we have to come to stop? */
-#define BETA 0.09 /* beta learning constant */
-#define ALPHA 0.09 /* momentum term constant */
-#define STOP 0.1 /* when worst_error less than STOP, training is done */
-
-/*
-** GLOBALS
-*/
-double mid_wts[MID_SIZE][IN_SIZE]; /* middle layer weights */
-double out_wts[OUT_SIZE][MID_SIZE]; /* output layer weights */
-double mid_out[MID_SIZE]; /* middle layer output */
-double out_out[OUT_SIZE]; /* output layer output */
-double mid_error[MID_SIZE]; /* middle layer errors */
-double out_error[OUT_SIZE]; /* output layer errors */
-double mid_wt_change[MID_SIZE][IN_SIZE]; /* storage for last wt change */
-double out_wt_change[OUT_SIZE][MID_SIZE]; /* storage for last wt change */
-double in_pats[MAXPATS][IN_SIZE]; /* input patterns */
-double out_pats[MAXPATS][OUT_SIZE]; /* desired output patterns */
-double tot_out_error[MAXPATS]; /* measure of whether net is done */
-double out_wt_cum_change[OUT_SIZE][MID_SIZE]; /* accumulated wt changes */
-double mid_wt_cum_change[MID_SIZE][IN_SIZE]; /* accumulated wt changes */
-
-double worst_error; /* worst error each pass through the data */
-double average_error; /* average error each pass through the data */
-double avg_out_error[MAXPATS]; /* average error each pattern */
-
-int iteration_count; /* number of passes thru network so far */
-int numpats; /* number of patterns in data file */
-int numpasses; /* number of training passes through data file */
-int learned; /* flag--if TRUE, network has learned all patterns */
-
-/*
-** The Neural Net test requires an input data file.
-** The name is specified here.
-*/
-char *inpath="NNET.DAT";
-
-/*
-** PROTOTYPES
-*/
-void DoNNET(void);
-static ulong DoNNetIteration(ulong nloops);
-static void do_mid_forward(int patt);
-static void do_out_forward();
-void display_output(int patt);
-static void do_forward_pass(int patt);
-static void do_out_error(int patt);
-static void worst_pass_error();
-static void do_mid_error();
-static void adjust_out_wts();
-static void adjust_mid_wts();
-static void do_back_pass(int patt);
-static void move_wt_changes();
-static int check_out_error();
-static void zero_changes();
-static void randomize_wts();
-static int read_data_file();
-/* static int initialize_net(); */
-
-/***********************
-** LU DECOMPOSITION **
-** (Linear Equations) **
-***********************/
-
-/*
-** DEFINES
-*/
-
-#define LUARRAYROWS 101L
-#define LUARRAYCOLS 101L
-
-/*
-** TYPEDEFS
-*/
-typedef struct
-{ union
- { fardouble *p;
- fardouble (*ap)[][LUARRAYCOLS];
- } ptrs;
-} LUdblptr;
-
-/*
-** GLOBALS
-*/
-fardouble *LUtempvv;
-
-/*
-** PROTOTYPES
-*/
-void DoLU(void);
-static void LUFreeMem(fardouble *a, fardouble *b,
- fardouble *abase, fardouble *bbase);
-static ulong DoLUIteration(fardouble *a, fardouble *b,
- fardouble *abase, fardouble *bbase,
- ulong numarrays);
-static void build_problem( double a[][LUARRAYCOLS],
- int n, double b[LUARRAYROWS]);
-static int ludcmp(double a[][LUARRAYCOLS],
- int n, int indx[], int *d);
-static void lubksb(double a[][LUARRAYCOLS],
- int n, int indx[LUARRAYROWS],
- double b[LUARRAYROWS]);
-static int lusolve(double a[][LUARRAYCOLS],
- int n, double b[LUARRAYROWS]);
-
-