/*** * test2 * * Plot pairs or triples of random numbers. * ***/ #include #include #include #include "jims1Rand.h" #define SYSRAND 0 #define JIM1RAND 1 // ----------------------------------------------------- // Prints out pairs of randoms. // Inputs are // seed an unsigned int to initialize the generator // N number of randoms to look at // RandMax randoms are 0..(RandMax-1) // theSrand() function which initialized the generator // theRand() function to return the next random // void printRandoms( int seed, int N, int dimensions, int RandMax, void theSrand(unsigned int), int theRand() ){ int i, d; theSrand(seed); for (i=0; irand(), 1=>jims1Rand(), \n"); printf(" nDim is an integer (2 or 3) = points per line, \n"); printf(" and nPoints is the number of lines to output.\n"); exit(0); } // ------------------------------------------------------------ int string2integer(char* theString){ int i, answer, powerOfTen; answer = 0; powerOfTen = 1; for (i=strlen(theString)-1; i>=0; i--){ answer += powerOfTen*((int)theString[i] - (int)'0'); powerOfTen *= 10; } return answer; } // ------------------------------------------------------------ int main(int argc, char* argv[]){ int nPoints, whichFunc, nDim; int seed = 1234; // If we've been passed too few arguments on command line, give some hints. if (argc<4){ printHelpAndExit(argv[0]); } whichFunc = string2integer(argv[1]); nPoints = string2integer(argv[2]); nDim = string2integer(argv[3]); // printf(" whichFunc = %d \n", whichFunc); // printf(" nPoints = %d \n", nPoints); // printf(" nDim = %d \n", nDim); // exit(0); if (nDim<1 || nDim>10){ printf("Oops: illegal nDim value, should be >1 and <10.\n"); printHelpAndExit(argv[0]); } switch (whichFunc) { case SYSRAND: printRandoms(seed, nPoints, nDim, RAND_MAX, srand, rand ); break; case JIM1RAND: printRandoms(seed, nPoints, nDim, jims1GetRAND_MAX(), jims1Srand, jims1Rand ); break; default: printf("Oops: illegal randRoutine value '%c'.\n", *argv[1]); printHelpAndExit(argv[0]); } } // ----------------------------------------------------- // -- debug command line argument passing // printf(" argc is '%d'. \n", argc); // for (i=0; i