@@ -8,8 +8,7 @@ C10_CLANG_DIAGNOSTIC_PUSH()
8
8
C10_CLANG_DIAGNOSTIC_IGNORE (" -Wimplicit-float-conversion" )
9
9
#endif
10
10
11
- namespace std {
12
-
11
+ namespace c10 {
13
12
template <typename T>
14
13
struct is_reduced_floating_point
15
14
: std::integral_constant<
@@ -19,193 +18,201 @@ struct is_reduced_floating_point
19
18
template <typename T>
20
19
constexpr bool is_reduced_floating_point_v =
21
20
is_reduced_floating_point<T>::value;
21
+ } // namespace c10
22
+
23
+ namespace std {
24
+
25
+ #if !defined(FBCODE_CAFFE2) && !defined(C10_NODEPRECATED)
26
+ using c10::is_reduced_floating_point;
27
+ using c10::is_reduced_floating_point_v;
28
+ #endif // !defined(FBCODE_CAFFE2) && !defined(C10_NODEPRECATED)
22
29
23
30
template <
24
31
typename T,
25
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
32
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
26
33
inline T acos (T a) {
27
34
return std::acos (float (a));
28
35
}
29
36
template <
30
37
typename T,
31
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
38
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
32
39
inline T asin (T a) {
33
40
return std::asin (float (a));
34
41
}
35
42
template <
36
43
typename T,
37
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
44
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
38
45
inline T atan (T a) {
39
46
return std::atan (float (a));
40
47
}
41
48
template <
42
49
typename T,
43
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
50
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
44
51
inline T atanh (T a) {
45
52
return std::atanh (float (a));
46
53
}
47
54
template <
48
55
typename T,
49
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
56
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
50
57
inline T erf (T a) {
51
58
return std::erf (float (a));
52
59
}
53
60
template <
54
61
typename T,
55
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
62
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
56
63
inline T erfc (T a) {
57
64
return std::erfc (float (a));
58
65
}
59
66
template <
60
67
typename T,
61
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
68
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
62
69
inline T exp (T a) {
63
70
return std::exp (float (a));
64
71
}
65
72
template <
66
73
typename T,
67
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
74
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
68
75
inline T expm1 (T a) {
69
76
return std::expm1 (float (a));
70
77
}
71
78
template <
72
79
typename T,
73
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
80
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
74
81
inline bool isfinite (T a) {
75
82
return std::isfinite (float (a));
76
83
}
77
84
template <
78
85
typename T,
79
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
86
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
80
87
inline T log (T a) {
81
88
return std::log (float (a));
82
89
}
83
90
template <
84
91
typename T,
85
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
92
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
86
93
inline T log10 (T a) {
87
94
return std::log10 (float (a));
88
95
}
89
96
template <
90
97
typename T,
91
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
98
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
92
99
inline T log1p (T a) {
93
100
return std::log1p (float (a));
94
101
}
95
102
template <
96
103
typename T,
97
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
104
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
98
105
inline T log2 (T a) {
99
106
return std::log2 (float (a));
100
107
}
101
108
template <
102
109
typename T,
103
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
110
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
104
111
inline T ceil (T a) {
105
112
return std::ceil (float (a));
106
113
}
107
114
template <
108
115
typename T,
109
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
116
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
110
117
inline T cos (T a) {
111
118
return std::cos (float (a));
112
119
}
113
120
template <
114
121
typename T,
115
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
122
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
116
123
inline T floor (T a) {
117
124
return std::floor (float (a));
118
125
}
119
126
template <
120
127
typename T,
121
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
128
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
122
129
inline T nearbyint (T a) {
123
130
return std::nearbyint (float (a));
124
131
}
125
132
template <
126
133
typename T,
127
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
134
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
128
135
inline T sin (T a) {
129
136
return std::sin (float (a));
130
137
}
131
138
template <
132
139
typename T,
133
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
140
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
134
141
inline T tan (T a) {
135
142
return std::tan (float (a));
136
143
}
137
144
template <
138
145
typename T,
139
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
146
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
140
147
inline T sinh (T a) {
141
148
return std::sinh (float (a));
142
149
}
143
150
template <
144
151
typename T,
145
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
152
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
146
153
inline T cosh (T a) {
147
154
return std::cosh (float (a));
148
155
}
149
156
template <
150
157
typename T,
151
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
158
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
152
159
inline T tanh (T a) {
153
160
return std::tanh (float (a));
154
161
}
155
162
template <
156
163
typename T,
157
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
164
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
158
165
inline T trunc (T a) {
159
166
return std::trunc (float (a));
160
167
}
161
168
template <
162
169
typename T,
163
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
170
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
164
171
inline T lgamma (T a) {
165
172
return std::lgamma (float (a));
166
173
}
167
174
template <
168
175
typename T,
169
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
176
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
170
177
inline T sqrt (T a) {
171
178
return std::sqrt (float (a));
172
179
}
173
180
template <
174
181
typename T,
175
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
182
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
176
183
inline T rsqrt (T a) {
177
184
return 1.0 / std::sqrt (float (a));
178
185
}
179
186
template <
180
187
typename T,
181
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
188
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
182
189
inline T abs (T a) {
183
190
return std::abs (float (a));
184
191
}
185
192
#if defined(_MSC_VER) && defined(__CUDACC__)
186
193
template <
187
194
typename T,
188
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
195
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
189
196
inline T pow (T a, double b) {
190
197
return std::pow (float (a), float (b));
191
198
}
192
199
#else
193
200
template <
194
201
typename T,
195
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
202
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
196
203
inline T pow (T a, double b) {
197
204
return std::pow (float (a), b);
198
205
}
199
206
#endif
200
207
template <
201
208
typename T,
202
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
209
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
203
210
inline T pow (T a, T b) {
204
211
return std::pow (float (a), float (b));
205
212
}
206
213
template <
207
214
typename T,
208
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
215
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
209
216
inline T fmod (T a, T b) {
210
217
return std::fmod (float (a), float (b));
211
218
}
@@ -238,7 +245,7 @@ inline T fmod(T a, T b) {
238
245
*/
239
246
template <
240
247
typename T,
241
- typename std::enable_if_t <is_reduced_floating_point_v<T>, int > = 0 >
248
+ typename std::enable_if_t <c10:: is_reduced_floating_point_v<T>, int > = 0 >
242
249
C10_HOST_DEVICE inline T nextafter (T from, T to) {
243
250
// Reference:
244
251
// https://git.musl-libc.org/cgit/musl/tree/src/math/nextafter.c
0 commit comments