corrected off-by-one error when using E_MAX vlaues.
This commit is contained in:
@@ -59,13 +59,13 @@ double round_to_E_series (double continuous_value, ESeries E_series) {
|
|||||||
int upper_e_limit = e_max_values;
|
int upper_e_limit = e_max_values;
|
||||||
int lower_e_limit = 0;
|
int lower_e_limit = 0;
|
||||||
|
|
||||||
for (int i = 0 ; i < log2((e_max_values/3)); i++) {
|
for (int i = 0 ; i < log2((e_max_values + 1 / 3)); i++) {
|
||||||
|
|
||||||
if (continuous_value < E_values[E_series][((upper_e_limit - lower_e_limit + 1) / 2) + lower_e_limit]) {
|
if (continuous_value < E_values[E_series][(((upper_e_limit - lower_e_limit) + 1) / 2) + lower_e_limit]) {
|
||||||
upper_e_limit = ((upper_e_limit - lower_e_limit + 1) / 2) + lower_e_limit - 1;
|
upper_e_limit = (((upper_e_limit - lower_e_limit) + 1) / 2) + lower_e_limit - 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lower_e_limit = ((upper_e_limit - lower_e_limit + 1) / 2) + lower_e_limit;
|
lower_e_limit = (((upper_e_limit - lower_e_limit) + 1) / 2) + lower_e_limit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user