void rnl_init(void) { if(!initialized) { initialized=1; rn_init(); rnc_init(); rnc_verror_handler=&verror_handler_rnc; rnd_init(); rnd_verror_handler=&verror_handler_rnd; } }
int main() { rnd_init(); rgb_init(); usitwi_init(); sei(); while (1) { } }
void lfind_neighbors(void) { int i,i1,i2,j,j1,ke,ked,kd; int ibox=BOX-1; long n,element; double dx,epsinv; char toolarge; FILE *fout=NULL; epsinv=1./eps; rnd_init(0x9834725L); if (!stdo) { fout=fopen(outfile,"w"); if (verbosity&VER_INPUT) fprintf(stderr,"Opened %s for writing\n",outfile); } else { if (verbosity&VER_INPUT) fprintf(stderr,"Writing to stdout\n"); } for (n=(embed-1)*delay;n<length;n++) { i=(int)(series[0][n]*epsinv)&ibox; j=(int)(series[dim-1][n]*epsinv)&ibox; for (i1=i-1;i1<=i+1;i1++) { i2=i1&ibox; for (j1=j-1;j1<=j+1;j1++) { element=box[i2][j1&ibox]; while (element > n) { toolarge=0; for (ke=0;ke<embed;ke++) { ked=ke*delay; for (kd=0;kd<dim;kd++) { dx=fabs(series[kd][n-ked]-series[kd][element-ked]); if (dx >= eps) { toolarge=1; break; } } if (toolarge) break; } if (!toolarge) if (((double)rnd69069()/ULONG_MAX) <= fraction) { if (!stdo) fprintf(fout,"%ld %ld\n",n+1,element+1); else fprintf(stdout,"%ld %ld\n",n+1,element+1); } element=list[element]; } } } } if (!stdo) fclose(fout); }
int main(int argc,char **argv) { int status,wait_ret; uint i; N_KEYDEF keyinfo[10]; N_RECINFO recinfo[10]; MY_INIT(argv[0]); get_options(argc,argv); keyinfo[0].seg[0].base.start=0; keyinfo[0].seg[0].base.length=8; keyinfo[0].seg[0].base.type=HA_KEYTYPE_TEXT; keyinfo[0].seg[0].base.flag=HA_SPACE_PACK; keyinfo[0].seg[1].base.type=0; keyinfo[0].base.flag = (uint8) HA_PACK_KEY; keyinfo[1].seg[0].base.start=8; keyinfo[1].seg[0].base.length=sizeof(uint32); keyinfo[1].seg[0].base.type=HA_KEYTYPE_LONG_INT; keyinfo[1].seg[0].base.flag=0; keyinfo[1].seg[1].base.type=0; keyinfo[1].base.flag =HA_NOSAME; recinfo[0].base.type=0; recinfo[0].base.length=sizeof(record.id); recinfo[1].base.type=0; recinfo[1].base.length=sizeof(record.nr); recinfo[2].base.type=0; recinfo[2].base.length=sizeof(record.text); recinfo[3].base.type=FIELD_LAST; puts("- Creating isam-file"); my_delete(filename,MYF(0)); /* Remove old locks under gdb */ if (nisam_create(filename,2,&keyinfo[0],&recinfo[0],10000,0,0,0,0L)) exit(1); rnd_init(0); printf("- Starting %d processes\n",forks); fflush(stdout); for (i=0 ; i < forks; i++) { if (!fork()) { start_test(i+1); sleep(1); return 0; } VOID(rnd(1)); } for (i=0 ; i < forks ; i++) while ((wait_ret=wait(&status)) && wait_ret == -1); return 0; }
int mix_init(char *mixdir) { if (!initialized) { if (mixdir) strncpy(MIXDIR, mixdir, LINELEN); mix_config(); #if defined(USE_SOCK) && defined(WIN32) sock_init(); #endif /* defined(USE_SOCK) && defined(WIN32) */ /* atexit (mix_exit); */ initialized = 1; } if (rnd_init() == -1) rnd_seed(); return(0); }
void iterate_model(double **coeff,double *sigma,FILE *file) { long i,j,i1,i2,n,d; double **iterate,*swap; check_alloc(iterate=(double**)malloc(sizeof(double*)*(poles+1))); for (i=0;i<=poles;i++) check_alloc(iterate[i]=(double*)malloc(sizeof(double)*dim)); rnd_init(0x44325); for (i=0;i<1000;i++) gaussian(1.0); for (i=0;i<dim;i++) for (j=0;j<poles;j++) iterate[j][i]=gaussian(sigma[i]); for (n=0;n<ilength;n++) { for (d=0;d<dim;d++) { iterate[poles][d]=gaussian(sigma[d]); for (i1=0;i1<dim;i1++) for (i2=0;i2<poles;i2++) iterate[poles][d] += coeff[d][i1*poles+i2]*iterate[poles-1-i2][i1]; } if (file != NULL) { for (d=0;d<dim;d++) fprintf(file,"%e ",iterate[poles][d]); fprintf(file,"\n"); } else { for (d=0;d<dim;d++) printf("%e ",iterate[poles][d]); printf("\n"); } swap=iterate[0]; for (i=0;i<poles;i++) iterate[i]=iterate[i+1]; iterate[poles]=swap; } for (i=0;i<=poles;i++) free(iterate[i]); free(iterate); }
int main(int argc,char** argv) { char stdi=0; unsigned long i,j; double av=0.0,*sigmax; FILE *fout; if (scan_help(argc,argv)) show_options(argv[0]); scan_options(argc,argv); #ifndef OMIT_WHAT_I_DO if (verbosity&VER_INPUT) what_i_do(argv[0],WID_STR); #endif if (!justcreate) { infile=search_datafile(argc,argv,NULL,verbosity); if (infile == NULL) stdi=1; } else stdi=1; if (outfile == NULL) { if (!stdi) { check_alloc(outfile=(char*)calloc(strlen(infile)+5,(size_t)1)); strcpy(outfile,infile); strcat(outfile,".noi"); } else { check_alloc(outfile=(char*)calloc((size_t)10,(size_t)1)); strcpy(outfile,"stdin.noi"); } } if (!stout) test_outfile(outfile); if (!justcreate) { if (column == NULL) array=(double**)get_multi_series(infile,&length,exclude,&dim,"",dimset, verbosity); else array=(double**)get_multi_series(infile,&length,exclude,&dim,column, dimset,verbosity); } else { check_alloc(array=(double**)malloc(sizeof(double*)*dim)); for (i=0;i<dim;i++) { check_alloc(array[i]=(double*)malloc(sizeof(double)*length)); for (j=0;j<length;j++) array[i][j]=0.0; } } check_alloc(sigmax=(double*)malloc(sizeof(double)*dim)); if (!absolute) { for (j=0;j<dim;j++) variance(array[j],length,&av,&sigmax[j]); } rnd_init(iseed); for (i=0;i<10000;i++) rnd_1279(); for (j=0;j<dim;j++) { if (!cgaussian) equidistri(sigmax[j],j); else gauss(sigmax[j],j); } if (!stout) { fout=fopen(outfile,"w"); if (verbosity&VER_INPUT) fprintf(stderr,"Opened %s for writing\n",outfile); for (i=0;i<length;i++) { for (j=0;j<dim-1;j++) fprintf(fout,"%e ",array[j][i]); fprintf(fout,"%e\n",array[dim-1][i]); } fclose(fout); } else { if (verbosity&VER_INPUT) fprintf(stderr,"Writing to stdout\n"); for (i=0;i<length;i++) { for (j=0;j<dim-1;j++) fprintf(stdout,"%e ",array[j][i]); fprintf(stdout,"%e\n",array[dim-1][i]); } } for (i=0;i<dim;i++) free(array[i]); free(array); free(sigmax); if (outfile != NULL) free(outfile); if (infile != NULL) free(infile); if (column != NULL) free(column); return 0; }
int main(int argc,char **argv) { char stdi=0,done; long i,j,hdim,actfound; unsigned long count=1; double *swap,*newcast,maxinterval,*min,*interval,dummy,epsilon0; FILE *file=NULL; if (scan_help(argc,argv)) show_options(argv[0]); scan_options(argc,argv); #ifndef OMIT_WHAT_I_DO if (verbosity&VER_INPUT) what_i_do(argv[0],WID_STR); #endif infile=search_datafile(argc,argv,NULL,verbosity); if (infile == NULL) stdi=1; if (outfile == NULL) { if (!stdi) { check_alloc(outfile=(char*)calloc(strlen(infile)+5,(size_t)1)); strcpy(outfile,infile); strcat(outfile,".lzr"); } else { check_alloc(outfile=(char*)calloc((size_t)10,(size_t)1)); strcpy(outfile,"stdin.lzr"); } } if (!onscreen) test_outfile(outfile); hdim=(embed-1)*DELAY+1; if (column == NULL) series=(double**)get_multi_series(infile,&LENGTH,exclude,&dim,"",dimset, verbosity); else series=(double**)get_multi_series(infile,&LENGTH,exclude,&dim,column, dimset,verbosity); dim1=dim-1; check_alloc(min=(double*)malloc(sizeof(double)*dim)); check_alloc(interval=(double*)malloc(sizeof(double)*dim)); check_alloc(var=(double*)malloc(sizeof(double)*dim)); maxinterval=0.0; for (i=0;i<dim;i++) { rescale_data(series[i],LENGTH,&min[i],&interval[i]); variance(series[i],LENGTH,&dummy,&var[i]); if (interval[i] > maxinterval) maxinterval=interval[i]; } if (epsset) EPS0 /= maxinterval; check_alloc(cast=(double**)malloc(sizeof(double*)*hdim)); for (i=0;i<hdim;i++) check_alloc(cast[i]=(double*)malloc(sizeof(double)*dim)); check_alloc(newcast=(double*)malloc(sizeof(double)*dim)); check_alloc(newav=(double*)malloc(sizeof(double)*dim)); check_alloc(list=(long*)malloc(sizeof(long)*LENGTH)); check_alloc(found=(long*)malloc(sizeof(long)*LENGTH)); check_alloc(abstand=(double*)malloc(sizeof(double)*LENGTH)); check_alloc(box=(long**)malloc(sizeof(long*)*NMAX)); for (i=0;i<NMAX;i++) check_alloc(box[i]=(long*)malloc(sizeof(long)*NMAX)); check_alloc(vec=(double*)malloc(sizeof(double)*dim)); check_alloc(hsum=(double*)malloc(sizeof(double)*dim)); check_alloc(mat=(double**)malloc(sizeof(double*)*dim)); for (i=0;i<dim;i++) { check_alloc(mat[i]=(double*)malloc(sizeof(double)*dim)); } for (j=0;j<dim;j++) for (i=0;i<hdim;i++) cast[i][j]=series[j][LENGTH-hdim+i]; indexes=make_multi_index(dim,embed,DELAY); if (!onscreen) { file=fopen(outfile,"w"); if (verbosity&VER_INPUT) fprintf(stderr,"Opened %s for writing\n",outfile); } else { if (verbosity&VER_INPUT) fprintf(stderr,"Writing to stdout\n"); } rnd_init(seed); epsilon0=EPS0/EPSF; if (setnoise) Q /= 100.0; for (i=0;i<FLENGTH;i++) { done=0; if (setsort) epsilon= epsilon0/((double)count*EPSF); else epsilon=epsilon0; while (!done) { epsilon*=EPSF; put_in_boxes(); actfound=hfind_neighbors(); if (actfound >= MINN) { if (setsort) { epsilon0 += epsilon; count++; sort(actfound); actfound=MINN; } make_zeroth(actfound,newcast); if (onscreen) { for (j=0;j<dim-1;j++) printf("%e ",newcast[j]*interval[j]+min[j]); printf("%e\n",newcast[dim-1]*interval[dim-1]+min[dim-1]); fflush(stdout); } else { for (j=0;j<dim-1;j++) fprintf(file,"%e ",newcast[j]*interval[j]+min[j]); fprintf(file,"%e\n",newcast[dim-1]*interval[dim-1]+min[dim-1]); fflush(file); } done=1; swap=cast[0]; for (j=0;j<hdim-1;j++) cast[j]=cast[j+1]; cast[hdim-1]=swap; for (j=0;j<dim;j++) cast[hdim-1][j]=newcast[j]; } } } if (!onscreen) fclose(file); if (outfile != NULL) free(outfile); for (i=0;i<dim;i++) free(mat[i]); free(mat); for (i=0;i<hdim;i++) free(cast[i]); free(cast); free(newcast); free(found); free(list); for (i=0;i<NMAX;i++) free(box[i]); free(box); free(vec); free(newav); for (i=0;i<dim;i++) free(series[i]); free(series); return 0; }
int WINAPI wWinMain( HINSTANCE hinst, HINSTANCE hprev, LPWSTR cmd_line, int cmd_show ) { int rlt; int ver; int app_start = on_app_start( cmd_line ); #ifdef LOG_FILE _log( L"%0.8X app start", app_start ); #endif if ( app_start == ST_NEED_EXIT ) { return 0; } if ( _ui_init(hinst) == 0 ) { __error_s( HWND_DESKTOP, L"Error GUI initialization", ST_OK ); return 0; } if ( is_admin( ) != ST_OK ) { __error_s( HWND_DESKTOP, L"Admin Privileges Required", ST_OK ); return 0; } #ifdef _M_IX86 if ( is_wow64( ) != 0 ) { __error_s( HWND_DESKTOP, L"Please use x64 version of DiskCryptor", ST_OK ); return 0; } #endif if ( dc_is_old_runned( ) != 0 ) { __error_s( HWND_DESKTOP, L"DiskCryptor 0.1-0.4 installed, please completely uninstall it before use this version.", ST_OK ); return 0; } #ifdef LOG_FILE _log( L"%0.8X driver status", dc_driver_status( ) ); #endif if ( dc_is_driver_works( ) == FALSE ) { if ( ( rlt = _drv_action(DA_INSTAL, 0) ) != NO_ERROR ) { __error_s( HWND_DESKTOP, NULL, rlt ); } return 0; } if ( ( rlt = dc_open_device( ) ) != ST_OK ) { __error_s( HWND_DESKTOP, L"Can not open DC device", rlt ); return 0; } ver = dc_get_version( ); #ifdef LOG_FILE _log( L"%0.8X dc version", ver ); #endif if ( ver < DC_DRIVER_VER ) { if ( ( rlt = _drv_action(DA_UPDATE, ver) ) != NO_ERROR ) { __error_s( HWND_DESKTOP, NULL, rlt ); } return 0; } if ( ver > DC_DRIVER_VER ) { __msg_i( HWND_DESKTOP, L"DiskCryptor driver v%d detected\n" L"Please use last program version", ver ); return 0; } { HWND h_find; WNDCLASS wc = { 0 }; wc.lpszClassName = DC_CLASS; wc.lpfnWndProc = &_class_dlg_proc; wc.cbWndExtra = DLGWINDOWEXTRA; wc.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_ICON_TRAY)); dlg_class = RegisterClass(&wc); #ifdef LOG_FILE _log( L"%0.8X register class", dlg_class ); #endif h_find = FindWindow(DC_CLASS, NULL); #ifdef LOG_FILE _log( L"%0.8X find window", h_find ); #endif if ( h_find != NULL ) { ShowWindow( h_find, SW_SHOW ); SetForegroundWindow( h_find ); #ifdef LOG_FILE _log( L"show window [ %0.8X ] return", h_find ); #endif return 0; } } if ( ( rlt = rnd_init( ) ) != ST_OK ) { __error_s( HWND_DESKTOP, L"Can not initialize RNG", rlt ); return 0; } if ( (rlt = dc_load_config(&__config) == NO_ERROR ? ST_OK : ST_ERROR) != ST_OK ) { __error_s( HWND_DESKTOP, L"Error get config", rlt ); return 0; } InitializeCriticalSection( &crit_sect ); #ifdef LOG_FILE _log( L"initialize critical section" ); #endif _init_list_head( &__drives ); _init_list_head( &__action ); _init_keyfiles_list( ); #ifdef LOG_FILE _log( L"init keyfiles list" ); #endif { HWND h_dialog; MSG msg; __hacc = LoadAccelerators( hinst, MAKEINTRESOURCE(IDR_MAIN_ACCEL) ); #ifdef LOG_FILE _log( L"before create dialog" ); #endif h_dialog = CreateDialog( GetModuleHandleA(NULL), MAKEINTRESOURCE(IDD_MAIN_DLG), HWND_DESKTOP, _main_dialog_proc ); #ifdef LOG_FILE _log( L"%0.8X create dialog", h_dialog ); #endif rlt = ShowWindow( h_dialog, app_start == ST_AUTORUNNED ? SW_HIDE : SW_SHOW ); #ifdef LOG_FILE _log( L"%0.8X show window", rlt ); #endif while ( GetMessage( &msg, NULL, 0, 0 ) ) { if ( !TranslateAccelerator( h_dialog, __hacc, &msg ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } } DestroyAcceleratorTable( __hacc ); } return TRUE; }
int main(int argc,char **argv) { int status,wait_ret; uint i=0; MI_KEYDEF keyinfo[10]; MI_COLUMNDEF recinfo[10]; HA_KEYSEG keyseg[10][2]; MY_INIT(argv[0]); get_options(argc,argv); bzero((char*) keyinfo,sizeof(keyinfo)); bzero((char*) recinfo,sizeof(recinfo)); bzero((char*) keyseg,sizeof(keyseg)); keyinfo[0].seg= &keyseg[0][0]; keyinfo[0].seg[0].start=0; keyinfo[0].seg[0].length=8; keyinfo[0].seg[0].type=HA_KEYTYPE_TEXT; keyinfo[0].seg[0].flag=HA_SPACE_PACK; keyinfo[0].key_alg=HA_KEY_ALG_BTREE; keyinfo[0].keysegs=1; keyinfo[0].flag = (uint8) HA_PACK_KEY; keyinfo[0].block_length= 0; /* Default block length */ keyinfo[1].seg= &keyseg[1][0]; keyinfo[1].seg[0].start=8; keyinfo[1].seg[0].length=4; /* Long is always 4 in myisam */ keyinfo[1].seg[0].type=HA_KEYTYPE_LONG_INT; keyinfo[1].seg[0].flag=0; keyinfo[1].key_alg=HA_KEY_ALG_BTREE; keyinfo[1].keysegs=1; keyinfo[1].flag =HA_NOSAME; keyinfo[1].block_length= 0; /* Default block length */ recinfo[0].type=0; recinfo[0].length=sizeof(record.id); recinfo[1].type=0; recinfo[1].length=sizeof(record.nr); recinfo[2].type=0; recinfo[2].length=sizeof(record.text); puts("- Creating myisam-file"); my_delete(filename,MYF(0)); /* Remove old locks under gdb */ if (mi_create(filename,2,&keyinfo[0],2,&recinfo[0],0,(MI_UNIQUEDEF*) 0, (MI_CREATE_INFO*) 0,0)) exit(1); rnd_init(0); printf("- Starting %d processes\n",forks); fflush(stdout); for (i=0 ; i < forks; i++) { if (!fork()) { start_test(i+1); sleep(1); return 0; } (void) rnd(1); } for (i=0 ; i < forks ; i++) while ((wait_ret=wait(&status)) && wait_ret == -1); return 0; }
void rnd_test(rnd_t rnd) { int dist[20]; int i,r; uint64_t total; double dr, dt; clock_t start,stop; uint32_t max32 = rnd_max32(); uint64_t max64 = rnd_max64(); unsigned size; uint32_t *state; char *state_str; for (i=0; i < 20; i++) dist[i] = 0; printf("Testing the random number generator\n"); printf("rnd max32: %u\n",max32); printf("rnd max64: %llu\n",max64); printf("\n"); printf("state size = %u bytes\n\n",rnd_get_state_size_bytes()); printf("Setting state with string (4 bytes)\n"); state_str = "12345678"; printf("In : %s\n",state_str); rnd_string_to_state(rnd, state_str); print_state(rnd); printf("Setting state with string (40 bytes)\n"); state_str = "01234567a1a2a3a4b1b2b3b4c1c2c3c4d1d2d3d4e1e2e3e4f1f2f3f4A5A6A7A8B5B6B7B8C5C6C7C8"; printf("In : %s\n",state_str); rnd_string_to_state(rnd, state_str); print_state(rnd); printf("Setting state with array (4 bytes)\n"); size = sizeof(uint32_t); state = malloc(size); state[0] = 0x12345678UL; printf("In : %0x\n",state[0]); rnd_array_to_state(rnd, state, size); free(state); print_state(rnd); printf("Setting state with array (40 bytes)\n"); size = sizeof(uint32_t)*10; state = malloc(size); state[0] = 0x12345678UL; state[1] = 0xa1a2a3a4UL; state[2] = 0xb1b2b3b4UL; state[3] = 0xc1c2c3c4UL; state[4] = 0xd1d2d3d4UL; state[5] = 0xe1e2e3e4UL; state[6] = 0xf1f2f3f4UL; state[7] = 0xA5A6A7A8UL; state[8] = 0xB5B6B7B8UL; state[9] = 0xC5C6C7C8UL; printf("In : "); for (i=0; i<10; i++) { printf("%0x",state[i]); } printf("\n"); rnd_array_to_state(rnd, state, size); free(state); print_state(rnd); printf("Initializing state with rnd_int() using time\n"); rnd_init(rnd, (unsigned long)time(NULL)); print_state(rnd); printf("Testing rnd_u32\n"); dt = 0.0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dt += rnd_u32(rnd); } stop = clock(); printf("Avg=%.0f (Expected: %.0f) (Time: %5.3f)\n\n", dt/TEST_SIZE, (double)max32/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); printf("Testing rnd_u64\n"); dt = 0.0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dt += rnd_u64(rnd); } stop = clock(); printf("Avg=%.0f (Expected: %.0f) (Time: %5.3f)\n\n", dt/TEST_SIZE, (double)max64/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); printf("Testing rnd_closed\n"); dt = 0.0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dt += rnd_closed(rnd); } stop = clock(); printf("Avg=%7.5f (Expected: %7.5f) (Time: %5.3f)\n\n", dt/TEST_SIZE, 0.5, ((double)(stop-start)/CLOCKS_PER_SEC)); printf("Testing rnd_open\n"); dt = 0.0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dt += rnd_open(rnd); } stop = clock(); printf("Avg=%7.5f (Expected: %7.5f) (Time: %5.3f)\n\n", dt/TEST_SIZE, 0.5, ((double)(stop-start)/CLOCKS_PER_SEC)); printf("Testing rnd_int\n"); total = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { r = rnd_int(rnd,0,19); dist[r]++; total += r; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 0, 19, (double)total/TEST_SIZE, (0+19)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); printf("Testing rnd_roll\n"); for (i=0; i < 20; i++) dist[i] = 0; total = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { r = rnd_roll(rnd,3,6); dist[r]++; total += r; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 3, 18, (double)total/TEST_SIZE, (3+18)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); printf("Testing rnd_roll_mid\n"); for (i=0; i < 20; i++) dist[i] = 0; total = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { r = rnd_roll_mid(rnd,18); dist[r]++; total += r; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 1, 18, (double)total/TEST_SIZE, (1+18)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); printf("Testing rnd_dist_uniform\n"); for (i=0; i < 20; i++) dist[i] = 0; dt = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dr = rnd_dist_uniform(rnd,0,20); dt += dr; dist[(int)floor(dr)]++; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 0, 19, (double)dt/TEST_SIZE, (0+20)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); printf("Testing rnd_dist_normal\n"); for (i=0; i < 20; i++) dist[i] = 0; dt = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dr = rnd_dist_normal(rnd,10,1.0); dt += dr; dist[(int)floor(dr)]++; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 0, 19, (double)dt/TEST_SIZE, (0+20)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); printf("Testing rnd_dist_triangle\n"); for (i=0; i < 20; i++) dist[i] = 0; dt = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dr = rnd_dist_triangle(rnd,0,20); dt += dr; dist[(int)floor(dr)]++; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 0, 19, (double)dt/TEST_SIZE, (0+20)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); printf("Testing rnd_dist_irwin_hall\n"); for (i=0; i < 20; i++) dist[i] = 0; dt = 0; start = clock(); for (i=0; i < TEST_SIZE; i++) { dr = rnd_dist_irwin_hall(rnd,12,4,16); dt += dr; dist[(int)floor(dr)]++; } stop = clock(); printf("Range: %d-%d: Avg=%5.3f (Expected: %5.3f) (Time: %5.3f)\n", 0, 19, (double)dt/TEST_SIZE, (0+20)/2.0, ((double)(stop-start)/CLOCKS_PER_SEC)); print_dist(0, 19, dist); }
int main(int argc,char **argv) { int status,wait_ret; uint i=0; MARIA_KEYDEF keyinfo[10]; MARIA_COLUMNDEF recinfo[10]; HA_KEYSEG keyseg[10][2]; MY_INIT(argv[0]); get_options(argc,argv); fprintf(stderr, "WARNING! this program is to test 'external locking'" " (when several processes share a table through file locking)" " which is not supported by Maria at all; expect errors." " We may soon remove this program.\n"); maria_init(); bzero((char*) keyinfo,sizeof(keyinfo)); bzero((char*) recinfo,sizeof(recinfo)); bzero((char*) keyseg,sizeof(keyseg)); keyinfo[0].seg= &keyseg[0][0]; keyinfo[0].seg[0].start=0; keyinfo[0].seg[0].length=8; keyinfo[0].seg[0].type=HA_KEYTYPE_TEXT; keyinfo[0].seg[0].flag=HA_SPACE_PACK; keyinfo[0].key_alg=HA_KEY_ALG_BTREE; keyinfo[0].keysegs=1; keyinfo[0].flag = (uint8) HA_PACK_KEY; keyinfo[0].block_length= 0; /* Default block length */ keyinfo[1].seg= &keyseg[1][0]; keyinfo[1].seg[0].start=8; keyinfo[1].seg[0].length=4; /* Long is always 4 in maria */ keyinfo[1].seg[0].type=HA_KEYTYPE_LONG_INT; keyinfo[1].seg[0].flag=0; keyinfo[1].key_alg=HA_KEY_ALG_BTREE; keyinfo[1].keysegs=1; keyinfo[1].flag =HA_NOSAME; keyinfo[1].block_length= 0; /* Default block length */ recinfo[0].type=0; recinfo[0].length=sizeof(record.id); recinfo[1].type=0; recinfo[1].length=sizeof(record.nr); recinfo[2].type=0; recinfo[2].length=sizeof(record.text); puts("- Creating maria-file"); my_delete(filename,MYF(0)); /* Remove old locks under gdb */ if (maria_create(filename,BLOCK_RECORD, 2, &keyinfo[0],2,&recinfo[0],0, (MARIA_UNIQUEDEF*) 0, (MARIA_CREATE_INFO*) 0,0)) exit(1); rnd_init(0); printf("- Starting %d processes\n",forks); fflush(stdout); for (i=0 ; i < forks; i++) { if (!fork()) { start_test(i+1); sleep(1); return 0; } rnd(1); } for (i=0 ; i < forks ; i++) while ((wait_ret=wait(&status)) && wait_ret == -1); maria_end(); return 0; }