Generated by DocFX

Class ZigguratUniformGenerator

Uniform random number generator using the Ziggurat method.

Inheritance
System.Object
ZigguratUniformGenerator
Implements
IRandomNumberGenerator<System.Double>
Namespace: ISynergy.Framework.Mathematics.Random
Assembly: ISynergy.Framework.Mathematics.dll
Syntax
public sealed class ZigguratUniformGenerator : object, IRandomNumberGenerator<double>
Remarks

References:

  • John Burkard, Ziggurat Random Number Generator (RNG). Available on: http://people.sc.fsu.edu/~jburkardt/c_src/ziggurat/ziggurat.c (LGPL)
  • Philip Leong, Guanglie Zhang, Dong-U Lee, Wayne Luk, John Villasenor, A comment on the implementation of the ziggurat method, Journal of Statistical Software, Volume 12, Number 7, February 2005.
  • George Marsaglia, Wai Wan Tsang, The Ziggurat _method for Generating Random Variables, Journal of Statistical Software, Volume 5, Number 8, October 2000, seven pages.

Constructors

View Source

ZigguratUniformGenerator(Double, Double)

Initializes a new instance of the ZigguratExponentialGenerator class.

Declaration
public ZigguratUniformGenerator(double min, double max)
Parameters
Type Name Description
System.Double min

The lower bound for generated values.

System.Double max

The upper bound for generated values.

View Source

ZigguratUniformGenerator(Double, Double, Int32)

Initializes a new instance of the ZigguratUniformOneGenerator class.

Declaration
public ZigguratUniformGenerator(double min, double max, int seed)
Parameters
Type Name Description
System.Double min

The lower bound for generated values.

System.Double max

The upper bound for generated values.

System.Int32 seed

The random seed to use. Default is to use the next value from the the framework-wide random generator.

Properties

View Source

Length

Gets or sets the length of the interval for values generated by this instance. The upper bound will be given by Min + Length.

Declaration
public double Length { get; set; }
Property Value
Type Description
System.Double
View Source

Min

Gets or sets the lower bound for the values generated by this instance.

Declaration
public double Min { get; set; }
Property Value
Type Description
System.Double

Methods

View Source

Generate()

Generates a random vector of observations from the current distribution.

Declaration
public double Generate()
Returns
Type Description
System.Double

A random vector of observations drawn from this distribution.

View Source

Generate(Int32)

Generates a random vector of observations from the current distribution.

Declaration
public double[] Generate(int samples)
Parameters
Type Name Description
System.Int32 samples

The number of samples to generate.

Returns
Type Description
System.Double[]

A random vector of observations drawn from this distribution.

View Source

Generate(Int32, Double[])

Generates a random vector of observations from the current distribution.

Declaration
public double[] Generate(int samples, double[] result)
Parameters
Type Name Description
System.Int32 samples

The number of samples to generate.

System.Double[] result

The location where to store the samples.

Returns
Type Description
System.Double[]

A random vector of observations drawn from this distribution.

Implements

IRandomNumberGenerator<T>

Extension Methods

Matrix.Replace<T>(T, Object, Object)
Matrix.IsEqual(Object, Object, Decimal, Decimal)
EntityBaseExtensions.HasProperty(Object, String)
ArrayExtensions.Concatenate<T>(T, T[])
CollectionExtensions.FromHierarchy<TSource>(TSource, Func<TSource, TSource>, Func<TSource, Boolean>)
CollectionExtensions.FromHierarchy<TSource>(TSource, Func<TSource, TSource>)
ObjectExtensions.Clone<T>(T)
ObjectExtensions.To<T>(Object)
ObjectExtensions.To(Object, Type)
ObjectExtensions.HasMethod(Object, String)
ObjectExtensions.AddressOf<T>(T)
ReflectionExtensions.GetIdentityValue<T>(T)
ReflectionExtensions.GetIdentityValue<T, TResult>(T)
ReflectionExtensions.GetIdentityProperty<T>(T)
ReflectionExtensions.HasIdentityProperty<T>(T)
ReflectionExtensions.GetPropertyValue<T, TResult>(T, String, TResult)
ReflectionExtensions.GetPropertyInfo<T, TValue>(T, Expression<Func<T, TValue>>)
ReflectionExtensions.GetTitleValue<T>(T)
ReflectionExtensions.HasParentIdentityProperty<T>(T)
ReflectionExtensions.GetParentIdentityProperty<T>(T)
ReflectionExtensions.IsFreeApplication<T>(T)