#pragma once #include "./core/omp_config.h" #include "detail/greater_or_less_serial.h" namespace numerics{ // // ---------------- Greater - Vectors ---------------- // template inline void inplace_greater(utils::Vector& v, const T c) { detail::inplace_greater_serial(v, c); } template inline utils::Vector greater(const utils::Vector& v, const T c) { utils::Vector out = v; inplace_greater(out, c); return out; } template inline void inplace_greater(utils::Vector& v, const utils::Vector& p) { detail::inplace_greater_serial(v, p); } template inline utils::Vector greater(const utils::Vector& v, const utils::Vector& p) { utils::Vector out = v; inplace_greater(out, p); return out; } // // ---------------- Greater - Matrices ---------------- // template inline void inplace_greater(utils::Matrix& A, const T c) { detail::inplace_greater_serial(A, c); } template inline utils::Matrix greater(const utils::Matrix& A, const T c) { utils::Matrix out = A; inplace_greater(out, c); return out; } template inline void inplace_greater_rowwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_greater_rowwise_serial(A, v); } template inline utils::Matrix greater_rowwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_greater_rowwise(out, v); return out; } template inline void inplace_greater_colwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_greater_colwise_serial(A, v); } template inline utils::Matrix greater_colwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_greater_colwise(out, v); return out; } template inline void inplace_greater(utils::Matrix& A, const utils::Matrix B) { detail::inplace_greater_serial(A, B); } template inline utils::Matrix greater(const utils::Matrix& A, const utils::Matrix B) { utils::Matrix out = A; inplace_greater(out, B); return out; } // // ---------------- Greater or Equal - Vectors ---------------- // template inline void inplace_greater_equal(utils::Vector& v, const T c) { detail::inplace_greater_equal_serial(v, c); } template inline utils::Vector greater_equal(const utils::Vector& v, const T c) { utils::Vector out = v; inplace_greater_equal(out, c); return out; } template inline void inplace_greater_equal(utils::Vector& v, const utils::Vector& p) { detail::inplace_greater_equal_serial(v, p); } template inline utils::Vector greater_equal(const utils::Vector& v, const utils::Vector& p) { utils::Vector out = v; inplace_greater_equal(out, p); return out; } // // ---------------- Greater or Equal - Matrices ---------------- // template inline void inplace_greater_equal(utils::Matrix& A, const T c) { detail::inplace_greater_equal_serial(A, c); } template inline utils::Matrix greater_equal(const utils::Matrix& A, const T c) { utils::Matrix out = A; inplace_greater_equal(out, c); return out; } template inline void inplace_greater_equal_rowwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_greater_equal_rowwise_serial(A, v); } template inline utils::Matrix greater_equal_rowwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_greater_equal_rowwise(out, v); return out; } template inline void inplace_greater_equal_colwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_greater_equal_colwise_serial(A, v); } template inline utils::Matrix greater_equal_colwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_greater_equal_colwise(out, v); return out; } template inline void inplace_greater_equal(utils::Matrix& A, const utils::Matrix B) { detail::inplace_greater_equal_serial(A, B); } template inline utils::Matrix greater_euqal(const utils::Matrix& A, const utils::Matrix B) { utils::Matrix out = A; inplace_greater_equal(out, B); return out; } // // ---------------- Less - Vectors ---------------- // template inline void inplace_less(utils::Vector& v, const T c) { detail::inplace_less_serial(v, c); } template inline utils::Vector less(const utils::Vector& v, const T c) { utils::Vector out = v; inplace_less(out, c); return out; } template inline void inplace_less(utils::Vector& v, const utils::Vector& p) { detail::inplace_less_serial(v, p); } template inline utils::Vector less(const utils::Vector& v, const utils::Vector& p) { utils::Vector out = v; inplace_less(out, p); return out; } // // ---------------- Less - Matrices ---------------- // template inline void inplace_less(utils::Matrix& A, const T c) { detail::inplace_less_serial(A, c); } template inline utils::Matrix less(const utils::Matrix& A, const T c) { utils::Matrix out = A; inplace_less(out, c); return out; } template inline void inplace_less_rowwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_less_rowwise_serial(A, v); } template inline utils::Matrix less_rowwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_less_rowwise(out, v); return out; } template inline void inplace_less_colwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_less_colwise_serial(A, v); } template inline utils::Matrix less_colwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_less_colwise(out, v); return out; } template inline void inplace_less(utils::Matrix& A, const utils::Matrix B) { detail::inplace_less_serial(A, B); } template inline utils::Matrix less(const utils::Matrix& A, const utils::Matrix B) { utils::Matrix out = A; inplace_less(out, B); return out; } // // ---------------- Less or Equal - Vectors ---------------- // template inline void inplace_less_equal(utils::Vector& v, const T c) { detail::inplace_less_equal_serial(v, c); } template inline utils::Vector less_equal(const utils::Vector& v, const T c) { utils::Vector out = v; inplace_less_equal(out, c); return out; } template inline void inplace_less_equal(utils::Vector& v, const utils::Vector& p) { detail::inplace_less_equal_serial(v, p); } template inline utils::Vector less_equal(const utils::Vector& v, const utils::Vector& p) { utils::Vector out = v; inplace_less_equal(out, p); return out; } // // ---------------- Less or Equal - Matrices ---------------- // template inline void inplace_less_equal(utils::Matrix& A, const T c) { detail::inplace_less_equal_serial(A, c); } template inline utils::Matrix less_equal(const utils::Matrix& A, const T c) { utils::Matrix out = A; inplace_less_equal(out, c); return out; } template inline void inplace_less_equal_rowwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_less_equal_rowwise_serial(A, v); } template inline utils::Matrix less_equal_rowwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_less_equal_rowwise(out, v); return out; } template inline void inplace_less_equal_colwise(utils::Matrix& A, const utils::Vector v) { detail::inplace_less_equal_colwise_serial(A, v); } template inline utils::Matrix less_equal_colwise(const utils::Matrix& A, const utils::Vector v) { utils::Matrix out = A; inplace_less_equal_colwise(out, v); return out; } template inline void inplace_less_equal(utils::Matrix& A, const utils::Matrix B) { detail::inplace_less_equal_serial(A, B); } template inline utils::Matrix less_euqal(const utils::Matrix& A, const utils::Matrix B) { utils::Matrix out = A; inplace_less_equal(out, B); return out; } }