#pragma once #include #include #include namespace arith { float sqrt(float x); float mean(const std::vector& x); template void mm(const std::vector& a, const std::vector& b, std::vector& c, size_t m, size_t k, size_t n) { // 补全这里,谢谢 c.resize(m * n); std::fill(c.begin(), c.end(), static_cast(0)); for (size_t i = 0; i < m; ++i) { for (size_t j = 0; j < n; ++j) { for (size_t p = 0; p < k; ++p) { c[i * n + j] += a[i * k + p] * b[p * n + j]; } } } } template void vector_scalar_max(const std::vector& a, std::vector &b, T scalar) { // 补全这里,谢谢 b.resize(a.size()); for (size_t i = 0; i < a.size(); ++i) { b[i] = (a[i] > scalar) ? a[i] : scalar; } } }