1. Create a new Multiple Run Fitter and from there add a New Function Fitness generator.
2. Go to Vector > "Retrieve from File" and load some double precision data. Than in the generator go to Regions > "Data from Clipboard" to load that data.
3. Print some of the ydat data in the generator and notice it's in double precision.
4. Save the session.
5. Exit neuron and reload the session. Notice the data is now in single precision.
Here's a couple files to make the reproduction easier, I added a procedure called query() to print the relevant data directly, just run check() and you'll see
Code: Select all
oc> check()
value is 2.34567890123457
Code: Select all
oc> check()
value is 2.345680000000000
test.hoc
Code: Select all
load_file("nrngui.hoc")
xopen("test.ses")
proc check() {
printf("value is %.15f\n",RegionFitness[1].ydat.x[2])
}
Code: Select all
testData:
1 1.234567890123456789012345678
2 2.345678901234567890123456789
Code: Select all
{load_file("nrngui.hoc")}
objectvar save_window_, rvp_
objectvar scene_vector_[3]
objectvar ocbox_, ocbox_list_, scene_, scene_list_
{ocbox_list_ = new List() scene_list_ = new List()}
{pwman_place(0,0,0)}
//Begin MulRunFitter[0]
{
load_file("mulfit.hoc", "MulRunFitter")
}
{
ocbox_ = new MulRunFitter(1)
}
{object_push(ocbox_)}
{
version(5)
ranfac = 2
fspec = new File("test.ses.ft1")
fdat = new File("test.ses.fd1")
read_data()
build()
}
{p.gengui(0, 392, 73, 355.2, 312.96)}
{object_pop()}
{
ocbox_.map("MulRunFitter[0]", 603, 207, 324.48, 191.04)
}
objref ocbox_
//End MulRunFitter[0]
objectvar scene_vector_[1]
{doNotify()}
Code: Select all
ParmFitness: Unnamed multiple run protocol
FitnessFunction: Unnamed Function Fitness
exp(-$1)
RegionFitness:
Parameters:
End ParmFitness
Code: Select all
RegionFitness xdat ydat boundary weight (lines=14) 1
||
3
0
1
2
0
1.23457
2.34568
2
0
2
0
1
0