Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <F518F36D-C58E-4E76-BE05-7142255B9FAF@trust-in-soft.com>
Date: Sat, 31 Aug 2019 12:25:08 +0000
From: Pascal Cuoq <cuoq@...st-in-soft.com>
To: "musl@...ts.openwall.com" <musl@...ts.openwall.com>
Subject: Re: Looking for a libm suitable for float128 (using softfloat
 or softfp)


> On 31 Aug 2019, at 13:33, ardi <ardillasdelmonte@...il.com> wrote:
> 
> Hi,
> 
> I'm looking for a software implementation of libm that can deal with
> the IEEE float128 (float128 as implemented by either the John Hauser's
> softfloat or Fabrice Bellard's softfp libraries).
> 
> Looking at the musl source in src/math it certainly implements long
> double versions of all libm functions, and it seems that the source
> code makes checks to confirm whether to use the Intel 80bit long
> double, or a 128bit long double, so, at first glance I think musl
> could be a great choice for this task.

As far as I know, most functions are not implemented for binary128 in musl.

Yes, there are long double version of everything and #ifdefs for the cases where long double is binary64, double-extended or binary128, but binary128 is not actually implemented. In most cases you will be worse off than if you had opted for double-extended:

https://git.musl-libc.org/cgit/musl/tree/src/math/powl.c?id=6ad514e4e278f0c3b18eb2db1d45638c9af1c07f#n517

#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
// TODO: broken implementation to make things compile
long double powl(long double x, long double y)
{
	return pow(x, y);
}
#endif


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.