On Fri, Oct 15, 2021 at 08:05:38PM +0200, Thomas Koenig wrote: > > with -mabi=ibmlongdouble, I see 31 and 291, while with -mabi=ieeelongdouble > > 33 and 4931. The 0.0_8 precision/range values are 15 and 307, so neither > > precision of C long double if it is double-double nor range matches > > anything. > > If we do implement double-double support, I think KIND=15 would be better > > than KIND=17, it is true that double-double has for certain numbers much > > higher precision than IEEE quad, but the precision depends on the numbers > > and most of the time is smaller, the range is always smaller. And > > the PRECISION/RANGE intrinsic numbers are also both smaller. > > There is one potential problem: selected_real_kind. > > The standard says about that... > > # If more than one kind type parameter value meets the criteria, the > # value returned is the one with the smallest decimal precision, unless > # there are several such values, in which case the smallest of these > # kind values is returned > > So, selected_real_kind(25) would yield double double, and we would > have to violate the standard there if we wanted people to have > IEEE QP in that case.
That would be true if some kind exist for double double, whether it is kind == 15 or kind == 17, no? Because precision (0.0_double_double_kind) < precision (0.0_ieee_quad_kind) so the "smallest of the kind values" doesn't trigger. Jakub