/// <summary> /// Generate next random number. /// </summary> /// /// <returns>Returns next random number.</returns> /// public float Next( ) { return((float)rand.Next( ) * stdDev + mean); }
/// <summary> /// Generate next random number. /// </summary> /// /// <returns>Returns next random number.</returns> /// public double Next( ) { return(rand.Next( ) * stdDev + mean); }
/// <summary> /// Generates a random vector of observations from the current distribution. /// </summary> /// <param name="samples">The number of samples to generate.</param> /// <returns>A random vector of observations drawn from this distribution.</returns> public double[][] Generate(int samples) { var r = new StandardGenerator(); double[,] A = chol.LeftTriangularFactor; var data = new double[samples][]; for (int i = 0; i < data.Length; i++) { var sample = new double[Dimension]; for (int j = 0; j < sample.Length; j++) sample[j] = r.Next(); data[i] = A.Multiply(sample).Add(Mean); } return data; }