|
27 | 27 | #define TVM_RELAY_TRANSFORMS_PATTERN_UTILS_H_ |
28 | 28 |
|
29 | 29 | #include <builtin_fp16.h> |
30 | | -#include <dmlc/optional.h> |
31 | 30 | #include <tvm/node/structural_equal.h> |
32 | 31 | #include <tvm/relay/analysis.h> |
33 | 32 | #include <tvm/relay/attrs/nn.h> |
|
40 | 39 | #include <tvm/tir/data_layout.h> |
41 | 40 |
|
42 | 41 | #include <limits> |
| 42 | +#include <optional> |
43 | 43 | #include <string> |
44 | 44 | #include <utility> |
45 | 45 | #include <vector> |
@@ -405,48 +405,47 @@ inline bool IsEqualScalar(const Expr& a, const Expr& b) { |
405 | 405 | * \param i element index |
406 | 406 | * \return Converted scalar value, or None if conversion failed |
407 | 407 | */ |
408 | | -static inline dmlc::optional<long double> TryToScalar(const runtime::NDArray& array, size_t i = 0) { |
| 408 | +static inline std::optional<long double> TryToScalar(const runtime::NDArray& array, size_t i = 0) { |
409 | 409 | if (array->dtype.code == kDLInt) { |
410 | 410 | if (array->dtype.bits == 8) { |
411 | | - return dmlc::optional<long double>(reinterpret_cast<int8_t*>(array->data)[i]); |
| 411 | + return std::optional<long double>(reinterpret_cast<int8_t*>(array->data)[i]); |
412 | 412 | } else if (array->dtype.bits == 16) { |
413 | | - return dmlc::optional<long double>(reinterpret_cast<int16_t*>(array->data)[i]); |
| 413 | + return std::optional<long double>(reinterpret_cast<int16_t*>(array->data)[i]); |
414 | 414 | } else if (array->dtype.bits == 32) { |
415 | | - return dmlc::optional<long double>(reinterpret_cast<int32_t*>(array->data)[i]); |
| 415 | + return std::optional<long double>(reinterpret_cast<int32_t*>(array->data)[i]); |
416 | 416 | } else if (array->dtype.bits == 64) { |
417 | | - return dmlc::optional<long double>(reinterpret_cast<int64_t*>(array->data)[i]); |
| 417 | + return std::optional<long double>(reinterpret_cast<int64_t*>(array->data)[i]); |
418 | 418 | } |
419 | 419 | } else if (array->dtype.code == kDLUInt) { |
420 | 420 | if (array->dtype.bits == 1) { // bool |
421 | | - return dmlc::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]); |
| 421 | + return std::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]); |
422 | 422 | } else if (array->dtype.bits == 8) { |
423 | | - return dmlc::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]); |
| 423 | + return std::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]); |
424 | 424 | } else if (array->dtype.bits == 16) { |
425 | | - return dmlc::optional<long double>(reinterpret_cast<uint16_t*>(array->data)[i]); |
| 425 | + return std::optional<long double>(reinterpret_cast<uint16_t*>(array->data)[i]); |
426 | 426 | } else if (array->dtype.bits == 32) { |
427 | | - return dmlc::optional<long double>(reinterpret_cast<uint32_t*>(array->data)[i]); |
| 427 | + return std::optional<long double>(reinterpret_cast<uint32_t*>(array->data)[i]); |
428 | 428 | } else if (array->dtype.bits == 64) { |
429 | | - return dmlc::optional<long double>(reinterpret_cast<uint64_t*>(array->data)[i]); |
| 429 | + return std::optional<long double>(reinterpret_cast<uint64_t*>(array->data)[i]); |
430 | 430 | } |
431 | 431 | } else if (array->dtype.code == kDLFloat) { |
432 | 432 | if (array->dtype.bits == 16) { |
433 | | - return dmlc::optional<long double>( |
| 433 | + return std::optional<long double>( |
434 | 434 | __extendXfYf2__<uint16_t, uint16_t, 10, float, uint32_t, 23>( |
435 | 435 | reinterpret_cast<uint16_t*>(array->data)[i])); |
436 | 436 | } |
437 | 437 | if (array->dtype.bits == 32) { |
438 | | - return dmlc::optional<long double>(reinterpret_cast<float*>(array->data)[i]); |
| 438 | + return std::optional<long double>(reinterpret_cast<float*>(array->data)[i]); |
439 | 439 | } else if (array->dtype.bits == 64) { |
440 | | - return dmlc::optional<long double>(reinterpret_cast<double*>(array->data)[i]); |
| 440 | + return std::optional<long double>(reinterpret_cast<double*>(array->data)[i]); |
441 | 441 | } |
442 | 442 | } else if (array->dtype.code == kDLBfloat) { |
443 | 443 | if (array->dtype.bits == 16) { |
444 | | - return dmlc::optional<long double>( |
445 | | - __extendXfYf2__<uint16_t, uint16_t, 7, float, uint32_t, 23>( |
446 | | - reinterpret_cast<uint16_t*>(array->data)[i])); |
| 444 | + return std::optional<long double>(__extendXfYf2__<uint16_t, uint16_t, 7, float, uint32_t, 23>( |
| 445 | + reinterpret_cast<uint16_t*>(array->data)[i])); |
447 | 446 | } |
448 | 447 | } |
449 | | - return dmlc::optional<long double>(); |
| 448 | + return std::nullopt; |
450 | 449 | } |
451 | 450 |
|
452 | 451 | /*! |
|
0 commit comments