csqrtl.c revision ddc0e0b53c661f6e439e3b7072b3ef353eadb4af
2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 2N/A * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/Astatic const long double 2N/A twom9001 =
2.6854002716003034957421765100615693043656e-2710L,
2N/A twom4500 =
2.3174987687592429423263242862381544149252e-1355L,
2N/A two8999 =
9.3095991180122343502582347372163290310934e+2708L,
2N/A two4500 =
4.3149968987270974283777803545571722250806e+1354L,
2N/A if (
ix >=
0x7fff0000 ||
iy >=
0x7fff0000) {
2N/A /* x or y is Inf or NaN */ 2N/A#
if defined(
__x86)
/* 64 significant bits */ 2N/A#
else /* 113 significant bits */ 2N/A else if (
ix >=
0x5f3f0000) {
/* x > 2**8000 */ 2N/A }
else if (
iy <=
0x20bf0000) {
/* y < 2**-8000 */ 2N/A#
if defined(
__x86)
/* 64 significant bits */ 2N/A if (n >=
35) {
/* } */ 2N/A#
else /* 113 significant bits */ 2N/A else if (
iy >=
0x7ffe0000)
2N/A else if (
ix <=
0x00010000)
2N/A }
else if (
iy >=
0x5f3f0000) {
/* y > 2**8000 */ 2N/A }
else if (
ix <=
0x20bf0000) {