| 117 | |
| 118 | template <typename DataT> |
| 119 | struct SelectImplConstant |
| 120 | { |
| 121 | DataT m_value, m_epsilon, m_iftrue, m_iffalse; |
| 122 | SelectImplConstant(DataT const& value, |
| 123 | DataT const& epsilon, |
| 124 | DataT const& iftrue, |
| 125 | DataT const& iffalse) |
| 126 | : m_value(value), m_epsilon(epsilon), m_iftrue(iftrue), m_iffalse(iffalse) |
| 127 | {} |
| 128 | |
| 129 | DataT operator()(DataT const& predicate) const noexcept |
| 130 | { |
| 131 | bool istrue = std::fabs(predicate - m_value) < m_epsilon; |
| 132 | return istrue ? m_iftrue : m_iffalse; |
| 133 | } |
| 134 | DataT operator()(DataT const& predicate, DataT const& dy) const noexcept |
| 135 | { |
| 136 | return El::TypeTraits<DataT>::Zero(); |
| 137 | } |
| 138 | }; |
| 139 | |
| 140 | template <typename DataT, El::Device D> |
| 141 | void SelectOperator<DataT, D>::fp_compute_local( |
no outgoing calls
no test coverage detected