📄 tstbot.c
字号:
#include "randlib.h"#include <stdio.h>#include <stdlib.h>void main(int argc,char argv[])/*********************************************************************** A test program for the bottom level routines********************************************************************** Set up the random number generator*/{static long genlst[5] = { 1,5,10,20,32};static long ians,iblock,igen,iseed1,iseed2,itmp,ix,ixgen,nbad,answer[10000]; nbad = 0; puts(" For five virual generators of the 32"); puts(" This test generates 10000 numbers then resets the block"); puts(" and does it again"); puts(" Any disagreements are reported -- there should be none");/* Set up Generators*/ setall(12345L,54321L);/* For a selected set of generators*/ for(ixgen=0; ixgen<5; ixgen++) { igen = *(genlst+ixgen); gscgn(1L,&igen); printf(" Testing generator %12ld\n",igen);/* Use 10 blocks*/ initgn(-1L); getsd(&iseed1,&iseed2); for(iblock=0; iblock<10; iblock++) {/* Generate 1000 numbers*/ for(ians=1; ians<=1000; ians++) { ix = ians+iblock*1000; *(answer+ix-1) = ignlgi(); } initgn(1L); } initgn(-1L);/* Do it again and compare answers*/ getsd(&iseed1,&iseed2);/* Use 10 blocks*/ for(iblock=1; iblock<=10; iblock++) {/* Generate 1000 numbers*/ for(ians=1; ians<=1000; ians++) { ix = ians+(iblock-1)*1000;/* ANSWER( IX ) = IGNLGI()*/ itmp = ignlgi(); if((itmp != *(answer+ix-1))) { puts(" Disagreement on regeneration of numbers"); printf(" Block %2ld N within Block %2ld\n",&iblock,&ians); printf(" Index in answer %5ld\n", &ix); printf(" Originally Generated %10ld Regenerated %10ld\n", (answer+ix-1),&itmp); nbad += 1; if(nbad > 10) { puts(" More than 10 mismatches - ABORT"); exit(1); } } } initgn(1L); } printf(" Finished testing generator %12ld\n",igen); puts(" Test completed successfully"); } exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -