mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Fix cylinder air size calculations
Commit 90d3c5614a
("Centralising and redefining values as integers")
broke SAC-rate calculations. In particular, it changed "to_ATM()": to
use the centralized SURFACE_PRESSURE helper define, but in the process
it changed a floating point calculation to an integer calculation, and
it threw away all the fractional details. Any user of "to_ATM()"
basically dropped to an accuracy of a single atmosphere.
The good news is that we didn't use to_ATM() for things like depth
calculations, but only for cylinder pressures. As a result, the error
ends up being relatively small, since the pressures involved are big,
and thus the error of rounding to whole atmospheres is usually in the
1% range. The cylinder sizing tends to be off by more than that
anyway. But it was wrong, and not intentional.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7b20fb826c
commit
d753805542
1 changed files with 1 additions and 1 deletions
2
dive.h
2
dive.h
|
@ -205,7 +205,7 @@ static inline double bar_to_atm(double bar)
|
|||
|
||||
static inline double to_ATM(pressure_t pressure)
|
||||
{
|
||||
return pressure.mbar / SURFACE_PRESSURE;
|
||||
return pressure.mbar / (double) SURFACE_PRESSURE;
|
||||
}
|
||||
|
||||
static inline int mbar_to_PSI(int mbar)
|
||||
|
|
Loading…
Add table
Reference in a new issue