load_file("$(NEURONHOME)/lib/hoc/noload.hoc", "nrnmainmenu")
{install_weaver_fitness()}
objref parmfitness_efun_list_, parmfitness_generator_list_
objref mulfit_optimizers_, mulfit_optimizer_names_
parmfitness_efun_list_ = new List()
parmfitness_generator_list_ = new List()
mulfit_optimizers_ = new List()
mulfit_optimizer_names_ = new List()
proc parmfitness_efun_append() {
	parmfitness_efun_list_.append(new String($s1))
}
proc parmfitness_generator_append() {
	parmfitness_generator_list_.append(new String($s1))
}
proc mulfit_optimizers_append() {
	mulfit_optimizer_names_.append(new String($s1))
	mulfit_optimizers_.append(new String($s2))
}

xopen("$(NEURONHOME)/lib/hoc/mulfit/protorun.hoc")	// Run fitness generator

//xopen("$(NEURONHOME)/lib/hoc/mulfit/e_norm.hoc")	  //
xopen("mulfit/e_norm.hoc")	  //
xopen("$(NEURONHOME)/lib/hoc/mulfit/e_actpot.hoc")	  //
xopen("$(NEURONHOME)/lib/hoc/mulfit/e_y.hoc")		  // (error functions)
xopen("$(NEURONHOME)/lib/hoc/mulfit/e_xy.hoc")	  //
xopen("$(NEURONHOME)/lib/hoc/mulfit/clampfit.hoc")	  //
xopen("mulfit/e_apwinfrcv.hoc")	  //
xopen("mulfit/e_phaseplane.hoc") // phase plane comparison (Hendrickson et al 2011)

xopen("mulfit/eonerun.hoc")	// Run fitness generator
xopen("$(NEURONHOME)/lib/hoc/mulfit/eonefunc.hoc")	// Function fitness generator
xopen("$(NEURONHOME)/lib/hoc/mulfit/eoneprim.hoc")	// Primitive fitness generator
xopen("mulfit/eparmlst.hoc")

xopen("mulfit/fitparm.hoc")	// Deals with list of parameters and generators
//xopen("mulfit/simanneal_seq_weaver_Feb07.hoc") //
xopen("mulfit/simanneal_cardoso.hoc")

xopen("mulfit/mulfit1.hoc")	// Top level container (MulRunFitter)

objref tobj
proc makemulrunfitter() {
	tobj = new MulRunFitter()
	objref tobj
}