Refactor event handling and improve argument validation across indicators

- Updated event handler signatures to use TValueEventArgs for consistency in Mama, Mgdi, Pwma, Rma, Sma, Ssf, Super, T3, Tema, Trima, Usf, Vidya, Wma, and Atr classes.
- Enhanced argument validation by specifying parameter names in exceptions for clarity.
- Adjusted tests to align with new event handler signatures.
- Improved code readability and maintainability by using structured records and lambda expressions.
This commit is contained in:
Miha Kralj
2025-12-27 15:46:28 -08:00
parent 4750c2b1e8
commit d7dbd7078a
73 changed files with 502 additions and 300 deletions
+3 -3
View File
@@ -395,7 +395,7 @@ public static class SimdExtensions
public static void Add(ReadOnlySpan<double> left, ReadOnlySpan<double> right, Span<double> result)
{
if (left.Length != right.Length || left.Length != result.Length)
throw new ArgumentException("All spans must have the same length");
throw new ArgumentException("All spans must have the same length", nameof(result));
int i = 0;
if (Vector.IsHardwareAccelerated && left.Length >= Vector<double>.Count)
@@ -423,7 +423,7 @@ public static class SimdExtensions
public static void Subtract(ReadOnlySpan<double> left, ReadOnlySpan<double> right, Span<double> result)
{
if (left.Length != right.Length || left.Length != result.Length)
throw new ArgumentException("All spans must have the same length");
throw new ArgumentException("All spans must have the same length", nameof(result));
int i = 0;
if (Vector.IsHardwareAccelerated && left.Length >= Vector<double>.Count)
@@ -451,7 +451,7 @@ public static class SimdExtensions
public static double DotProduct(this ReadOnlySpan<double> a, ReadOnlySpan<double> b)
{
if (a.Length != b.Length)
throw new ArgumentException("Spans must have equal length");
throw new ArgumentException("Spans must have equal length", nameof(b));
if (a.IsEmpty) return 0.0;