16 lines
558 B
C#
16 lines
558 B
C#
using System.Numerics;
|
|
|
|
namespace FastRng.Distributions;
|
|
|
|
public sealed class BetaA2B2<TNum> : Distribution<TNum> where TNum : IFloatingPointIeee754<TNum>
|
|
{
|
|
private static readonly TNum ALPHA = TNum.One + TNum.One;
|
|
private static readonly TNum BETA = TNum.One + TNum.One;
|
|
private static readonly TNum CONSTANT = TNum.CreateChecked(4);
|
|
|
|
public BetaA2B2(IRandom<TNum> rng) : base(rng)
|
|
{
|
|
}
|
|
|
|
private protected override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One);
|
|
} |