MCPcopy Create free account
hub / github.com/avaneev/biteopt / performOpt

Method performOpt

tests/tester.h:365–549  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

363 #endif // OPT_STATS
364
365 void performOpt()
366 {
367 init( rnd );
368
369 #if OPT_STATS
370 int k;
371
372 if( SelAlloc < MaxIters )
373 {
374 SelAlloc = MaxIters;
375
376 for( k = 0; k < getSelCount(); k++ )
377 {
378 delete[] Sels[ k ];
379 Sels[ k ] = new int[ MaxIters ];
380 }
381 }
382
383 memset( SumSels, 0, sizeof( SumSels ));
384 memset( SumSelIncrs, 0, sizeof( SumSelIncrs ));
385 memset( SumSelDecrs, 0, sizeof( SumSelDecrs ));
386 #endif // OPT_STATS
387
388 int i = 0;
389 int ImprIters = 0;
390
391 #if OPT_THREADS && OPT_TIME
392 double optt = 0.0;
393 funct = 0.0;
394 #endif // OPT_THREADS && OPT_TIME
395
396 while( true )
397 {
398 #if OPT_THREADS && OPT_TIME
399 TClock t1( CSystem :: getClock() );
400 #endif // OPT_THREADS && OPT_TIME
401
402 const int sc = optimize( rnd );
403
404 #if OPT_THREADS && OPT_TIME
405 optt += CSystem :: getClockDiffSec( t1 );
406 #endif // OPT_THREADS && OPT_TIME
407
408 #if OPT_STATS
409 CBiteSelBase** const s = getSels();
410
411 for( k = 0; k < getSelCount(); k++ )
412 {
413 const int v = s[ k ] -> getSel();
414 Sels[ k ][ i ] = v;
415 SumSels[ k ] += v;
416
417 if( s[ k ] -> getIsSelected() )
418 {
419 if( sc == 0 )
420 {
421 SumSelIncrs[ k ][ v ]++;
422 }

Callers 1

runMethod · 0.80

Calls 4

getSelMethod · 0.80
getIsSelectedMethod · 0.80
unsetIsSelectedMethod · 0.80
getChoiceCountMethod · 0.80

Tested by

no test coverage detected