Using NaN instead of 0.0
This commit is contained in:
parent
9ba0eb9478
commit
30457a7f62
@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@ -24,7 +25,7 @@ namespace FastRng.Double.Distributions
|
||||
public async ValueTask<double> GetDistributedValue(CancellationToken token)
|
||||
{
|
||||
if (this.Random == null)
|
||||
return 0.0;
|
||||
return System.Double.NaN;
|
||||
|
||||
return await this.Random.NextNumber(new Gamma{ Shape = 0.5 * this.DegreesOfFreedom, Scale = 2.0 }, token);
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ namespace FastRng.Double.Distributions
|
||||
public async ValueTask<double> GetDistributedValue(CancellationToken token)
|
||||
{
|
||||
if (this.Random == null)
|
||||
return 0.0;
|
||||
return System.Double.NaN;
|
||||
|
||||
if(this.Mean == 1.0)
|
||||
return -Math.Log(await this.Random.GetUniform(token));
|
||||
|
@ -29,7 +29,7 @@ namespace FastRng.Double.Distributions
|
||||
public async ValueTask<double> GetDistributedValue(CancellationToken token)
|
||||
{
|
||||
if (this.Random == null)
|
||||
return 0.0;
|
||||
return System.Double.NaN;
|
||||
|
||||
// Implementation based on "A Simple Method for Generating Gamma Variables"
|
||||
// by George Marsaglia and Wai Wan Tsang. ACM Transactions on Mathematical Software
|
||||
|
@ -27,7 +27,7 @@ namespace FastRng.Double.Distributions
|
||||
public async ValueTask<double> GetDistributedValue(CancellationToken token = default)
|
||||
{
|
||||
if (this.Random == null)
|
||||
return 0.0;
|
||||
return System.Double.NaN;
|
||||
|
||||
var u1 = await this.Random.GetUniform(token);
|
||||
var u2 = await this.Random.GetUniform(token);
|
||||
|
@ -7,6 +7,6 @@ namespace FastRng.Double.Distributions
|
||||
{
|
||||
public IRandom Random { get; set; }
|
||||
|
||||
public async ValueTask<double> GetDistributedValue(CancellationToken token = default) => this.Random == null ? 0.0 : await this.Random.GetUniform(token);
|
||||
public async ValueTask<double> GetDistributedValue(CancellationToken token = default) => this.Random == null ? System.Double.NaN : await this.Random.GetUniform(token);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user