Resolve "Bug: Cannot implement own distributions" #14

Merged
thorsten merged 1 commits from 5-bug-cannot-implement-own-distributions into main 2023-10-25 13:22:04 +00:00
20 changed files with 41 additions and 21 deletions

View File

@ -12,5 +12,6 @@ public sealed class BetaA2B2<TNum> : Distribution<TNum> where TNum : IFloatingPo
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One);
} }

View File

@ -12,5 +12,6 @@ public sealed class BetaA2B5<TNum> : Distribution<TNum> where TNum : IFloatingPo
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One);
} }

View File

@ -12,5 +12,6 @@ public sealed class BetaA5B2<TNum> : Distribution<TNum> where TNum : IFloatingPo
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow(x, ALPHA - TNum.One) * TNum.Pow(TNum.One - x, BETA - TNum.One);
} }

View File

@ -13,5 +13,6 @@ public sealed class CauchyLorentzX0<TNum> : Distribution<TNum> where TNum : IFlo
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * ( TNum.One / (TNum.Pi * SCALE)) * ((SCALE * SCALE) / (TNum.Pow(x - MEDIAN, TWO) + (SCALE * SCALE))); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * ( TNum.One / (TNum.Pi * SCALE)) * ((SCALE * SCALE) / (TNum.Pow(x - MEDIAN, TWO) + (SCALE * SCALE)));
} }

View File

@ -13,5 +13,6 @@ public sealed class CauchyLorentzX1<TNum> : Distribution<TNum> where TNum : IFlo
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * (TNum.One / (TNum.Pi * SCALE)) * ((SCALE * SCALE) / (TNum.Pow(x - MEDIAN, TWO) + (SCALE * SCALE))); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * (TNum.One / (TNum.Pi * SCALE)) * ((SCALE * SCALE) / (TNum.Pow(x - MEDIAN, TWO) + (SCALE * SCALE)));
} }

View File

@ -24,5 +24,6 @@ public sealed class ChiSquareK1<TNum> : Distribution<TNum> where TNum : IFloatin
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * ((TNum.Pow(x, K_HALF_MINUS_ONE) * TNum.Exp(-x * HALF)) / DIVISOR); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * ((TNum.Pow(x, K_HALF_MINUS_ONE) * TNum.Exp(-x * HALF)) / DIVISOR);
} }

View File

@ -24,5 +24,6 @@ public sealed class ChiSquareK10<TNum> : Distribution<TNum> where TNum : IFloati
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * ((TNum.Pow(x, K_HALF_MINUS_ONE) * TNum.Exp(-x * HALF)) / DIVISOR); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * ((TNum.Pow(x, K_HALF_MINUS_ONE) * TNum.Exp(-x * HALF)) / DIVISOR);
} }

View File

@ -24,5 +24,6 @@ public sealed class ChiSquareK4<TNum> : Distribution<TNum> where TNum : IFloatin
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * ((TNum.Pow(x, K_HALF_MINUS_ONE) * TNum.Exp(-x * HALF)) / DIVISOR); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * ((TNum.Pow(x, K_HALF_MINUS_ONE) * TNum.Exp(-x * HALF)) / DIVISOR);
} }

View File

@ -11,5 +11,6 @@ public sealed class ExponentialLa10<TNum> : Distribution<TNum> where TNum : IFlo
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(-LAMBDA * x); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(-LAMBDA * x);
} }

View File

@ -11,5 +11,6 @@ public sealed class ExponentialLa5<TNum> : Distribution<TNum> where TNum : IFloa
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(-LAMBDA * x); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(-LAMBDA * x);
} }

View File

@ -21,5 +21,6 @@ public sealed class GammaA5B15<TNum> : Distribution<TNum> where TNum : IFloating
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * ((BETA_TO_THE_ALPHA * TNum.Pow(x, ALPHA - TNum.One) * TNum.Exp(-BETA * x)) / GAMMA_ALPHA); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * ((BETA_TO_THE_ALPHA * TNum.Pow(x, ALPHA - TNum.One) * TNum.Exp(-BETA * x)) / GAMMA_ALPHA);
} }

View File

