public void init(MCMCOptions options,Likelihood likelihood,Prior prior,OperatorSchedule schedule,Logger[] loggers,MarkovChainDelegate[] delegates){
  MCMCCriterion criterion=new MCMCCriterion();
  criterion.setTemperature(options.getTemperature());
  mc=new MarkovChain(prior,likelihood,schedule,criterion,options.getFullEvaluationCount(),options.minOperatorCountForFullEvaluation(),options.getEvaluationTestThreshold(),options.useCoercion());
  this.options=options;
  this.loggers=loggers;
  this.schedule=schedule;
  currentState=0;
  for (  MarkovChainDelegate delegate : delegates) {
    delegate.setup(options,schedule,mc);
  }
  this.delegates=delegates;
  dumpStateFile=System.getProperty(LOAD_DUMP_FILE);
  if (System.getProperty(DUMP_STATE) != null) {
    long debugWriteState=Long.parseLong(System.getProperty(DUMP_STATE));
    mc.addMarkovChainListener(new DebugChainListener(this,debugWriteState,false));
  }
  if (System.getProperty(DUMP_EVERY) != null) {
    long debugWriteEvery=Long.parseLong(System.getProperty(DUMP_EVERY));
    mc.addMarkovChainListener(new DebugChainListener(this,debugWriteEvery,true));
  }
}

public void init ( MCMCOptions options , Likelihood likelihood , Prior prior , OperatorSchedule schedule , Logger [ ] loggers , MarkovChainDelegate [ ] delegates ) { MCMCCriterion criterion = new MCMCCriterion ( ) ; criterion . setTemperature ( options . getTemperature ( ) ) ; mc = new MarkovChain ( prior , likelihood , schedule , criterion , options . getFullEvaluationCount ( ) , options . minOperatorCountForFullEvaluation ( ) , options . getEvaluationTestThreshold ( ) , options . useCoercion ( ) ) ; this . options = options ; this . loggers = loggers ; this . schedule = schedule ; currentState = 0 ; for ( MarkovChainDelegate delegate : delegates ) { delegate . setup ( options , schedule , mc ) ; } this . delegates = delegates ; dumpStateFile = System . getProperty ( LOAD_DUMP_FILE ) ; if ( System . getProperty ( DUMP_STATE ) != null ) { long debugWriteState = Long . parseLong ( System . getProperty ( DUMP_STATE ) ) ; mc . addMarkovChainListener ( new DebugChainListener ( this , debugWriteState , false ) ) ; } if ( System . getProperty ( DUMP_EVERY ) != null ) { long debugWriteEvery = Long . parseLong ( System . getProperty ( DUMP_EVERY ) ) ; mc . addMarkovChainListener ( new DebugChainListener ( this , debugWriteEvery , true ) ) ; } }
must be called before calling chain .
