diff options
author | Robert C. Helling <helling@atdotde.de> | 2016-11-27 11:31:30 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-12-04 05:32:08 +0900 |
commit | f03acb9e9a2d6fae22be6288be13ce63fd4f50ea (patch) | |
tree | 5b4be4d5168073288a08ba418f391522e33985ce /core | |
parent | 4d0d37b6903a65ade442fece35238d1670522df2 (diff) | |
download | subsurface-f03acb9e9a2d6fae22be6288be13ce63fd4f50ea.tar.gz |
Fix effective GFs in notes
This patch fixes two bugs:
1) It first computes the effective gradient factors and then
composes the notes with the diveplan rather than the other way
around.
2) It does not try to fit a line through a single point.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/deco.c | 2 | ||||
-rw-r--r-- | core/planner.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/core/deco.c b/core/deco.c index 57acfe951..a445c2539 100644 --- a/core/deco.c +++ b/core/deco.c @@ -657,7 +657,7 @@ double get_gf(double ambpressure_bar, const struct dive *dive) double regressiona() { - if (sum1) { + if (sum1 > 1) { double avxy = sumxy / sum1; double avx = (double)sumx / sum1; double avy = sumy / sum1; diff --git a/core/planner.c b/core/planner.c index 488fcb9c4..ccb71c3ea 100644 --- a/core/planner.c +++ b/core/planner.c @@ -1362,15 +1362,15 @@ bool plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool } while (!is_final_plan); plan_add_segment(diveplan, clock - previous_point_time, 0, current_cylinder, po2, false); - create_dive_from_plan(diveplan, is_planner); - add_plan_to_notes(diveplan, &displayed_dive, show_disclaimer, error); - fixup_dc_duration(&displayed_dive.dc); - if(prefs.deco_mode == VPMB) { diveplan->eff_gfhigh = rint(100.0 * regressionb()); diveplan->eff_gflow = rint(100*(regressiona() * first_stop_depth + regressionb())); } + create_dive_from_plan(diveplan, is_planner); + add_plan_to_notes(diveplan, &displayed_dive, show_disclaimer, error); + fixup_dc_duration(&displayed_dive.dc); + free(stoplevels); free(gaschanges); free(bottom_cache); |