Quad precision

Hi all,
Is there a data type in ROOT that supports quad precision arithmetic? I seem to recall a type like LongDouble64_t, but can’t seem to find it. Perhaps it was a pleasant dream…

Many Thanks!

Hi,

No we don’t have that; the need for it is fairly rare in our environment - and we are scared of the performance implications of wide-spread adoption :slight_smile:

But there are (also open source) quad precision libraries out there; at least with ROOT 6 they would work flawlessly with ROOT.

Cheers, Axel.

I hear you on performance. Although with modern vector methods (e.g. Intel AVX… ) this might be minimized. W.r.t. environment, phase space calculations are often divergent at a given order, only to be canceled at next order. Something that begs for higher precision…

Thanks for the quick response!

Hi,

O yeah I’m aware of the need for quad prec math out there, e.g. in simulation! But in experimental HEP it should usually be avoided - we don’t trust our measurements to that extent anyway :slight_smile:

Cheers, Axel.

Quad precision measurement sure would be one heck of a measurement! :astonished:

Any particular suggestions for a library? Looking at boost for the moment, but maybe you can recommend something better?

Thanks again!

Hi,

Well there are also “traditional” libraries, e.g. at crd-legacy.lbl.gov/~dhbailey/mpdist/

I am not an expert in this field. I know that software in lattice QCD use boost only rarely.

Cheers, Axel.

Thanks. Looking at these options. I also found a great package called SoftFloat which is very nice–straight C and seems to be able to use vector instructions like SSE. In case you’re interested.

Hi,

Sounds good, thanks for sharing!

Axel.