| 79 | |
| 80 | template <int zero_val> |
| 81 | SymbolVar absorbing_element( |
| 82 | const SymbolVarArrayView& inp, const OperatorNodeConfig& config) { |
| 83 | auto lhs = inp[0], rhs = inp[1]; |
| 84 | auto scalar = lhs.as_immutable_scalar(); |
| 85 | if (!scalar.valid()) { |
| 86 | std::swap(lhs, rhs); |
| 87 | scalar = lhs.as_immutable_scalar(); |
| 88 | } |
| 89 | if (scalar.valid() && |
| 90 | almost_equal(scalar->get_cast<float>(), static_cast<float>(zero_val))) { |
| 91 | return broadcast_tshp(rhs.make_scalar_dt(zero_val), inp); |
| 92 | } |
| 93 | return {}; |
| 94 | } |
| 95 | } // namespace inplace_optimize |
| 96 | } // anonymous namespace |
| 97 |
nothing calls this directly
no test coverage detected