/// <summary>
        /// Constructs a new filtered Gaussian with the given generator and filter.
        /// </summary>
        /// <param name="generator">The guassian generator.</param>
        /// <param name="filter">The filter.</param>
        public FilteredGuassian(IGaussianGenerator generator, RandomFilter <float> filter = null)
            : base(null, filter)
        {
            Mean = generator.Mean;
            StandardDeviation = generator.StandardDeviation;

            Generator = generator;
            InitializeRange(Mean, StandardDeviation);
        }
 /// <summary>
 /// Initializes the Filtered Random generator.
 /// </summary>
 /// <param name="generator">The number generator to generate numbers with. <see cref="RandomGenerator.Instance"/> used as default.</param>
 /// <param name="filter">The filter to use. Uses the full set of defined binary filters if no filters are provided.</param>
 protected FilteredRandom(IRandomGenerator generator = null, RandomFilter <T> filter = null)
 {
     RNG    = generator ?? RandomGenerator.Instance;
     Filter = filter ?? GetFullFilter();
 }
        /// <summary>
        /// Constructs a new FilteredGuassian generator.
        /// </summary>
        /// <param name="mean">The mean of of the gaussian distribution we want to generate and filter.</param>
        /// <param name="standardDeviation">The standard deviation of the gaussian distribution we want to generate and filter.</param>
        /// <param name="generator">The basic generator we want to use to generate values. If null, <see cref="RandomGenerator.Instance"/> will be used.</param>
        /// <param name="filter">The filter we want to apply to the generated values. if null, <see cref="DefaultPatterns.All"/> will be used.</param>
        public FilteredGuassian(float mean, float standardDeviation, IRandomGenerator generator = null, RandomFilter <float> filter = null)
            : base(generator, filter)
        {
            //Set the parameters.
            Mean = mean;
            StandardDeviation = standardDeviation;

            //initialize the generator and range.
            Generator = new GaussianGenerator(mean, standardDeviation, RNG);
            InitializeRange(mean, standardDeviation);
        }
 /// <inheritdoc />
 public abstract void InitializeGenerator(RandomFilter <T> filter = null);