|
14 | 14 | #include <imex/Dialect/Dist/IR/DistOps.h> |
15 | 15 |
|
16 | 16 | namespace SHARPY { |
17 | | -#if 0 |
18 | | -namespace x { |
19 | | - |
20 | | - class EWUnyOp |
21 | | - { |
22 | | - public: |
23 | | - using ptr_type = DNDArrayBaseX::ptr_type; |
24 | | - |
25 | | - template<typename T> |
26 | | - static ptr_type op(EWUnyOpId uop, const std::shared_ptr<DNDArrayX<T>> & a_ptr) |
27 | | - { |
28 | | - const auto & ax = a_ptr->xarray(); |
29 | | - if(a_ptr->is_sliced()) { |
30 | | - const auto & av = xt::strided_view(ax, a_ptr->lslice()); |
31 | | - return do_op(uop, av, a_ptr); |
32 | | - } |
33 | | - return do_op(uop, ax, a_ptr); |
34 | | - } |
35 | | - |
36 | | -#pragma GCC diagnostic ignored "-Wswitch" |
37 | | - template<typename T1, typename T> |
38 | | - static ptr_type do_op(EWUnyOpId uop, const T1 & a, const std::shared_ptr<DNDArrayX<T>> & a_ptr) |
39 | | - { |
40 | | - switch(uop) { |
41 | | - case __ABS__: |
42 | | - case ABS: |
43 | | - return operatorx<T>::mk_tx_(a_ptr, xt::abs(a)); |
44 | | - case ACOS: |
45 | | - return operatorx<T>::mk_tx_(a_ptr, xt::acos(a)); |
46 | | - case ACOSH: |
47 | | - return operatorx<T>::mk_tx_(a_ptr, xt::acosh(a)); |
48 | | - case ASIN: |
49 | | - return operatorx<T>::mk_tx_(a_ptr, xt::asin(a)); |
50 | | - case ASINH: |
51 | | - return operatorx<T>::mk_tx_(a_ptr, xt::asinh(a)); |
52 | | - case ATAN: |
53 | | - return operatorx<T>::mk_tx_(a_ptr, xt::atan(a)); |
54 | | - case ATANH: |
55 | | - return operatorx<T>::mk_tx_(a_ptr, xt::atanh(a)); |
56 | | - case CEIL: |
57 | | - return operatorx<T>::mk_tx_(a_ptr, xt::ceil(a)); |
58 | | - case COS: |
59 | | - return operatorx<T>::mk_tx_(a_ptr, xt::cos(a)); |
60 | | - case COSH: |
61 | | - return operatorx<T>::mk_tx_(a_ptr, xt::cosh(a)); |
62 | | - case EXP: |
63 | | - return operatorx<T>::mk_tx_(a_ptr, xt::exp(a)); |
64 | | - case EXPM1: |
65 | | - return operatorx<T>::mk_tx_(a_ptr, xt::expm1(a)); |
66 | | - case FLOOR: |
67 | | - return operatorx<T>::mk_tx_(a_ptr, xt::floor(a)); |
68 | | - case ISFINITE: |
69 | | - return operatorx<T>::mk_tx_(a_ptr, xt::isfinite(a)); |
70 | | - case ISINF: |
71 | | - return operatorx<T>::mk_tx_(a_ptr, xt::isinf(a)); |
72 | | - case ISNAN: |
73 | | - return operatorx<T>::mk_tx_(a_ptr, xt::isnan(a)); |
74 | | - case LOG: |
75 | | - return operatorx<T>::mk_tx_(a_ptr, xt::log(a)); |
76 | | - case LOG1P: |
77 | | - return operatorx<T>::mk_tx_(a_ptr, xt::log1p(a)); |
78 | | - case LOG2: |
79 | | - return operatorx<T>::mk_tx_(a_ptr, xt::log2(a)); |
80 | | - case LOG10: |
81 | | - return operatorx<T>::mk_tx_(a_ptr, xt::log10(a)); |
82 | | - case ROUND: |
83 | | - return operatorx<T>::mk_tx_(a_ptr, xt::round(a)); |
84 | | - case SIGN: |
85 | | - return operatorx<T>::mk_tx_(a_ptr, xt::sign(a)); |
86 | | - case SIN: |
87 | | - return operatorx<T>::mk_tx_(a_ptr, xt::sin(a)); |
88 | | - case SINH: |
89 | | - return operatorx<T>::mk_tx_(a_ptr, xt::sinh(a)); |
90 | | - case SQUARE: |
91 | | - return operatorx<T>::mk_tx_(a_ptr, xt::square(a)); |
92 | | - case SQRT: |
93 | | - return operatorx<T>::mk_tx_(a_ptr, xt::sqrt(a)); |
94 | | - case TAN: |
95 | | - return operatorx<T>::mk_tx_(a_ptr, xt::tan(a)); |
96 | | - case TANH: |
97 | | - return operatorx<T>::mk_tx_(a_ptr, xt::tanh(a)); |
98 | | - case TRUNC: |
99 | | - return operatorx<T>::mk_tx_(a_ptr, xt::trunc(a)); |
100 | | - case ERF: |
101 | | - return operatorx<T>::mk_tx_(a_ptr, xt::erf(a)); |
102 | | - case __NEG__: |
103 | | - case NEGATIVE: |
104 | | - case __POS__: |
105 | | - case POSITIVE: |
106 | | - case LOGICAL_NOT: |
107 | | - // FIXME |
108 | | - throw std::runtime_error("Unary operation not implemented"); |
109 | | - } |
110 | | - if constexpr (std::is_integral<T>::value) { |
111 | | - switch(uop) { |
112 | | - case __INVERT__: |
113 | | - case BITWISE_INVERT: |
114 | | - throw std::runtime_error("Unary operation not implemented"); |
115 | | - } |
116 | | - } |
117 | | - throw std::runtime_error("Unknown/invalid elementwise unary operation"); |
118 | | - } |
119 | | -#pragma GCC diagnostic pop |
120 | | - |
121 | | - }; |
122 | | -} //namespace x |
123 | | -#endif // if 0 |
124 | 17 |
|
125 | 18 | // convert id of our unary op to id of imex::ndarray unary op |
126 | 19 | static ::imex::ndarray::EWUnyOpId sharpy(const EWUnyOpId uop) { |
@@ -195,7 +88,7 @@ static ::imex::ndarray::EWUnyOpId sharpy(const EWUnyOpId uop) { |
195 | 88 | case POSITIVE: |
196 | 89 | return ::imex::ndarray::POSITIVE; |
197 | 90 | default: |
198 | | - throw std::runtime_error("Unknown/invalid elementwise unary operation"); |
| 91 | + throw std::invalid_argument("Unknown/invalid elementwise unary operation"); |
199 | 92 | } |
200 | 93 | } |
201 | 94 |
|
|
0 commit comments