File: ultrasp7.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A14.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,099,328 kB
  • sloc: cpp: 3,627,108; ansic: 2,571,498; ada: 834,230; f90: 235,082; makefile: 79,231; asm: 74,984; xml: 51,692; exp: 39,736; sh: 33,298; objc: 15,629; python: 15,069; fortran: 14,429; pascal: 7,003; awk: 5,070; perl: 3,106; ml: 285; lisp: 253; lex: 204; haskell: 135
file content (51 lines) | stat: -rw-r--r-- 964 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* PR c/8281 */
/* Originator: TANIGUCHI Yasuaki <yasuaki@k8.dion.ne.jp> */

/* { dg-do compile } */
/* { dg-require-effective-target fpic } */
/* { dg-options "-O2 -mcpu=ultrasparc -fPIC" } */

static const double bp = 1.0, dp_l[] = { 0.0 };

double __ieee754_pow(double x, double y)
{
  union {
    int lo;
    double d;
  }uz;

  double y1,t1,p_h,t,z;
  double z_h,z_l,p_l;
  double t2,r,s,u,v,w;
  int i = 0;
 
  double s_h,t_h;
  double s2,s_l,t_l;
 
 
  v = 1.0/(v+bp);
  uz.d = s_h = s = u*v;
  uz.lo = 0;
  s_h = uz.d;
  uz.d = t_h;
  uz.lo = 3;
  t_h = uz.d;
  s_l = v*((u-s_h*t_h)-s_h*t_l);
  s2 = s*s;
  r = s2* s2* (1.1+s2*(1.2+s2*(1.3+s2*(1.4+s2*(1.5+s2*1.6)))));
  s2 = s_h*s_h;
  uz.lo = 0;
  t_h = uz.d;
  t_l = r-((t_h-3.0)-s2);
  v = s_l*t_h+t_l*s;
  p_l = v-(p_h-u);
  z_h = bp *p_h;
  z_l = bp*p_h+p_l*1.0+dp_l[i];
  t = (double)i;
  t1 = (((bp+z_l)+bp)+t);
  t2 = z_l-(((t1-t)-bp)-z_h);
  p_l = (y-y1)*t1+y*t2;
  z = p_l+p_h;

  return s*z;
}