Miscellaneous
- float_epsilon
Syntax:
n.float_epsilon = 1e-11
- Description:
The default value is 1e-11
Allows somewhat safer NEURON logical comparisons and integer truncation for floating point numbers. Most NEURON comparisons are treated as true if they are within float_epsilon of being true. e.g.,
from neuron import n n(""" proc count_to_1() {for (i = 0; i < 1; i += 0.1) $o1.__call__(i)} """) def print_i(i): print(f'{i:3g} {int(10*i)}') rv = n.count_to_1(print_i) n.float_epsilon = 0 # two bugs due to roundoff rv = n.count_to_1(print_i)
Warning
This has no effect on Python comparisons, which is why the example uses a HOC procedure.
Warning
We certainly haven’t gotten every floating comparison in the program to use
float_epsilon
but NEURON has most of them including all HOC interpreter logical operations, int, array indices, and Vector logic methods.Syntax:
float_epsilon = 1e-11
- Description:
The default value is 1e-11
Allows somewhat safer logical comparisons and integer truncation for floating point numbers. Most comparisons are treated as true if they are within float_epsilon of being true. e.g.,
for (i = 0; i < 1; i += .1) { print i, int(10*i) } float_epsilon = 0 // two bugs due to roundoff for (i = 0; i < 1; i += .1) { print i, int(10*i) }
Warning
We certainly haven’t gotten every floating comparison in the program to use
float_epsilon
but NEURON has most of them including all HOC interpreter logical operations, int, array indices, and Vector logic methods.Syntax:
n.float_epsilon = 1e-11
- Description:
The default value is 1e-11
Allows somewhat safer NEURON logical comparisons and integer truncation for floating point numbers. Most NEURON comparisons are treated as true if they are within float_epsilon of being true. e.g.,
n = neuron.launch(); n('print 1.01 == 1.0'); % 0 i.e., false n.float_epsilon = 0.1; n('print 1.01 == 1.0'); % 1 i.e., true
Warning
This has no effect on MATLAB comparisons, which is why the example does the comparison using a HOC statement.
Warning
We certainly haven’t gotten every floating comparison in the program to use
float_epsilon
but NEURON has most of them including all HOC interpreter logical operations, int, array indices, andVector
logic methods.