@ -11,5 +11,6 @@ public sealed class InverseExponentialLa10<TNum> : Distribution<TNum> where TNum
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(LAMBDA * x); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(LAMBDA * x);
} }

View File

@ -11,5 +11,6 @@ public sealed class InverseExponentialLa5<TNum> : Distribution<TNum> where TNum
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(LAMBDA * x); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * LAMBDA * TNum.Exp(LAMBDA * x);
} }

View File

@ -22,5 +22,6 @@ public sealed class InverseGammaA3B05<TNum> : Distribution<TNum> where TNum : IF
{ {
} }
private protected override TNum ShapeFunction(TNum x) => FACTOR_LEFT * TNum.Pow(x, -ALPHA - TNum.One) * TNum.Exp(-BETA / x); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => FACTOR_LEFT * TNum.Pow(x, -ALPHA - TNum.One) * TNum.Exp(-BETA / x);
} }

View File

@ -20,5 +20,6 @@ public sealed class LaplaceB01M0<TNum> : Distribution<TNum> where TNum : IFloati
{ {
} }
private protected override TNum ShapeFunction(TNum x) => FACTOR_LEFT * TNum.Exp(-TNum.Abs(x - MU) / B); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => FACTOR_LEFT * TNum.Exp(-TNum.Abs(x - MU) / B);
} }

View File

@ -20,5 +20,6 @@ public sealed class LaplaceB01M05<TNum> : Distribution<TNum> where TNum : IFloat
{ {
} }
private protected override TNum ShapeFunction(TNum x) => FACTOR_LEFT * TNum.Exp(-TNum.Abs(x - MU) / B); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => FACTOR_LEFT * TNum.Exp(-TNum.Abs(x - MU) / B);
} }

View File

@ -20,5 +20,6 @@ public sealed class LogNormalS1M0<TNum> : Distribution<TNum> where TNum : IFloat
{ {
} }
private protected override TNum ShapeFunction(TNum x) => (CONSTANT / (x * FACTOR)) * TNum.Exp( -(TNum.Pow(TNum.Log(x) - MU, TWO) / (TWO * TNum.Pow(SIGMA, TWO)))); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => (CONSTANT / (x * FACTOR)) * TNum.Exp( -(TNum.Pow(TNum.Log(x) - MU, TWO) / (TWO * TNum.Pow(SIGMA, TWO))));
} }

View File

@ -14,5 +14,6 @@ public sealed class NormalS02M05<TNum> : Distribution<TNum> where TNum : IFloati
{ {
} }
private protected override TNum ShapeFunction(TNum x) => TNum.One / (STD_DEV * SQRT_2_PI) * TNum.Exp(NEGATIVE_HALF * TNum.Pow((x - MEAN) / STD_DEV, TWO)); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => TNum.One / (STD_DEV * SQRT_2_PI) * TNum.Exp(NEGATIVE_HALF * TNum.Pow((x - MEAN) / STD_DEV, TWO));
} }

View File

@ -26,5 +26,6 @@ public sealed class StudentTNu1<TNum> : Distribution<TNum> where TNum : IFloatin
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow((DIVIDEND / DIVISOR) * TNum.Pow( TNum.One + TNum.Pow(START + x * COMPRESS, TWO) / NU, EXPONENT), COMPRESS); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * TNum.Pow((DIVIDEND / DIVISOR) * TNum.Pow( TNum.One + TNum.Pow(START + x * COMPRESS, TWO) / NU, EXPONENT), COMPRESS);
} }

View File

@ -12,5 +12,6 @@ public sealed class WeibullK05La1<TNum> : Distribution<TNum> where TNum : IFloat
{ {
} }
private protected override TNum ShapeFunction(TNum x) => CONSTANT * ( (K / LAMBDA) * TNum.Pow(x / LAMBDA, K - TNum.One) * TNum.Exp(-TNum.Pow(x/LAMBDA, K))); /// <inheritdoc />
public override TNum ShapeFunction(TNum x) => CONSTANT * ( (K / LAMBDA) * TNum.Pow(x / LAMBDA, K - TNum.One) * TNum.Exp(-TNum.Pow(x/LAMBDA, K)));
} }