corrected off-by-one error when using E_MAX vlaues.

This commit is contained in:
Jan Bader
2021-04-14 14:44:32 +02:00
parent f56788f666
commit 9a967d5876

View File

@@ -59,13 +59,13 @@ double round_to_E_series (double continuous_value, ESeries E_series) {
int upper_e_limit = e_max_values;
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]) {
upper_e_limit = ((upper_e_limit - lower_e_limit + 1) / 2) + lower_e_limit - 1;
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;
}
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;
}
}