0N/A * The contents of this file are subject to the terms of the 0N/A * Common Development and Distribution License (the "License"). 0N/A * You may not use this file except in compliance with the License. 0N/A * See the License for the specific language governing permissions 0N/A * and limitations under the License. 0N/A * When distributing Covered Code, include this CDDL HEADER in each 0N/A * If applicable, add the following below this CDDL HEADER, with the 0N/A * fields enclosed by brackets "[]" replaced with your own identifying 0N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2362N/A * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 0N/A * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 0N/A * Use is subject to license terms. 0N/Astatic const double two52 =
4503599627370496.0;
2157N/A * v: high part of a non-zero subnormal |x|; w: low part of |x| return (r + ((
0xffffaa50 >> v) &
0x3));
#
endif /* defined(__x86) */ int *
px = (
int *) &x, k =
px[
HIWORD] & ~
0x80000000;
return ((
double) (((
px[
HIWORD] &
0x7ff00000) >>
20)
}
else if (k <
0x7ff00000)
return ((
double) ((k >>
20) -
1023));