From owner-cvs-src@FreeBSD.ORG Thu Aug 7 14:40:01 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17E0C106566C; Thu, 7 Aug 2008 14:40:01 +0000 (UTC) (envelope-from das@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 03FB48FC1B; Thu, 7 Aug 2008 14:40:01 +0000 (UTC) (envelope-from das@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m77Ee093057170; Thu, 7 Aug 2008 14:40:00 GMT (envelope-from das@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m77Ee0mA057169; Thu, 7 Aug 2008 14:40:00 GMT (envelope-from das@repoman.freebsd.org) Message-Id: <200808071440.m77Ee0mA057169@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to das@repoman.freebsd.org using -f From: David Schultz Date: Thu, 7 Aug 2008 14:39:56 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/msun/src s_cimag.c s_cimagf.c s_cimagl.c s_conj.c s_conjf.c s_conjl.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2008 14:40:01 -0000 das 2008-08-07 14:39:56 UTC FreeBSD src repository Modified files: lib/msun/src s_cimag.c s_cimagf.c s_cimagl.c s_conj.c s_conjf.c s_conjl.c Log: SVN rev 181374 on 2008-08-07 14:39:56Z by das Use cpack() and the gcc extension __imag__ to implement cimag() and conj() instead of using expressions like z * I. The latter is bad for several reasons: 1. It is implemented using arithmetic, which is unnecessary, and can generate floating point exceptions, contrary to the requirements on these functions. 2. gcc implements complex multiplication using a formula that breaks down for infinities, e.g., it gives INFINITY * I == nan + inf I. Revision Changes Path 1.2 +2 -1 src/lib/msun/src/s_cimag.c 1.2 +2 -1 src/lib/msun/src/s_cimagf.c 1.2 +2 -1 src/lib/msun/src/s_cimagl.c 1.2 +4 -1 src/lib/msun/src/s_conj.c 1.2 +4 -1 src/lib/msun/src/s_conjf.c 1.2 +4 -1 src/lib/msun/src/s_conjl.c