@@ -113,25 +113,43 @@ static PyObject* THPDTypeInfo_bits(THPDTypeInfo* self, void*) {
113
113
}
114
114
115
115
static PyObject* THPFInfo_eps (THPFInfo* self, void *) {
116
- return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND2 (
117
- at::kHalf , at::ScalarType::BFloat16, self->type , " epsilon" , [] {
116
+ return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND4 (
117
+ at::kHalf ,
118
+ at::ScalarType::BFloat16,
119
+ at::ScalarType::Float8_e4m3fn,
120
+ at::ScalarType::Float8_e5m2,
121
+ self->type ,
122
+ " epsilon" ,
123
+ [] {
118
124
return PyFloat_FromDouble (
119
125
std::numeric_limits<
120
126
at::scalar_value_type<scalar_t >::type>::epsilon ());
121
127
});
122
128
}
123
129
124
130
static PyObject* THPFInfo_max (THPFInfo* self, void *) {
125
- return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND2 (
126
- at::kHalf , at::ScalarType::BFloat16, self->type , " max" , [] {
131
+ return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND4 (
132
+ at::kHalf ,
133
+ at::ScalarType::BFloat16,
134
+ at::ScalarType::Float8_e4m3fn,
135
+ at::ScalarType::Float8_e5m2,
136
+ self->type ,
137
+ " max" ,
138
+ [] {
127
139
return PyFloat_FromDouble (
128
140
std::numeric_limits<at::scalar_value_type<scalar_t >::type>::max ());
129
141
});
130
142
}
131
143
132
144
static PyObject* THPFInfo_min (THPFInfo* self, void *) {
133
- return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND2 (
134
- at::kHalf , at::ScalarType::BFloat16, self->type , " lowest" , [] {
145
+ return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND4 (
146
+ at::kHalf ,
147
+ at::ScalarType::BFloat16,
148
+ at::ScalarType::Float8_e4m3fn,
149
+ at::ScalarType::Float8_e5m2,
150
+ self->type ,
151
+ " lowest" ,
152
+ [] {
135
153
return PyFloat_FromDouble (
136
154
std::numeric_limits<
137
155
at::scalar_value_type<scalar_t >::type>::lowest ());
@@ -170,8 +188,14 @@ static PyObject* THPIInfo_dtype(THPIInfo* self, void*) {
170
188
}
171
189
172
190
static PyObject* THPFInfo_smallest_normal (THPFInfo* self, void *) {
173
- return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND2 (
174
- at::kHalf , at::ScalarType::BFloat16, self->type , " min" , [] {
191
+ return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND4 (
192
+ at::kHalf ,
193
+ at::ScalarType::BFloat16,
194
+ at::ScalarType::Float8_e4m3fn,
195
+ at::ScalarType::Float8_e5m2,
196
+ self->type ,
197
+ " smallest" ,
198
+ [] {
175
199
return PyFloat_FromDouble (
176
200
std::numeric_limits<at::scalar_value_type<scalar_t >::type>::min ());
177
201
});
@@ -183,8 +207,14 @@ static PyObject* THPFInfo_tiny(THPFInfo* self, void*) {
183
207
}
184
208
185
209
static PyObject* THPFInfo_resolution (THPFInfo* self, void *) {
186
- return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND2 (
187
- at::kHalf , at::ScalarType::BFloat16, self->type , " digits10" , [] {
210
+ return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND4 (
211
+ at::kHalf ,
212
+ at::ScalarType::BFloat16,
213
+ at::ScalarType::Float8_e4m3fn,
214
+ at::ScalarType::Float8_e5m2,
215
+ self->type ,
216
+ " digits10" ,
217
+ [] {
188
218
return PyFloat_FromDouble (std::pow (
189
219
10 ,
190
220
-std::numeric_limits<
@@ -194,9 +224,11 @@ static PyObject* THPFInfo_resolution(THPFInfo* self, void*) {
194
224
195
225
static PyObject* THPFInfo_dtype (THPFInfo* self, void *) {
196
226
auto primary_name = torch::utils::getDtypeNames (self->type ).first ;
197
- return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND2 (
227
+ return AT_DISPATCH_FLOATING_AND_COMPLEX_TYPES_AND4 (
198
228
at::kHalf ,
199
229
at::ScalarType::BFloat16,
230
+ at::ScalarType::Float8_e4m3fn,
231
+ at::ScalarType::Float8_e5m2,
200
232
self->type ,
201
233
" dtype" ,
202
234
[&primary_name] { return PyUnicode_FromString (primary_name.data ()); });
0 commit comments