/* ** Copyright (C) 1995,2003-2004 Peter Schachte and The University of Melbourne. ** This file may only be copied under the terms of the GNU Library General ** Public License - see the file COPYING.LIB in the Mercury distribution. */ /***************************************************************** File : test_vars.c Author : Peter Schachte Origin : Tue Jul 18 20:13:51 1995 Purpose : Timing test for bryant graph MR_ROBDD_vars_entailed function *****************************************************************/ #include #include #include "bryant.h" #include "timing.h" #define VARLIMIT 1024 int opcount; void usage(char *progname) { printf("usage: %s size maxvar [repetitions]\n", progname); printf(" creates all possible v <-> v1 & v2 & ... & vsize functions and conjoins this\n"); printf(" with each variable between 0 and maxvar, and then determines the set of\n"); printf(" variables MR_ROBDD_entailed by this function. V and the vi are between 0 and maxvar\n"); printf(" inclusive. If repetitions is >0, this will be done that many times.\n"); } void init_array(int top, int v0, int array[]) { int i, val; for (i=0, val=0; i=VARLIMIT) { usage(argv[0]); printf("\n varmax must be between 1 <= varmax < %d\n", VARLIMIT); return 20; } if ((size=atoi(argv[1]))<0 || size>=varmax) { usage(argv[0]); printf("\n size must be between 0 <= size < varmax\n"); return 20; } repetitions=(argc>3 ? atoi(argv[3]) : 1); if (repetitions <= 0) repetitions = 1; opcount = 0; clock0 = milli_time(); for (reps=repetitions; reps>0; --reps) { for (v0=0; v00; --reps) { for (v0=0; v0