Do the Boyle compensation when the gradient is needed

and not some time before and store the result in a global variable.

This stores only the bottom gradients and computes the Boyle compensation
when computing the allowed ambient pressure.

As the Boyle compensation needs a reference ambient pressure, to find the ceiling,
we have to iterate this computation until the reference pressure is close enough to
the ceiling.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Robert C. Helling 2015-08-31 22:15:43 +02:00 committed by Dirk Hohndel
parent 3a7109e44e
commit d9306125d9
4 changed files with 74 additions and 81 deletions

View file

@ -859,7 +859,6 @@ void calculate_deco_information(struct dive *dive, struct divecomputer *dc, stru
if ((t1 - j < time_stepsize) && (j < t1))
time_stepsize = t1 - j;
}
boyles_law(depth_to_mbar((entry->depth < (entry - 1)->ceiling) ? entry->depth : (entry - 1)->ceiling, &displayed_dive) / 1000.0);
if (t0 == t1)
entry->ceiling = (entry - 1)->ceiling;
else