Warnings (was: Subsurface libdivecomputer branch merged with upstream..)

Berthold Stoeger bstoeger at mail.tuwien.ac.at
Sat Dec 16 04:26:03 PST 2017


On Freitag, 15. Dezember 2017 15:04:49 CET Lubomir I. Ivanov wrote:
> On 15 December 2017 at 11:24, Berthold Stoeger
> 
> <bstoeger at mail.tuwien.ac.at> wrote:
> > On Mittwoch, 13. Dezember 2017 23:34:32 CET Dirk Hohndel wrote:
> >> > On Dec 13, 2017, at 11:31 AM, Berthold Stoeger
> > 
> > Concerning the float warning, I have a patch that turns all float
> > calculations into double calculations sitting around for a few weeks. I
> > think float is like short: only to be used in very specific
> > circumstances. But I'll let the pros decide.
> 
> i would post the patch as a PR.
> 'float' is more like 'int' (32bit), so it's good to have a small data
> type with less precision and not always rely on 'double' or (64bit
> long).

>From a bit-representation point of view, this is correct. From a more abstract 
language point of view I rather get the impression that
 - short ~ float
 - int ~ double
 - long ~ long double
 - long long ~ unsupported  (is your FP algorithm numerically unstable?)
The reason being that floating point literals (e.g. 1.0) represent doubles. You 
have to actively force single-precision floating point calculations by writing 
things like "x * 1000.0f".

> as a rule of thumb on the "double vs float" topic:
> - the compiler *should* SSE-optimize a range of floats more easily
> - in terms of speed and the x87, it shouldn't matter that much
> - floats take less space in memory

Sure, but that's also arguments that apply to short vs. int. That's what I 
meant with specific circumstances.

Berthold



More information about the subsurface mailing list