mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-06 12:01:08 +03:00
math: Remove the SVID error handling wrapper from sqrt
i386 and m68k architectures should use math-use-builtins-sqrt.h rather than relying on architecture-specific or inline assembly implementations. The PowerPC optimization for PPC 601/603 (30 years old) is removed. Tested on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
This commit is contained in:
@@ -164,7 +164,7 @@ fabsf128 (_Float128 x)
|
|||||||
# define MATH_REDIRECT_UNARY_ARGS(TYPE) TYPE
|
# define MATH_REDIRECT_UNARY_ARGS(TYPE) TYPE
|
||||||
# define MATH_REDIRECT_BINARY_ARGS(TYPE) TYPE, TYPE
|
# define MATH_REDIRECT_BINARY_ARGS(TYPE) TYPE, TYPE
|
||||||
# define MATH_REDIRECT_TERNARY_ARGS(TYPE) TYPE, TYPE, TYPE
|
# define MATH_REDIRECT_TERNARY_ARGS(TYPE) TYPE, TYPE, TYPE
|
||||||
MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS)
|
MATH_REDIRECT (sqrt, "__", MATH_REDIRECT_UNARY_ARGS)
|
||||||
MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS)
|
MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS)
|
||||||
MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS)
|
MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS)
|
||||||
MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS)
|
MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS)
|
||||||
|
|||||||
@@ -700,6 +700,7 @@ libm {
|
|||||||
remainder;
|
remainder;
|
||||||
remainderf;
|
remainderf;
|
||||||
sinhf;
|
sinhf;
|
||||||
|
sqrtf;
|
||||||
y0f;
|
y0f;
|
||||||
y1f;
|
y1f;
|
||||||
ynf;
|
ynf;
|
||||||
|
|||||||
@@ -22,15 +22,15 @@
|
|||||||
#include <libm-alias-float.h>
|
#include <libm-alias-float.h>
|
||||||
|
|
||||||
|
|
||||||
#if LIBM_SVID_COMPAT
|
#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
|
||||||
/* wrapper sqrtf */
|
/* wrapper sqrtf */
|
||||||
float
|
float
|
||||||
__sqrtf (float x)
|
__sqrtf_svid (float x)
|
||||||
{
|
{
|
||||||
if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
|
if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
|
||||||
return __kernel_standard_f (x, x, 126); /* sqrt(negative) */
|
return __kernel_standard_f (x, x, 126); /* sqrt(negative) */
|
||||||
|
|
||||||
return __ieee754_sqrtf (x);
|
return __sqrtf (x);
|
||||||
}
|
}
|
||||||
libm_alias_float (__sqrt, sqrt)
|
compat_symbol (libm, __sqrtf_svid, sqrtf, GLIBC_2_0);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
#include <sysdeps/ieee754/flt-32/e_sqrtf.c>
|
#include <sysdeps/ieee754/flt-32/e_sqrtf.c>
|
||||||
|
|
||||||
#if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
|
#if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
|
||||||
strong_alias (__ieee754_sqrtf, __sqrtf_finite_2_18)
|
strong_alias (__sqrtf, __sqrtf_finite_2_18)
|
||||||
compat_symbol (libm, __sqrtf_finite_2_18, __sqrtf_finite, GLIBC_2_18);
|
compat_symbol (libm, __sqrtf_finite_2_18, __sqrtf_finite, GLIBC_2_18);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
/*
|
|
||||||
* Public domain.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <machine/asm.h>
|
|
||||||
#include <libm-alias-finite.h>
|
|
||||||
|
|
||||||
ENTRY(__ieee754_sqrtf)
|
|
||||||
flds 4(%esp)
|
|
||||||
fsqrt
|
|
||||||
ret
|
|
||||||
END (__ieee754_sqrtf)
|
|
||||||
libm_alias_finite (__ieee754_sqrtf, __sqrtf)
|
|
||||||
4
sysdeps/i386/fpu/math-use-builtins-sqrt.h
Normal file
4
sysdeps/i386/fpu/math-use-builtins-sqrt.h
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#define USE_SQRT_BUILTIN 1
|
||||||
|
#define USE_SQRTF_BUILTIN 1
|
||||||
|
#define USE_SQRTL_BUILTIN 0
|
||||||
|
#define USE_SQRTF128_BUILTIN 0
|
||||||
@@ -12,81 +12,103 @@
|
|||||||
* ====================================================
|
* ====================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* The internal alias to avoid PLT calls interfere with the default
|
||||||
|
symbol alias for !LIBM_SVID_COMPAT. */
|
||||||
|
#define sqrtf __redirect_sqrtf
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <math_private.h>
|
#undef sqrtf
|
||||||
#include <libm-alias-finite.h>
|
#include <libm-alias-finite.h>
|
||||||
|
#include <libm-alias-float.h>
|
||||||
|
#include <math-svid-compat.h>
|
||||||
#include <math-use-builtins.h>
|
#include <math-use-builtins.h>
|
||||||
|
#include "math_config.h"
|
||||||
|
|
||||||
float
|
float
|
||||||
__ieee754_sqrtf(float x)
|
__sqrtf (float x)
|
||||||
{
|
{
|
||||||
#if USE_SQRTF_BUILTIN
|
#if USE_SQRTF_BUILTIN
|
||||||
return __builtin_sqrtf (x);
|
if (__glibc_unlikely (isless (x, 0.0f)))
|
||||||
|
return __math_invalidf (x);
|
||||||
|
return __builtin_sqrtf (x);
|
||||||
#else
|
#else
|
||||||
/* Use generic implementation. */
|
/* Use generic implementation. */
|
||||||
float z;
|
float z;
|
||||||
int32_t sign = (int)0x80000000;
|
int32_t sign = (int) 0x80000000;
|
||||||
int32_t ix,s,q,m,t,i;
|
int32_t ix, s, q, m, t, i;
|
||||||
uint32_t r;
|
uint32_t r;
|
||||||
|
|
||||||
GET_FLOAT_WORD(ix,x);
|
ix = asuint (x);
|
||||||
|
|
||||||
/* take care of Inf and NaN */
|
/* take care of Inf and NaN */
|
||||||
if((ix&0x7f800000)==0x7f800000) {
|
if ((ix & 0x7f800000) == 0x7f800000)
|
||||||
return x*x+x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
|
{
|
||||||
sqrt(-inf)=sNaN */
|
if (ix == 0xff800000)
|
||||||
}
|
return __math_invalidf (0.0f);
|
||||||
/* take care of zero */
|
return x * x + x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
|
||||||
if(ix<=0) {
|
sqrt(-inf)=sNaN */
|
||||||
if((ix&(~sign))==0) return x;/* sqrt(+-0) = +-0 */
|
}
|
||||||
else if(ix<0)
|
/* take care of zero */
|
||||||
return (x-x)/(x-x); /* sqrt(-ve) = sNaN */
|
if (ix <= 0)
|
||||||
}
|
{
|
||||||
/* normalize x */
|
if ((ix & (~sign)) == 0)
|
||||||
m = (ix>>23);
|
return x; /* sqrt(+-0) = +-0 */
|
||||||
if(m==0) { /* subnormal x */
|
else if (ix < 0)
|
||||||
for(i=0;(ix&0x00800000)==0;i++) ix<<=1;
|
return __math_invalidf (0.0f); /* sqrt(-ve) = sNaN */
|
||||||
m -= i-1;
|
}
|
||||||
}
|
/* normalize x */
|
||||||
m -= 127; /* unbias exponent */
|
m = (ix >> 23);
|
||||||
ix = (ix&0x007fffff)|0x00800000;
|
if (m == 0)
|
||||||
if(m&1) /* odd m, double x to make it even */
|
{ /* subnormal x */
|
||||||
ix += ix;
|
for (i = 0; (ix & 0x00800000) == 0; i++)
|
||||||
m >>= 1; /* m = [m/2] */
|
ix <<= 1;
|
||||||
|
m -= i - 1;
|
||||||
|
}
|
||||||
|
m -= 127; /* unbias exponent */
|
||||||
|
ix = (ix & 0x007fffff) | 0x00800000;
|
||||||
|
if (m & 1) /* odd m, double x to make it even */
|
||||||
|
ix += ix;
|
||||||
|
m >>= 1; /* m = [m/2] */
|
||||||
|
|
||||||
/* generate sqrt(x) bit by bit */
|
/* generate sqrt(x) bit by bit */
|
||||||
ix += ix;
|
ix += ix;
|
||||||
q = s = 0; /* q = sqrt(x) */
|
q = s = 0; /* q = sqrt(x) */
|
||||||
r = 0x01000000; /* r = moving bit from right to left */
|
r = 0x01000000; /* r = moving bit from right to left */
|
||||||
|
|
||||||
while(r!=0) {
|
while (r != 0)
|
||||||
t = s+r;
|
{
|
||||||
if(t<=ix) {
|
t = s + r;
|
||||||
s = t+r;
|
if (t <= ix)
|
||||||
ix -= t;
|
{
|
||||||
q += r;
|
s = t + r;
|
||||||
}
|
ix -= t;
|
||||||
ix += ix;
|
q += r;
|
||||||
r>>=1;
|
|
||||||
}
|
}
|
||||||
|
ix += ix;
|
||||||
|
r >>= 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* use floating add to find out rounding direction */
|
/* use floating add to find out rounding direction */
|
||||||
if(ix!=0) {
|
if (ix != 0)
|
||||||
z = 0x1p0f - 0x1.4484cp-100f; /* trigger inexact flag. */
|
{
|
||||||
if (z >= 0x1p0f) { /* rounding to nearest or upward */
|
z = 0x1p0 - 0x1.4484cp-100; /* trigger inexact flag. */
|
||||||
z = 0x1p0f + 0x1.4484cp-100f;
|
if (z >= 0x1p0)
|
||||||
if (z > 0x1p0f) /* rounding upward */
|
{
|
||||||
q += 2;
|
z = 0x1p0 + 0x1.4484cp-100;
|
||||||
else
|
if (z > 0x1p0)
|
||||||
q += (q&1);
|
q += 2;
|
||||||
}
|
else
|
||||||
|
q += (q & 1);
|
||||||
}
|
}
|
||||||
ix = (q>>1)+0x3f000000;
|
}
|
||||||
ix += (m <<23);
|
ix = (q >> 1) + 0x3f000000;
|
||||||
SET_FLOAT_WORD(z,ix);
|
ix += (m << 23);
|
||||||
return z;
|
return asfloat (ix);
|
||||||
#endif /* ! USE_SQRTF_BUILTIN */
|
#endif /* ! USE_SQRTF_BUILTIN */
|
||||||
}
|
}
|
||||||
#ifndef __ieee754_sqrtf
|
libm_alias_finite (__sqrtf, __sqrtf)
|
||||||
libm_alias_finite (__ieee754_sqrtf, __sqrtf)
|
#if LIBM_SVID_COMPAT
|
||||||
|
versioned_symbol (libm, __sqrtf, sqrtf, GLIBC_2_43);
|
||||||
|
libm_alias_float_other (__sqrt, sqrt)
|
||||||
|
#else
|
||||||
|
libm_alias_float (__sqrt, sqrt)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
1
sysdeps/ieee754/flt-32/w_sqrtf.c
Normal file
1
sysdeps/ieee754/flt-32/w_sqrtf.c
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/* Not needed */
|
||||||
4
sysdeps/m68k/fpu/math-use-builtins-sqrt.h
Normal file
4
sysdeps/m68k/fpu/math-use-builtins-sqrt.h
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#define USE_SQRT_BUILTIN 1
|
||||||
|
#define USE_SQRTF_BUILTIN 1
|
||||||
|
#define USE_SQRTL_BUILTIN 0
|
||||||
|
#define USE_SQRTF128_BUILTIN 0
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#define FUNC __ieee754_sqrtf
|
|
||||||
#define FUNC_FINITE __sqrtf
|
|
||||||
#include <e_acosf.c>
|
|
||||||
@@ -1331,6 +1331,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
/* Single-precision floating point square root.
|
|
||||||
Copyright (C) 1997-2025 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, see
|
|
||||||
<https://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
#include <math_private.h>
|
|
||||||
#include <fenv_libc.h>
|
|
||||||
#include <libm-alias-finite.h>
|
|
||||||
#include <math-use-builtins.h>
|
|
||||||
|
|
||||||
float
|
|
||||||
__ieee754_sqrtf (float x)
|
|
||||||
{
|
|
||||||
#if USE_SQRTF_BUILTIN
|
|
||||||
return __builtin_sqrtf (x);
|
|
||||||
#else
|
|
||||||
/* The method is based on a description in
|
|
||||||
Computation of elementary functions on the IBM RISC System/6000 processor,
|
|
||||||
P. W. Markstein, IBM J. Res. Develop, 34(1) 1990.
|
|
||||||
Basically, it consists of two interleaved Newton-Raphson approximations,
|
|
||||||
one to find the actual square root, and one to find its reciprocal
|
|
||||||
without the expense of a division operation. The tricky bit here
|
|
||||||
is the use of the POWER/PowerPC multiply-add operation to get the
|
|
||||||
required accuracy with high speed.
|
|
||||||
|
|
||||||
The argument reduction works by a combination of table lookup to
|
|
||||||
obtain the initial guesses, and some careful modification of the
|
|
||||||
generated guesses (which mostly runs on the integer unit, while the
|
|
||||||
Newton-Raphson is running on the FPU). */
|
|
||||||
|
|
||||||
extern const float __t_sqrt[1024];
|
|
||||||
|
|
||||||
if (x > 0)
|
|
||||||
{
|
|
||||||
if (x != INFINITY)
|
|
||||||
{
|
|
||||||
/* Variables named starting with 's' exist in the
|
|
||||||
argument-reduced space, so that 2 > sx >= 0.5,
|
|
||||||
1.41... > sg >= 0.70.., 0.70.. >= sy > 0.35... .
|
|
||||||
Variables named ending with 'i' are integer versions of
|
|
||||||
floating-point values. */
|
|
||||||
float sx; /* The value of which we're trying to find the square
|
|
||||||
root. */
|
|
||||||
float sg, g; /* Guess of the square root of x. */
|
|
||||||
float sd, d; /* Difference between the square of the guess and x. */
|
|
||||||
float sy; /* Estimate of 1/2g (overestimated by 1ulp). */
|
|
||||||
float sy2; /* 2*sy */
|
|
||||||
float e; /* Difference between y*g and 1/2 (note that e==se). */
|
|
||||||
float shx; /* == sx * fsg */
|
|
||||||
float fsg; /* sg*fsg == g. */
|
|
||||||
fenv_t fe; /* Saved floating-point environment (stores rounding
|
|
||||||
mode and whether the inexact exception is
|
|
||||||
enabled). */
|
|
||||||
uint32_t xi, sxi, fsgi;
|
|
||||||
const float *t_sqrt;
|
|
||||||
|
|
||||||
GET_FLOAT_WORD (xi, x);
|
|
||||||
fe = fegetenv_register ();
|
|
||||||
relax_fenv_state ();
|
|
||||||
sxi = (xi & 0x3fffffff) | 0x3f000000;
|
|
||||||
SET_FLOAT_WORD (sx, sxi);
|
|
||||||
t_sqrt = __t_sqrt + (xi >> (23 - 8 - 1) & 0x3fe);
|
|
||||||
sg = t_sqrt[0];
|
|
||||||
sy = t_sqrt[1];
|
|
||||||
|
|
||||||
/* Here we have three Newton-Raphson iterations each of a
|
|
||||||
division and a square root and the remainder of the
|
|
||||||
argument reduction, all interleaved. */
|
|
||||||
sd = -__builtin_fmaf (sg, sg, -sx);
|
|
||||||
fsgi = (xi + 0x40000000) >> 1 & 0x7f800000;
|
|
||||||
sy2 = sy + sy;
|
|
||||||
sg = __builtin_fmaf (sy, sd, sg); /* 16-bit approximation to
|
|
||||||
sqrt(sx). */
|
|
||||||
e = -__builtin_fmaf (sy, sg, -0x1.0000020365653p-1);
|
|
||||||
SET_FLOAT_WORD (fsg, fsgi);
|
|
||||||
sd = -__builtin_fmaf (sg, sg, -sx);
|
|
||||||
sy = __builtin_fmaf (e, sy2, sy);
|
|
||||||
if ((xi & 0x7f800000) == 0)
|
|
||||||
goto denorm;
|
|
||||||
shx = sx * fsg;
|
|
||||||
sg = __builtin_fmaf (sy, sd, sg); /* 32-bit approximation to
|
|
||||||
sqrt(sx), but perhaps
|
|
||||||
rounded incorrectly. */
|
|
||||||
sy2 = sy + sy;
|
|
||||||
g = sg * fsg;
|
|
||||||
e = -__builtin_fmaf (sy, sg, -0x1.0000020365653p-1);
|
|
||||||
d = -__builtin_fmaf (g, sg, -shx);
|
|
||||||
sy = __builtin_fmaf (e, sy2, sy);
|
|
||||||
fesetenv_register (fe);
|
|
||||||
return __builtin_fmaf (sy, d, g);
|
|
||||||
denorm:
|
|
||||||
/* For denormalised numbers, we normalise, calculate the
|
|
||||||
square root, and return an adjusted result. */
|
|
||||||
fesetenv_register (fe);
|
|
||||||
return __ieee754_sqrtf (x * 0x1p+48) * 0x1p-24;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (x < 0)
|
|
||||||
{
|
|
||||||
/* For some reason, some PowerPC32 processors don't implement
|
|
||||||
FE_INVALID_SQRT. */
|
|
||||||
# ifdef FE_INVALID_SQRT
|
|
||||||
feraiseexcept (FE_INVALID_SQRT);
|
|
||||||
|
|
||||||
fenv_union_t u = { .fenv = fegetenv_register () };
|
|
||||||
if ((u.l & FE_INVALID) == 0)
|
|
||||||
# endif
|
|
||||||
feraiseexcept (FE_INVALID);
|
|
||||||
x = NAN;
|
|
||||||
}
|
|
||||||
return f_washf (x);
|
|
||||||
#endif /* USE_SQRTF_BUILTIN */
|
|
||||||
}
|
|
||||||
libm_alias_finite (__ieee754_sqrtf, __sqrtf)
|
|
||||||
@@ -1297,6 +1297,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1456,6 +1456,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1338,6 +1338,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -994,6 +994,7 @@ GLIBC_2.43 j1f F
|
|||||||
GLIBC_2.43 jnf F
|
GLIBC_2.43 jnf F
|
||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1297,6 +1297,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1109,6 +1109,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1108,6 +1108,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1102,6 +1102,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1486,6 +1486,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1400,6 +1400,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1400,6 +1400,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1407,6 +1407,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1297,6 +1297,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1330,6 +1330,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
@@ -1330,6 +1330,7 @@ GLIBC_2.43 log10f F
|
|||||||
GLIBC_2.43 remainder F
|
GLIBC_2.43 remainder F
|
||||||
GLIBC_2.43 remainderf F
|
GLIBC_2.43 remainderf F
|
||||||
GLIBC_2.43 sinhf F
|
GLIBC_2.43 sinhf F
|
||||||
|
GLIBC_2.43 sqrtf F
|
||||||
GLIBC_2.43 y0f F
|
GLIBC_2.43 y0f F
|
||||||
GLIBC_2.43 y1f F
|
GLIBC_2.43 y1f F
|
||||||
GLIBC_2.43 ynf F
|
GLIBC_2.43 ynf F
|
||||||
|
|||||||
Reference in New Issue
Block a user