[go: up one dir, main page]

File: funcproto.h

package info (click to toggle)
sleef 3.3.1-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,616 kB
  • sloc: ansic: 31,598; sh: 194; java: 151; makefile: 124
file content (116 lines) | stat: -rw-r--r-- 2,830 bytes parent folder | download
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//          Copyright Naoki Shibata 2010 - 2017.
// Distributed under the Boost Software License, Version 1.0.
//    (See accompanying file LICENSE.txt or copy at
//          http://www.boost.org/LICENSE_1_0.txt)

typedef struct {
  char *name;
  int ulp;
  int ulpSuffix;
  int funcType;
  int flags;
} funcSpec;

/*
  ulp : (error bound in ulp) * 10

  ulpSuffix:
  0 : ""
  1 : "_u1"
  2 : "_u05"
  3 : "_u35"
  4 : "_u15"

  funcType:
  0 : vdouble func(vdouble);
  1 : vdouble func(vdouble, vdouble);
  2 : vdouble2 func(vdouble);   GNUABI : void func(vdouble, double *, double *);
  3 : vdouble func(vdouble, vint);
  4 : vint func(vdouble);
  5 : vdouble func(vdouble, vdouble, vdouble);
  6 : vdouble2 func(vdouble);   GNUABI : vdouble func(vdouble, double *);
  7 : int func(int);
  8 : void *func(int);

  flags:
  1 : No GNUABI
 */

funcSpec funcList[] = {
  { "sin", 35, 0, 0, 0 },
  { "cos", 35, 0, 0, 0 },
  { "sincos", 35, 0, 2, 0 },
  { "tan", 35, 0, 0, 0 },
  { "asin", 35, 0, 0, 0 },
  { "acos", 35, 0, 0, 0 },
  { "atan", 35, 0, 0, 0 },
  { "atan2", 35, 0, 1, 0 },
  { "log", 35, 0, 0, 0 },
  { "cbrt", 35, 0, 0, 0 },
  { "sin", 10, 1, 0, 0 },
  { "cos", 10, 1, 0, 0 },
  { "sincos", 10, 1, 2, 0 },
  { "tan", 10, 1, 0, 0 },
  { "asin", 10, 1, 0, 0 },
  { "acos", 10, 1, 0, 0 },
  { "atan", 10, 1, 0, 0 },
  { "atan2", 10, 1, 1, 0 },
  { "log", 10, 1, 0, 0 },
  { "cbrt", 10, 1, 0, 0 },
  { "exp", 10, 0, 0, 0 },
  { "pow", 10, 0, 1, 0 },
  { "sinh", 10, 0, 0, 0 },
  { "cosh", 10, 0, 0, 0 },
  { "tanh", 10, 0, 0, 0 },
  { "sinh", 35, 3, 0, 0 },
  { "cosh", 35, 3, 0, 0 },
  { "tanh", 35, 3, 0, 0 },

  { "asinh", 10, 0, 0, 0 },
  { "acosh", 10, 0, 0, 0 },
  { "atanh", 10, 0, 0, 0 },
  { "exp2", 10, 0, 0, 0 },
  { "exp10", 10, 0, 0, 0 },
  { "expm1", 10, 0, 0, 0 },
  { "log10", 10, 0, 0, 0 },
  { "log2", 10, 0, 0, 0 },
  { "log1p", 10, 0, 0, 0 },
  { "sincospi", 5, 2, 2, 0 },
  { "sincospi", 35, 3, 2, 0 },
  { "sinpi", 5, 2, 0, 0 },
  { "cospi", 5, 2, 0, 0 },
  { "ldexp", -1, 0, 3, 0 },
  { "ilogb", -1, 0, 4, 0 },

  { "fma", -1, 0, 5, 0 },
  { "sqrt", -1, 0, 0, 0 },
  { "sqrt", 5, 2, 0, 1 },
  { "sqrt", 35, 3, 0, 0 },
  { "hypot", 5, 2, 1, 0 },
  { "hypot", 35, 3, 1, 0 },
  { "fabs", -1, 0, 0, 0 },
  { "copysign", -1, 0, 1, 0 },
  { "fmax", -1, 0, 1, 0 },
  { "fmin", -1, 0, 1, 0 },
  { "fdim", -1, 0, 1, 0 },
  { "trunc", -1, 0, 0, 0 },
  { "floor", -1, 0, 0, 0 },
  { "ceil", -1, 0, 0, 0 },
  { "round", -1, 0, 0, 0 },
  { "rint", -1, 0, 0, 0 },
  { "nextafter", -1, 0, 1, 0 },
  { "frfrexp", -1, 0, 0, 0 },
  { "expfrexp", -1, 0, 4, 0 },
  { "fmod", -1, 0, 1, 0 },
  { "modf", -1, 0, 6, 0 },

  { "lgamma", 10, 1, 0, 0 },
  { "tgamma", 10, 1, 0, 0 },
  { "erf", 10, 1, 0, 0 },
  { "erfc", 15, 4, 0, 0 },
  
  { "getInt", -1, 0, 7, 1},
  { "getPtr", -1, 0, 8, 1},
  
  { NULL, -1, 0, 0, 0 },
};