Vidya fix

This commit is contained in:
Miha Kralj
2024-09-30 09:21:52 -07:00
parent c35d46a962
commit 8a3c257038
+5 -7
View File
@@ -10,10 +10,10 @@ public class Vidya : AbstractBase
private readonly int _longPeriod;
private readonly double _alpha;
private double _lastVIDYA, _p_lastVIDYA;
private CircularBuffer? _shortBuffer;
private CircularBuffer? _longBuffer;
private readonly CircularBuffer? _shortBuffer;
private readonly CircularBuffer? _longBuffer;
public Vidya(int shortPeriod, int longPeriod = 0, double alpha = 0.2) : base()
public Vidya(int shortPeriod, int longPeriod = 0, double alpha = 0.2)
{
if (shortPeriod < 1)
{
@@ -39,8 +39,6 @@ public class Vidya : AbstractBase
{
base.Init();
_lastVIDYA = 0;
_shortBuffer = new CircularBuffer(_shortPeriod);
_longBuffer = new CircularBuffer(_longPeriod);
}
protected override void ManageState(bool isNew)
@@ -60,7 +58,7 @@ public class Vidya : AbstractBase
protected override double Calculation()
{
ManageState(Input.IsNew);
_shortBuffer!.Add(Input.Value, Input.IsNew);
_longBuffer!.Add(Input.Value, Input.IsNew);
@@ -84,7 +82,7 @@ public class Vidya : AbstractBase
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private double CalculateStdDev(CircularBuffer buffer)
private static double CalculateStdDev(CircularBuffer buffer)
{
double mean = buffer.Average();
double sumSquaredDiff = buffer.Sum(x => Math.Pow(x - mean, 2));