15std::vector<std::vector<T>> multiply(std::vector<std::vector<T>>
const& x,
16 std::vector<std::vector<T>>
const& y) {
17 assert(x[0].size() == y.size());
18 std::vector<std::vector<T>> out(x.size(), std::vector<T>(y[0].size()));
20 for (
size_t i = 0; i < x.size(); i++) {
21 for (
size_t j = 0; j < y[0].size(); j++) {
22 for (
size_t k = 0; k < x[0].size(); k++) {
23 out[i][j] = x[i][k] * y[k][j];
32double multiply(std::vector<T>
const& x, std::vector<T>
const& y) {
33 assert(x.size() == y.size());
35 for (
size_t i = 0; i < x.size(); i++) {