#pragma once #include "./core/omp_config.h" #include "detail/log_serial.h" namespace numerics{ // ---------------- Elementwise ---------------- template inline void inplace_log(T& c) { detail::inplace_log_scalar_serial(c); } template inline T log(const T c) { T out = c; inplace_log(out); return out; } template inline void inplace_log(utils::Matrix& A) { detail::inplace_log_elementwise_serial(A); } template inline utils::Matrix log(const utils::Matrix& A) { utils::Matrix out = A; inplace_log(out); return out; } template inline void inplace_log(utils::Vector& v) { detail::inplace_log_elementwise_serial(v); } template inline utils::Vector log(const utils::Vector& v) { utils::Vector out = v; inplace_log(out); return out; } }