normalization of methods

This commit is contained in:
Miha Kralj
2026-02-10 21:33:16 -08:00
parent 915d7a007b
commit 6d6259a47d
527 changed files with 10525 additions and 2123 deletions
+10 -3
View File
@@ -68,7 +68,7 @@ public sealed class Mdape : AbstractBase
public override TSeries Update(TSeries source)
{
throw new NotSupportedException("MdAPE requires two inputs. Use Calculate(actualSeries, predictedSeries, period).");
throw new NotSupportedException("MdAPE requires two inputs. Use Batch(actualSeries, predictedSeries, period).");
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
@@ -164,7 +164,7 @@ public sealed class Mdape : AbstractBase
return (_sortBuffer[mid - 1] + _sortBuffer[mid]) * 0.5;
}
public static TSeries Calculate(TSeries actual, TSeries predicted, int period)
public static TSeries Batch(TSeries actual, TSeries predicted, int period)
{
if (actual.Count != predicted.Count)
{
@@ -263,6 +263,13 @@ public sealed class Mdape : AbstractBase
}
}
public static (TSeries Results, Mdape Indicator) Calculate(TSeries actual, TSeries predicted, int period)
{
var indicator = new Mdape(period);
TSeries results = Batch(actual, predicted, period);
return (results, indicator);
}
/// <summary>
/// Dual-heap based sliding window median calculator.
/// Maintains O(log n) insert/remove and O(1) median query.
@@ -405,4 +412,4 @@ public sealed class Mdape : AbstractBase
}
}
}
}
}