Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics.Random
    • ExtendedRandom Class
    • GfsrGenerator Class
    • MersenneTwister Class
    • ParallelRandom Class
    • QuasiRandom Class
    • RandomizedCollection(T) Class
    • RandomWordGenerator Class
    • RanLux Class
    • RanLux24 Class
    • RanLuxLuxuryLevel Enumeration
    • Shuffler Class
    • SobolSequenceGenerator Class
  • GfsrGenerator Class
    • GfsrGenerator Constructors
    • Methods

GfsrGenerator Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents a generalized feedback shift register pseudo-random number generator.
Inheritance Hierarchy

SystemObject
  SystemRandom
    Extreme.Mathematics.RandomExtendedRandom
      Extreme.Mathematics.RandomRandomWordGenerator
        Extreme.Mathematics.RandomGfsrGenerator

Namespace:  Extreme.Mathematics.Random
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
[SerializableAttribute]
public sealed class GfsrGenerator : RandomWordGenerator
<SerializableAttribute>
Public NotInheritable Class GfsrGenerator
	Inherits RandomWordGenerator
[SerializableAttribute]
public ref class GfsrGenerator sealed : public RandomWordGenerator
[<SealedAttribute>]
[<SerializableAttribute>]
type GfsrGenerator =  
    class
        inherit RandomWordGenerator
    end

The GfsrGenerator type exposes the following members.

Constructors

  NameDescription
Public methodGfsrGenerator
Initializes a new instance of the GfsrGenerator class using a time-dependent default seed value.
Public methodGfsrGenerator(Int32)
Initializes a new instance of the GfsrGenerator class using the specified seed value.
Public methodGfsrGenerator(Int32)
Initializes a new instance of the GfsrGenerator class using the specified seed array of seed values.
Top
Methods

  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodNext
Returns a nonnegative random number.
(Inherited from RandomWordGenerator.)
Public methodNext(Int32)
Returns a non-negative random integer that is less than the specified maximum.
(Inherited from Random.)
Public methodNext(Int32, Int32)
Returns a random integer that is within a specified range.
(Inherited from Random.)
Public methodNextBytes(Byte)
Fills the elements of a specified array of bytes with random numbers.
(Inherited from RandomWordGenerator.)
Public methodNextBytes(SpanByte)
Fills the elements of a specified span of bytes with random numbers.
(Inherited from Random.)
Public methodNextDouble
Returns a random number between 0 and 1.
(Inherited from RandomWordGenerator.)
Public methodRestart
Restarts the random number generator using the original seed.
(Overrides ExtendedRandomRestart.)
Public methodRestart(Int32)
Restarts the random number generator using the specified seed.
(Overrides ExtendedRandomRestart(Int32).)
Public methodRestart(Int32)
Restarts the random number generator using the specified seed array.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Extension Methods

  NameDescription
Public Extension MethodAsParallel
Returns a thread-safe version of this random number generator.
(Defined by RandomExtensions.)
Public Extension MethodCorrelatedSamples
Generates a series of random variables with the specified correlation matrix.
(Defined by RandomExtensions.)
Public Extension MethodFill(IListDouble)Overloaded.
Fills a Double array with random numbers.
(Defined by RandomExtensions.)
Public Extension MethodFill(IListInt32)Overloaded.
Fills an Int32 array with random numbers.
(Defined by RandomExtensions.)
Public Extension MethodFill(Double, ContinuousDistribution)Overloaded.
Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(Int32, DiscreteDistribution)Overloaded.
Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(VectorDouble, ContinuousDistribution)Overloaded.
Fills a vector with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(VectorDouble, DiscreteDistribution)Overloaded.
Fills a vector with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(Double, Int32, Int32)Overloaded.
Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(IListDouble, Int32, Int32)Overloaded.
Fills a Double array with random numbers.
(Defined by RandomExtensions.)
Public Extension MethodFill(IListInt32, Int32, Int32)Overloaded.
Fills an Int32 array with random numbers.
(Defined by RandomExtensions.)
Public Extension MethodFill(Int32, Int32, Int32)Overloaded.
Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(Double, Int32, Int32, ContinuousDistribution)Overloaded.
Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFill(Int32, Int32, Int32, DiscreteDistribution)Overloaded.
Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodFillNormal(IListDouble)Overloaded.
Fills a list with normal random numbers with zero mean and unit standard deviation.
(Defined by RandomExtensions.)
Public Extension MethodFillNormal(IListDouble, Int32, Int32)Overloaded.
Fills a list with normal random numbers with zero mean and unit standard deviation.
(Defined by RandomExtensions.)
Public Extension MethodNext
Returns a sample from the specified distribution.
(Defined by RandomExtensions.)
Public Extension MethodNextDouble
Returns a sample from the specified distribution.
(Defined by RandomExtensions.)
Top
Remarks

Use the GfsrGenerator class to represent a pseudo-this.random number generator that uses a fourth order generalized feedback shift register algorithm.

This generalized feedback shift register generator has a very long period of 29689-1. Thanks to its simplicity, it is very fast. On the down side, the start-up time is significant.

GfsrGenerator can be used in place of the Random class to obtain pseudo-random numbers of a higher quality.

Reference: Robert M. Ziff, "Four-tap shift-register-sequence this.random-number generators," Computers in Physics 12(4), Jul/Aug 1998, pp 385-392.

See Also

Reference

Extreme.Mathematics.Random Namespace

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.