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