| 20 | namespace { |
| 21 | template <typename T> |
| 22 | void gen_rand_data(std::vector<T>& data, size_t num_elems, size_t scale) { |
| 23 | unsigned int seed = time(0); |
| 24 | data.resize(num_elems); |
| 25 | for (size_t i = 0; i < num_elems; ++i) { |
| 26 | data[i] = |
| 27 | static_cast<T>((rand_r(&seed) % (scale * 1000)) / 1000.0 - scale / 2.0); |
| 28 | } |
| 29 | } |
| 30 | |
| 31 | template <typename T> |
| 32 | void get_min_max(std::vector<T>& data, double& min, double& max) { |