Date: Fri, 28 Dec 2012 19:19:07 -0800 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Stephen Montgomery-Smith <stephen@missouri.edu> Cc: freebsd-numerics@freebsd.org, Bruce Evans <brde@optusnet.com.au> Subject: Re: complex arc-trig etc Message-ID: <20121229031907.GA428@troutmask.apl.washington.edu> In-Reply-To: <50DE5474.1070900@missouri.edu> References: <50CE9D0C.8080901@missouri.edu> <20121217191324.T1277@besplex.bde.org> <50DE5474.1070900@missouri.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Dec 28, 2012 at 08:24:52PM -0600, Stephen Montgomery-Smith wrote: > On 12/17/2012 02:38 AM, Bruce Evans wrote: > > On Sun, 16 Dec 2012, Stephen Montgomery-Smith wrote: > > > >> Hey guys, my complex arc-trig functions at > >> http://people.freebsd.org/~stephen/ have been sitting there a long time. > >> Anyone want to commit them? > > > > I was sort of waiting for the next rounds of changes: > > > > 1. update the template to give similar code for float and long double > > 2. make it work for i386 using ENTERI() > > What is ENTERI()? > For 'long double' on i386, the precision is set to 53 bits in the kernel (see the file sys/x86/include/fpu.h). ENTERI() toggles the fpu control word to use 64 bits for long double and you use RETURNI() instead of 'return(val)' to return from the function. You can see these being used in msun/src/ld80/ s_expl.c. Also, note the ENTERI() and RETURNI() are defined in msun/src/math_private.h. Bruce can probably give a better explanation and the history. -- Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121229031907.GA428>