Example #1
0
 /// <summary>
 ///   Generates a random vector of observations from the current distribution.
 /// </summary>
 ///
 /// <param name="samples">The number of samples to generate.</param>
 /// <param name="result">The location where to store the samples.</param>
 ///
 /// <returns>A random vector of observations drawn from this distribution.</returns>
 ///
 public virtual int[][] Generate(int samples, int[][] result)
 {
     if (generator == null)
     {
         generator = MetropolisHasting.Discrete(Dimension, this);
     }
     return(generator.Generate(samples, result));
 }
Example #2
0
        public virtual int[][] Generate(int samples, int[][] result, Random source)
        {
            if (generator == null)
            {
                generator = MetropolisHasting.Discrete(Dimension, this);
            }

            if (generator.RandomSource != source)
            {
                generator.RandomSource = source;
            }

            return(generator.Generate(samples, result));
        }
Example #3
0
        public virtual double[][] Generate(int samples, double[][] result, Random source)
        {
            if (generator == null)
            {
                generator = new MetropolisHasting(Dimension, LogProbabilityDensityFunction);
            }

            if (generator.RandomSource != source)
            {
                generator.RandomSource = source;
            }

            return(Elementwise.Round(Generate(samples), result: result));
        }