From owner-freebsd-current@FreeBSD.ORG Mon May 28 22:17:31 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D0E55106566C for ; Mon, 28 May 2012 22:17:31 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) by mx1.freebsd.org (Postfix) with ESMTP id 8AF5E8FC14 for ; Mon, 28 May 2012 22:17:31 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost.apl.washington.edu [127.0.0.1]) by troutmask.apl.washington.edu (8.14.5/8.14.5) with ESMTP id q4SMHVuW076919; Mon, 28 May 2012 15:17:31 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.5/8.14.5/Submit) id q4SMHV8w076918; Mon, 28 May 2012 15:17:31 -0700 (PDT) (envelope-from sgk) Date: Mon, 28 May 2012 15:17:31 -0700 From: Steve Kargl To: Stephen Montgomery-Smith Message-ID: <20120528221731.GA76723@troutmask.apl.washington.edu> References: <4FC30090.4070003@gwdg.de> <4D8CF7D2-CBEE-438E-A9E7-9C47A8892622@FreeBSD.org> <4FC36FE1.9080908@gwdg.de> <4FC38B81.6000302@gwdg.de> <4FC3A154.8030702@missouri.edu> <20120528203159.GA76340@troutmask.apl.washington.edu> <4FC3EBDA.2080502@missouri.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4FC3EBDA.2080502@missouri.edu> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current@freebsd.org Subject: Re: Use of C99 extra long double math functions after r236148 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 May 2012 22:17:31 -0000 On Mon, May 28, 2012 at 04:19:22PM -0500, Stephen Montgomery-Smith wrote: > On 05/28/2012 03:31 PM, Steve Kargl wrote: > >On Mon, May 28, 2012 at 11:01:24AM -0500, Stephen Montgomery-Smith wrote: > >>One thing that could be done is to have a "math/cephes" port that adds > >>the extra C99 math functions. This is already done in the math/sage > >>port, using a rather clever patch due to Peter Jeremy, that applies to > >>the cephes code. > >> > >>What it would do is to create a /usr/local/lib/libm.so that would > >>provide the extra functions not currently included in /lib/libm.so, and > >>then link in /lib/libm.so as well. It would also create its own > >>/usr/local/include/math.h and /usr/local/include/complex.h as well. > >> > >>What do you guys think? Do you want someone to start experimenting with > >>this idea? I could do it, but probably not for a little while. > >> > > > >This is a horrible, horrible, horrible idea. Have you > >looked at the cephes code, particularly the complex.h > >functions? > > I have only taken a very cursory look. What should I specifically look > for in seeing that the code is bad? Well, to start with, the extra C99 math functions that are missing in libm include a few for the long double type and many (if not most) of the complex functions for any type. Cephes at best will give you float, double, and ld80, but not ld128 versions of the functions. Then, there is fun little fact that neither (base) gcc nor clang nor gcc less than 4.6 does complex arithematic correctly; so, one needs to jump through hoops to get the correct answer (See Annex G in n1256.pdf). One item of particular importance in Annex G is the behavior of the functions for Re(z) and/or Im(z) being +-0, +-Inf, and NaN. -- Steve