how this works? double[] generateValues(ref Random rand, int l) { auto values = new double[](l); foreach (ref val; values) { auto value = 1; if (uniform(0, 2, rand)) { value = value * -1; } val = value; } return values; }