#pragma once #include //uint64_t #include // std::abs #include "utils/vector.h" #include "utils/matrix.h" namespace numerics::detail{ // ---------------- Elemenwise ---------------- template void inplace_greater_than_serial(T& a, const T c) { if (a > c){ a = T{1}; } else{ a = T{0}; } } template void inplace_greater_than_serial(utils::Vector& v, const T c) { for (uint64_t i = 0; i < v.size(); ++i){ inplace_greater_than_serial(v[i], c); } } template void inplace_greater_than_serial(utils::Matrix& A, const T c) { const uint64_t rows = A.rows(); const uint64_t cols = A.cols(); for (uint64_t i = 0; i < rows; ++i){ for (uint64_t j = 0; j < cols; ++j){ inplace_greater_than_serial(A(i,j), c); } } } } // namespace numerics