Tensor Comprehensions
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
builtins.h
Go to the documentation of this file.
1 
16 #pragma once
17 
18 #include <unordered_map>
19 
20 namespace lang {
21 namespace {
22 
23 std::unordered_map<std::string, int> builtin_functions({
24  // from CUDA float documentation
25  // WARNING: if you add a builtin function here that does not
26  // propagate the type of its inputs using match_types in Sema.h
27  // you need to modify Sema.h to be correct
28  // see [BUILTIN TYPE MATCHING]
29 
30  // { "function_name", <num inputs> }
31  {"acos", 1},
32  {"acosh", 1},
33  {"asin", 1},
34  {"asinh", 1},
35  {"atan2", 2},
36  {"atan", 1},
37  {"atanh", 1},
38  {"cbrt", 1},
39  {"ceil", 1},
40  {"copysign", 2},
41  {"cos", 1},
42  {"cosh", 1},
43  {"cospi", 1},
44  {"cyl_bessel_i0", 1},
45  {"cyl_bessel_i1", 1},
46  {"erfc", 1},
47  {"erfcinv", 1},
48  {"erfcx", 1},
49  {"erf", 1},
50  {"erfinv", 1},
51  {"exp10", 1},
52  {"exp2", 1},
53  {"exp", 1},
54  {"expm1", 1},
55  {"fabs", 1},
56  {"fdim", 2},
57  {"fdivide", 2},
58  {"floor", 1},
59  {"fma", 3},
60  {"fmax", 2},
61  {"fmin", 2},
62  {"fmod", 2},
63  {"hypot", 2},
64  {"j0", 1},
65  {"j1", 1},
66  {"lgamma", 1},
67  {"log10", 1},
68  {"log1p", 1},
69  {"log2", 1},
70  {"logb", 1},
71  {"log", 1},
72  {"nextafter", 2},
73  {"norm3d", 3},
74  {"norm4d", 4},
75  {"normcdf", 1},
76  {"normcdfinv", 1},
77  {"pow", 2},
78  {"rcbrt", 1},
79  {"remainder", 2},
80  {"rhypot", 2},
81  {"rnorm3d", 3},
82  {"rnorm4d", 4},
83  {"round", 1},
84  {"rsqrt", 1},
85  {"sin", 1},
86  {"sinh", 1},
87  {"sinpi", 1},
88  {"sqrt", 1},
89  {"tan", 1},
90  {"tanh", 1},
91  {"tgamma", 1},
92  {"trunc", 1},
93  {"y0", 1},
94  {"y1", 1},
95 });
96 
97 } // namespace
98 } // namespace lang