mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
ieee754: Remove unused __sin32 and __cos32
The __sin32 and __cos32 functions were only used in the now removed slow path of asin and acos.
This commit is contained in:
parent
f67f9c9af2
commit
69a7ca7705
@ -311,20 +311,6 @@ input that results in multiple precision computation with precision
|
|||||||
is the computed result.
|
is the computed result.
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
@deftp Probe slowasin (double @var{$arg1}, double @var{$arg2})
|
|
||||||
This probe is triggered when the @code{asin} function is called with
|
|
||||||
an input that results in multiple precision computation with precision
|
|
||||||
32. Argument @var{$arg1} is the input to the function and @var{$arg2}
|
|
||||||
is the computed result.
|
|
||||||
@end deftp
|
|
||||||
|
|
||||||
@deftp Probe slowacos (double @var{$arg1}, double @var{$arg2})
|
|
||||||
This probe is triggered when the @code{acos} function is called with
|
|
||||||
an input that results in multiple precision computation with precision
|
|
||||||
32. Argument @var{$arg1} is the input to the function and @var{$arg2}
|
|
||||||
is the computed result.
|
|
||||||
@end deftp
|
|
||||||
|
|
||||||
@deftp Probe slowsin (double @var{$arg1}, double @var{$arg2})
|
@deftp Probe slowsin (double @var{$arg1}, double @var{$arg2})
|
||||||
This probe is triggered when the @code{sin} function is called with an
|
This probe is triggered when the @code{sin} function is called with an
|
||||||
input that results in multiple precision computation with precision
|
input that results in multiple precision computation with precision
|
||||||
|
@ -202,8 +202,6 @@ extern int __branred (double __x, double *__a, double *__aa);
|
|||||||
extern void __doasin (double __x, double __dx, double __v[]);
|
extern void __doasin (double __x, double __dx, double __v[]);
|
||||||
extern void __dubsin (double __x, double __dx, double __v[]);
|
extern void __dubsin (double __x, double __dx, double __v[]);
|
||||||
extern void __dubcos (double __x, double __dx, double __v[]);
|
extern void __dubcos (double __x, double __dx, double __v[]);
|
||||||
extern double __sin32 (double __x, double __res, double __res1);
|
|
||||||
extern double __cos32 (double __x, double __res, double __res1);
|
|
||||||
extern double __mpsin (double __x, double __dx, bool __range_reduce);
|
extern double __mpsin (double __x, double __dx, bool __range_reduce);
|
||||||
extern double __mpcos (double __x, double __dx, bool __range_reduce);
|
extern double __mpcos (double __x, double __dx, bool __range_reduce);
|
||||||
extern void __docos (double __x, double __dx, double __v[]);
|
extern void __docos (double __x, double __dx, double __v[]);
|
||||||
|
@ -127,68 +127,6 @@ __c32 (mp_no *x, mp_no *y, mp_no *z, int p)
|
|||||||
__cpy (&s, z, p);
|
__cpy (&s, z, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Receive double x and two double results of sin(x) and return result which is
|
|
||||||
more accurate, computing sin(x) with multi precision routine c32. */
|
|
||||||
double
|
|
||||||
SECTION
|
|
||||||
__sin32 (double x, double res, double res1)
|
|
||||||
{
|
|
||||||
int p;
|
|
||||||
mp_no a, b, c;
|
|
||||||
p = 32;
|
|
||||||
__dbl_mp (res, &a, p);
|
|
||||||
__dbl_mp (0.5 * (res1 - res), &b, p);
|
|
||||||
__add (&a, &b, &c, p);
|
|
||||||
if (x > 0.8)
|
|
||||||
{
|
|
||||||
__sub (&hp, &c, &a, p);
|
|
||||||
__c32 (&a, &b, &c, p);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
__c32 (&c, &a, &b, p); /* b=sin(0.5*(res+res1)) */
|
|
||||||
__dbl_mp (x, &c, p); /* c = x */
|
|
||||||
__sub (&b, &c, &a, p);
|
|
||||||
/* if a > 0 return min (res, res1), otherwise return max (res, res1). */
|
|
||||||
if ((a.d[0] > 0 && res >= res1) || (a.d[0] <= 0 && res <= res1))
|
|
||||||
res = res1;
|
|
||||||
LIBC_PROBE (slowasin, 2, &res, &x);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Receive double x and two double results of cos(x) and return result which is
|
|
||||||
more accurate, computing cos(x) with multi precision routine c32. */
|
|
||||||
double
|
|
||||||
SECTION
|
|
||||||
__cos32 (double x, double res, double res1)
|
|
||||||
{
|
|
||||||
int p;
|
|
||||||
mp_no a, b, c;
|
|
||||||
p = 32;
|
|
||||||
__dbl_mp (res, &a, p);
|
|
||||||
__dbl_mp (0.5 * (res1 - res), &b, p);
|
|
||||||
__add (&a, &b, &c, p);
|
|
||||||
if (x > 2.4)
|
|
||||||
{
|
|
||||||
__sub (&pi, &c, &a, p);
|
|
||||||
__c32 (&a, &b, &c, p);
|
|
||||||
b.d[0] = -b.d[0];
|
|
||||||
}
|
|
||||||
else if (x > 0.8)
|
|
||||||
{
|
|
||||||
__sub (&hp, &c, &a, p);
|
|
||||||
__c32 (&a, &c, &b, p);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
__c32 (&c, &b, &a, p); /* b=cos(0.5*(res+res1)) */
|
|
||||||
__dbl_mp (x, &c, p); /* c = x */
|
|
||||||
__sub (&b, &c, &a, p);
|
|
||||||
/* if a > 0 return max (res, res1), otherwise return min (res, res1). */
|
|
||||||
if ((a.d[0] > 0 && res <= res1) || (a.d[0] <= 0 && res >= res1))
|
|
||||||
res = res1;
|
|
||||||
LIBC_PROBE (slowacos, 2, &res, &x);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute sin() of double-length number (X + DX) as Multi Precision number and
|
/* Compute sin() of double-length number (X + DX) as Multi Precision number and
|
||||||
return result as double. If REDUCE_RANGE is true, X is assumed to be the
|
return result as double. If REDUCE_RANGE is true, X is assumed to be the
|
||||||
original input and DX is ignored. */
|
original input and DX is ignored. */
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
#define __ieee754_acos __ieee754_acos_fma
|
#define __ieee754_acos __ieee754_acos_fma
|
||||||
#define __ieee754_asin __ieee754_asin_fma
|
#define __ieee754_asin __ieee754_asin_fma
|
||||||
#define __cos32 __cos32_fma
|
|
||||||
#define __doasin __doasin_fma
|
#define __doasin __doasin_fma
|
||||||
#define __docos __docos_fma
|
#define __docos __docos_fma
|
||||||
#define __dubcos __dubcos_fma
|
#define __dubcos __dubcos_fma
|
||||||
#define __dubsin __dubsin_fma
|
#define __dubsin __dubsin_fma
|
||||||
#define __sin32 __sin32_fma
|
|
||||||
#define SECTION __attribute__ ((section (".text.fma")))
|
#define SECTION __attribute__ ((section (".text.fma")))
|
||||||
|
|
||||||
#include <sysdeps/ieee754/dbl-64/e_asin.c>
|
#include <sysdeps/ieee754/dbl-64/e_asin.c>
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
#define __ieee754_acos __ieee754_acos_fma4
|
#define __ieee754_acos __ieee754_acos_fma4
|
||||||
#define __ieee754_asin __ieee754_asin_fma4
|
#define __ieee754_asin __ieee754_asin_fma4
|
||||||
#define __cos32 __cos32_fma4
|
|
||||||
#define __doasin __doasin_fma4
|
#define __doasin __doasin_fma4
|
||||||
#define __docos __docos_fma4
|
#define __docos __docos_fma4
|
||||||
#define __dubcos __dubcos_fma4
|
#define __dubcos __dubcos_fma4
|
||||||
#define __dubsin __dubsin_fma4
|
#define __dubsin __dubsin_fma4
|
||||||
#define __sin32 __sin32_fma4
|
|
||||||
#define SECTION __attribute__ ((section (".text.fma4")))
|
#define SECTION __attribute__ ((section (".text.fma4")))
|
||||||
|
|
||||||
#include <sysdeps/ieee754/dbl-64/e_asin.c>
|
#include <sysdeps/ieee754/dbl-64/e_asin.c>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#define __cos32 __cos32_fma
|
|
||||||
#define __sin32 __sin32_fma
|
|
||||||
#define __c32 __c32_fma
|
#define __c32 __c32_fma
|
||||||
#define __mpsin __mpsin_fma
|
#define __mpsin __mpsin_fma
|
||||||
#define __mpsin1 __mpsin1_fma
|
#define __mpsin1 __mpsin1_fma
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#define __cos32 __cos32_fma4
|
|
||||||
#define __sin32 __sin32_fma4
|
|
||||||
#define __c32 __c32_fma4
|
#define __c32 __c32_fma4
|
||||||
#define __mpsin __mpsin_fma4
|
#define __mpsin __mpsin_fma4
|
||||||
#define __mpsin1 __mpsin1_fma4
|
#define __mpsin1 __mpsin1_fma4
|
||||||
|
Loading…
Reference in New Issue
Block a user