27template <std::same_as<
double>... Ts>
28Eigen::Vector<double,
sizeof...(Ts)>
Normal(Ts... stdDevs) {
29 std::random_device rd;
30 std::mt19937 gen{rd()};
32 Eigen::Vector<double,
sizeof...(Ts)> result;
34 [&](
int i,
double stdDev) {
40 std::normal_distribution distr{0.0, stdDev};
41 result(i) = distr(gen);
57Eigen::Vector<double, N>
Normal(
const std::array<double, N>& stdDevs) {
58 std::random_device rd;
59 std::mt19937 gen{rd()};
61 Eigen::Vector<double, N> result;
62 for (
size_t i = 0; i < stdDevs.size(); ++i) {
65 if (stdDevs[i] == 0.0) {
68 std::normal_distribution distr{0.0, stdDevs[i]};
69 result(i) = distr(gen);
#define WPILIB_DLLEXPORT
Definition SymbolExports.hpp:36
Definition LinearSystem.hpp:20
Eigen::Vector< double, sizeof...(Ts)> Normal(Ts... stdDevs)
Creates a vector of normally distributed random values with the given standard deviations for each el...
Definition Normal.hpp:28
constexpr void for_each(F &&f, Ts &&... elems)
Calls f(i, elem) for each element of elems where i is the index of the element in elems and elem is t...
Definition Algorithm.hpp:29