private static Double[,] Matrix(IDistribution dist, Double rows, Double columns) { var m = new Double[(Int32)rows, (Int32)columns]; for (var i = 0; i < rows; i++) { for (var j = 0; j < columns; j++) { m[i, j] = dist.NextDouble(); } } return(m); }
private static Func <Object[], Object> AsFunction(IDistribution dist) { return(new Func <Object[], Object>(args => { if (args.Length > 1 && args[0] is Double && args[1] is Double) { return Matrix(dist, (Double)args[0], (Double)args[1]); } else if (args.Length > 0 && args[0] is Double) { return Vector(dist, (Double)args[0]); } return dist.NextDouble(); })); }