| 31 | |
| 32 | template<typename T> |
| 33 | detail::Array<T> threshold(const detail::Array<T>& in, T min, T max) { |
| 34 | const af::dim4 inDims = in.dims(); |
| 35 | |
| 36 | auto MN = detail::createValueArray(inDims, min); |
| 37 | auto MX = detail::createValueArray(inDims, max); |
| 38 | auto below = detail::logicOp<T, af_le_t>(in, MX, inDims); |
| 39 | auto above = detail::logicOp<T, af_ge_t>(in, MN, inDims); |
| 40 | auto valid = detail::logicOp<char, af_and_t>(below, above, inDims); |
| 41 | |
| 42 | return detail::arithOp<T, af_mul_t>(in, common::cast<T, char>(valid), |
| 43 | inDims); |
| 44 | } |
| 45 | |
| 46 | template<typename To, typename Ti> |
| 47 | detail::Array<To> convRange(const detail::Array<Ti>& in, |
nothing calls this directly
no test coverage detected