From owner-freebsd-numerics@FreeBSD.ORG Sun Aug 12 18:05:56 2012 Return-Path: Delivered-To: freebsd-numerics@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 91816106566B for ; Sun, 12 Aug 2012 18:05:56 +0000 (UTC) (envelope-from stephen@missouri.edu) Received: from wilberforce.math.missouri.edu (wilberforce.math.missouri.edu [128.206.184.213]) by mx1.freebsd.org (Postfix) with ESMTP id 5350B8FC0A for ; Sun, 12 Aug 2012 18:05:56 +0000 (UTC) Received: from [127.0.0.1] (wilberforce.math.missouri.edu [128.206.184.213]) by wilberforce.math.missouri.edu (8.14.5/8.14.5) with ESMTP id q7CI5n7n002623 for ; Sun, 12 Aug 2012 13:05:49 -0500 (CDT) (envelope-from stephen@missouri.edu) Message-ID: <5027F07E.9060409@missouri.edu> Date: Sun, 12 Aug 2012 13:05:50 -0500 From: Stephen Montgomery-Smith User-Agent: Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20120714 Thunderbird/14.0 MIME-Version: 1.0 To: freebsd-numerics@freebsd.org References: <5017111E.6060003@missouri.edu> <501C361D.4010807@missouri.edu> <20120804165555.X1231@besplex.bde.org> <501D51D7.1020101@missouri.edu> <20120805030609.R3101@besplex.bde.org> <501D9C36.2040207@missouri.edu> <20120805175106.X3574@besplex.bde.org> <501EC015.3000808@missouri.edu> <20120805191954.GA50379@troutmask.apl.washington.edu> <20120807205725.GA10572@server.rulingia.com> <20120809025220.N4114@besplex.bde.org> In-Reply-To: <20120809025220.N4114@besplex.bde.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: Complex arg-trig functions X-BeenThere: freebsd-numerics@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of high quality implementation of libm functions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Aug 2012 18:05:56 -0000 Having brooded over the code for too many weeks, I now think I have finished my complex arg-trig functions. I have also written versions for float and long. So I am ready to have the code reviewed. http://people.freebsd.org/~stephen/ The long versions require a logl and a log1pl, which I faked using mpfr. The float versions are more complicated, because FLT_EPSILON is too close to the 4th root of FLT_MIN. It is simpler to make the float versions wrappers for the double versions. But I wrote the float versions anyway, just in case some purist insists that the wrapper approach is morally wrong.