|
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