Print this page
5261 libm should stop using synonyms.h
5298 fabs is 0-sized, confuses dis(1) and others
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Approved by: Gordon Ross <gwr@nexenta.com>


   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  23  */
  24 /*
  25  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  26  * Use is subject to license terms.
  27  */
  28 
  29 #pragma weak atan2f = __atan2f
  30 
  31 #include "libm.h"
  32 
  33 #if defined(__i386) && !defined(__amd64)
  34 extern int __swapRP(int);
  35 #endif
  36 
  37 /*
  38  * For i = 0, ..., 192, let x[i] be the double precision number whose
  39  * high order 32 bits are 0x3f900000 + (i << 16) and whose low order
  40  * 32 bits are zero.  Then TBL[i] := atan(x[i]) to double precision.
  41  */
  42 
  43 static const double TBL[] = {
  44         1.56237286204768313e-02,
  45         1.66000375562312640e-02,
  46         1.75763148444955872e-02,
  47         1.85525586258889763e-02,
  48         1.95287670414137082e-02,
  49         2.05049382324763683e-02,




   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  23  */
  24 /*
  25  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  26  * Use is subject to license terms.
  27  */
  28 
  29 #pragma weak __atan2f = atan2f
  30 
  31 #include "libm.h"
  32 
  33 #if defined(__i386) && !defined(__amd64)
  34 extern int __swapRP(int);
  35 #endif
  36 
  37 /*
  38  * For i = 0, ..., 192, let x[i] be the double precision number whose
  39  * high order 32 bits are 0x3f900000 + (i << 16) and whose low order
  40  * 32 bits are zero.  Then TBL[i] := atan(x[i]) to double precision.
  41  */
  42 
  43 static const double TBL[] = {
  44         1.56237286204768313e-02,
  45         1.66000375562312640e-02,
  46         1.75763148444955872e-02,
  47         1.85525586258889763e-02,
  48         1.95287670414137082e-02,
  49         2.05049382324763683e-02,