[CodeFactor] Apply fixes to commit 9697fac

This commit is contained in:
codefactor-io
2026-03-14 05:03:08 +00:00
parent 9697facfb4
commit e35ff7fa3f
164 changed files with 458 additions and 530 deletions
-2
View File
@@ -189,7 +189,6 @@ public sealed class Granger : AbstractBase
double oldY = _windowY.Oldest;
double oldYLag = _windowYLag.Oldest;
double oldXLag = _windowXLag.Oldest;
{ double yk = -oldY - _sumYComp; double t = _sumY + yk; _sumYComp = (t - _sumY) - yk; _sumY = t; }
{ double yk = -oldYLag - _sumYLagComp; double t = _sumYLag + yk; _sumYLagComp = (t - _sumYLag) - yk; _sumYLag = t; }
{ double yk = -oldXLag - _sumXLagComp; double t = _sumXLag + yk; _sumXLagComp = (t - _sumXLag) - yk; _sumXLag = t; }
@@ -205,7 +204,6 @@ public sealed class Granger : AbstractBase
_windowY.Add(y);
_windowYLag.Add(yLag);
_windowXLag.Add(xLag);
{ double yk = y - _sumYComp; double t = _sumY + yk; _sumYComp = (t - _sumY) - yk; _sumY = t; }
{ double yk = yLag - _sumYLagComp; double t = _sumYLag + yk; _sumYLagComp = (t - _sumYLag) - yk; _sumYLag = t; }
{ double yk = xLag - _sumXLagComp; double t = _sumXLag + yk; _sumXLagComp = (t - _sumXLag) - yk; _sumXLag = t; }
+4 -4
View File
@@ -357,7 +357,7 @@ public sealed class Jb : AbstractBase
double meanSq = mean * mean;
// m₂ = (Σx² - Σx²/n) / n
double m2Numerator = sumSq - (sum * sum) / n;
double m2Numerator = sumSq - ((sum * sum) / n);
if (m2Numerator < Epsilon)
{
return 0;
@@ -479,8 +479,8 @@ public sealed class Jb : AbstractBase
// Kahan subtract old, add new
{ double y = (val - oldVal) - sumComp; double t = sum + y; sumComp = (t - sum) - y; sum = t; }
{ double y = (vSq - oSq) - sumSqComp; double t = sumSq + y; sumSqComp = (t - sumSq) - y; sumSq = t; }
{ double y = (vSq * val - oSq * oldVal) - sumCuComp; double t = sumCu + y; sumCuComp = (t - sumCu) - y; sumCu = t; }
{ double y = (vSq * vSq - oSq * oSq) - sumQuComp; double t = sumQu + y; sumQuComp = (t - sumQu) - y; sumQu = t; }
{ double y = ((vSq * val) - (oSq * oldVal)) - sumCuComp; double t = sumCu + y; sumCuComp = (t - sumCu) - y; sumCu = t; }
{ double y = ((vSq * vSq) - (oSq * oSq)) - sumQuComp; double t = sumQu + y; sumQuComp = (t - sumQu) - y; sumQu = t; }
output[i] = CalculateJbFromSums(sum, sumSq, sumCu, sumQu, period);
}
@@ -540,7 +540,7 @@ public sealed class Jb : AbstractBase
var vEpsilon = Vector256.Create(Epsilon);
var vZero = Vector256<double>.Zero;
int simdEnd = period + ((len - period) / VectorWidth) * VectorWidth;
int simdEnd = period + (((len - period) / VectorWidth) * VectorWidth);
for (int i = period; i < simdEnd; i += VectorWidth)
{
+11 -12
View File
@@ -94,10 +94,10 @@ public sealed class LinReg : AbstractBase
_sum_x = 0.5 * period * (period - 1);
// sum_x2 = 0^2 + ... + (n-1)^2 = (n-1)n(2n-1)/6
double sum_x2 = (period - 1.0) * period * (2.0 * period - 1.0) / 6.0;
double sum_x2 = (period - 1.0) * period * ((2.0 * period) - 1.0) / 6.0;
// denominator = n * sum_x2 - sum_x^2
_denominator = period * sum_x2 - _sum_x * _sum_x;
_denominator = (period * sum_x2) - (_sum_x * _sum_x);
}
public LinReg(ITValuePublisher source, int period, int offset = 0) : this(period, offset)
@@ -130,7 +130,7 @@ public sealed class LinReg : AbstractBase
// O(1) update for sum_xy with Kahan compensation
// sum_xy_new = sum_xy_old + sum_y_prev - n * oldest
{
double delta = prev_sum_y - _period * oldest;
double delta = prev_sum_y - (_period * oldest);
double y = delta - _state.SumXYComp;
double t = _state.SumXY + y;
_state.SumXYComp = (t - _state.SumXY) - y;
@@ -148,7 +148,7 @@ public sealed class LinReg : AbstractBase
// O(1) update for sum_y2 with Kahan: subtract oldest², add val²
{
double delta = val * val - oldest * oldest;
double delta = (val * val) - (oldest * oldest);
double y = delta - _state.SumY2Comp;
double t = _state.SumY2 + y;
_state.SumY2Comp = (t - _state.SumY2) - y;
@@ -235,8 +235,8 @@ public sealed class LinReg : AbstractBase
if (!_buffer.IsFull)
{
sx = 0.5 * n * (n - 1);
double sx2 = (n - 1.0) * n * (2.0 * n - 1.0) / 6.0;
denom = n * sx2 - sx * sx;
double sx2 = (n - 1.0) * n * ((2.0 * n) - 1.0) / 6.0;
denom = (n * sx2) - (sx * sx);
}
if (Math.Abs(denom) < MinDenominator)
@@ -379,7 +379,6 @@ public sealed class LinReg : AbstractBase
try
{
double sum_y = 0;
double sum_xy = 0;
double sumYComp = 0; // Kahan compensation for sum_y
@@ -389,8 +388,8 @@ public sealed class LinReg : AbstractBase
int count = 0;
double full_sum_x = 0.5 * period * (period - 1);
double full_sum_x2 = (period - 1.0) * period * (2.0 * period - 1.0) / 6.0;
double full_denom = period * full_sum_x2 - full_sum_x * full_sum_x;
double full_sum_x2 = (period - 1.0) * period * ((2.0 * period) - 1.0) / 6.0;
double full_denom = (period * full_sum_x2) - (full_sum_x * full_sum_x);
for (int i = 0; i < len; i++)
{
@@ -424,8 +423,8 @@ public sealed class LinReg : AbstractBase
{
double n = count;
double sx = 0.5 * n * (n - 1);
double sx2 = (n - 1.0) * n * (2.0 * n - 1.0) / 6.0;
double denom = n * sx2 - sx * sx;
double sx2 = (n - 1.0) * n * ((2.0 * n) - 1.0) / 6.0;
double denom = (n * sx2) - (sx * sx);
if (Math.Abs(denom) < MinDenominator)
{
@@ -454,7 +453,7 @@ public sealed class LinReg : AbstractBase
// Kahan compensated update for sum_xy
{
double delta = prev_sum_y - period * oldest;
double delta = prev_sum_y - (period * oldest);
double y = delta - sumXYComp;
double t = sum_xy + y;
sumXYComp = (t - sum_xy) - y;
+1 -1
View File
@@ -263,7 +263,7 @@ public sealed class Pacf : AbstractBase
// Update coefficients: φ_kj = φ_{k-1,j} - φ_kk * φ_{k-1,k-j}
for (int j = 1; j < k; j++)
{
phi[j] = phiPrev[j] - phi[k] * phiPrev[k - j];
phi[j] = phiPrev[j] - (phi[k] * phiPrev[k - j]);
}
}
+11 -11
View File
@@ -100,7 +100,7 @@ public sealed class Polyfit : AbstractBase
// Power sums and cross products accumulate with normalized t ∈ [0, 1].
// Max degree=6 → sz=7, matrix=7*8=56 doubles + powSums=13 + crossSums=7 — all stackalloc safe.
Span<double> powSums = stackalloc double[2 * m + 1];
Span<double> powSums = stackalloc double[(2 * m) + 1];
Span<double> crossSums = stackalloc double[sz];
Span<double> aug = stackalloc double[sz * (sz + 1)]; // augmented matrix row-major
@@ -133,19 +133,19 @@ public sealed class Polyfit : AbstractBase
{
for (int col = 0; col < sz; col++)
{
aug[row * stride + col] = powSums[row + col];
aug[(row * stride) + col] = powSums[row + col];
}
aug[row * stride + sz] = crossSums[row];
aug[(row * stride) + sz] = crossSums[row];
}
// Gaussian elimination with partial pivoting
for (int col = 0; col < sz; col++)
{
int pivotRow = col;
double pivotMax = Math.Abs(aug[col * stride + col]);
double pivotMax = Math.Abs(aug[(col * stride) + col]);
for (int row = col + 1; row < sz; row++)
{
double absVal = Math.Abs(aug[row * stride + col]);
double absVal = Math.Abs(aug[(row * stride) + col]);
if (absVal > pivotMax)
{
pivotMax = absVal;
@@ -168,13 +168,13 @@ public sealed class Polyfit : AbstractBase
}
}
double diag = aug[col * stride + col];
double diag = aug[(col * stride) + col];
for (int row = col + 1; row < sz; row++)
{
double factor = aug[row * stride + col] / diag;
double factor = aug[(row * stride) + col] / diag;
for (int k = col; k <= sz; k++)
{
aug[row * stride + k] = Math.FusedMultiplyAdd(-factor, aug[col * stride + k], aug[row * stride + k]);
aug[(row * stride) + k] = Math.FusedMultiplyAdd(-factor, aug[(col * stride) + k], aug[(row * stride) + k]);
}
}
}
@@ -183,12 +183,12 @@ public sealed class Polyfit : AbstractBase
Span<double> a = stackalloc double[sz];
for (int row = sz - 1; row >= 0; row--)
{
double val = aug[row * stride + sz];
double val = aug[(row * stride) + sz];
for (int k = row + 1; k < sz; k++)
{
val = Math.FusedMultiplyAdd(-aug[row * stride + k], a[k], val);
val = Math.FusedMultiplyAdd(-aug[(row * stride) + k], a[k], val);
}
a[row] = val / aug[row * stride + row];
a[row] = val / aug[(row * stride) + row];
}
// Evaluate polynomial at t=1: P(1) = a0 + a1 + a2 + ... + am
+17 -17
View File
@@ -81,8 +81,8 @@ public sealed class Stderr : AbstractBase
// Precompute fixed regression constants
_sumX = 0.5 * period * (period - 1);
_sumX2 = (period - 1.0) * period * (2.0 * period - 1.0) / 6.0;
_denom = period * _sumX2 - _sumX * _sumX;
_sumX2 = (period - 1.0) * period * ((2.0 * period) - 1.0) / 6.0;
_denom = (period * _sumX2) - (_sumX * _sumX);
}
/// <summary>Creates a chaining constructor that subscribes to an upstream publisher.</summary>
@@ -133,7 +133,7 @@ public sealed class Stderr : AbstractBase
// Correct running sums for newest bar change
_sumY = _p_sumY - _p_lastVal + val;
_sumXY = _p_sumXY - (_period - 1) * (_p_lastVal - val);
_sumXY = _p_sumXY - ((_period - 1) * (_p_lastVal - val));
// Re-derive sumXY correctly via recalculation to avoid drift on bar corrections
if (_buffer.Count > 0)
{
@@ -211,7 +211,7 @@ public sealed class Stderr : AbstractBase
// O(1) update for sumXY with Kahan compensation
// ΣXY_new = ΣXY_old - ΣY_old + oldest + (N-1)*val
{
double delta = -prevSumY + oldest + (_period - 1) * val;
double delta = -prevSumY + oldest + ((_period - 1) * val);
double y = delta - _sumXYComp;
double t = _sumXY + y;
_sumXYComp = (t - _sumXY) - y;
@@ -266,16 +266,16 @@ public sealed class Stderr : AbstractBase
double sumY = _sumY;
double sumXY = _sumXY;
double sumX = (n == _period) ? _sumX : 0.5 * n * (n - 1);
double sumX2 = (n == _period) ? _sumX2 : (n - 1.0) * n * (2.0 * n - 1.0) / 6.0;
double denom = (n == _period) ? _denom : n * sumX2 - sumX * sumX;
double sumX2 = (n == _period) ? _sumX2 : (n - 1.0) * n * ((2.0 * n) - 1.0) / 6.0;
double denom = (n == _period) ? _denom : (n * sumX2) - (sumX * sumX);
if (denom == 0)
{
return 0;
}
double slope = (n * sumXY - sumX * sumY) / denom;
double intercept = (sumY - slope * sumX) / n;
double slope = ((n * sumXY) - (sumX * sumY)) / denom;
double intercept = (sumY - (slope * sumX)) / n;
// O(N): accumulate residual sum of squares
double ssr = 0;
@@ -437,8 +437,8 @@ public sealed class Stderr : AbstractBase
// Precompute constants for full period window
double sumXFull = 0.5 * period * (period - 1);
double sumX2Full = (period - 1.0) * period * (2.0 * period - 1.0) / 6.0;
double denomFull = period * sumX2Full - sumXFull * sumXFull;
double sumX2Full = (period - 1.0) * period * ((2.0 * period) - 1.0) / 6.0;
double denomFull = (period * sumX2Full) - (sumXFull * sumXFull);
double sumY = 0;
double sumXY = 0;
@@ -480,7 +480,7 @@ public sealed class Stderr : AbstractBase
// O(1) Kahan compensated update for sumXY
{
double delta = -sumY + oldest + (period - 1) * newest;
double delta = -sumY + oldest + ((period - 1) * newest);
double y = delta - sumXYComp;
double t = sumXY + y;
sumXYComp = (t - sumXY) - y;
@@ -496,8 +496,8 @@ public sealed class Stderr : AbstractBase
sumY = t;
}
double slope = (period * sumXY - sumXFull * sumY) / denomFull;
double intercept = (sumY - slope * sumXFull) / period;
double slope = ((period * sumXY) - (sumXFull * sumY)) / denomFull;
double intercept = (sumY - (slope * sumXFull)) / period;
double ssr = 0;
int start = i - period + 1;
@@ -529,16 +529,16 @@ public sealed class Stderr : AbstractBase
}
double sumX = 0.5 * n * (n - 1);
double sumX2 = (n - 1.0) * n * (2.0 * n - 1.0) / 6.0;
double denom = n * sumX2 - sumX * sumX;
double sumX2 = (n - 1.0) * n * ((2.0 * n) - 1.0) / 6.0;
double denom = (n * sumX2) - (sumX * sumX);
if (denom == 0)
{
return 0;
}
double slope = (n * sumXY - sumX * sumY) / denom;
double intercept = (sumY - slope * sumX) / n;
double slope = ((n * sumXY) - (sumX * sumY)) / denom;
double intercept = (sumY - (slope * sumX)) / n;
double ssr = 0;
for (int k = 0; k < n; k++)
+2 -2
View File
@@ -314,7 +314,7 @@ public sealed class Trim : AbstractBase
}
int trimCount = (int)(count * trimPct / 100.0);
int keepCount = count - 2 * trimCount;
int keepCount = count - (2 * trimCount);
if (keepCount < 1)
{
@@ -341,7 +341,7 @@ public sealed class Trim : AbstractBase
}
int trimCount = (int)(count * trimPct / 100.0);
int keepCount = count - 2 * trimCount;
int keepCount = count - (2 * trimCount);
if (keepCount < 1)
{
+1 -1
View File
@@ -306,7 +306,7 @@ public sealed class Variance : AbstractBase
}
// Kahan sliding window for sumSq: sumSq += (val² - oldVal²)
{
double delta = (val * val - oldVal * oldVal) - sumSqComp;
double delta = ((val * val) - (oldVal * oldVal)) - sumSqComp;
double t = sumSq + delta;
sumSqComp = (t - sumSq) - delta;
sumSq = t;
+2 -2
View File
@@ -127,7 +127,7 @@ public sealed class Zscore : AbstractBase
double sum = _buffer.Sum;
double mean = sum / n;
double numerator = _sumSq - (sum * sum) / n;
double numerator = _sumSq - ((sum * sum) / n);
if (numerator < 0)
{
numerator = 0;
@@ -317,7 +317,7 @@ public sealed class Zscore : AbstractBase
int n = count;
double mean = sum / n;
double numerator = sumSq - (sum * sum) / n;
double numerator = sumSq - ((sum * sum) / n);
if (numerator < 0)
{
numerator = 0;
+2 -2
View File
@@ -132,7 +132,7 @@ public sealed class Ztest : AbstractBase
double sum = _buffer.Sum;
double mean = sum / n;
double numerator = _sumSq - (sum * sum) / n;
double numerator = _sumSq - ((sum * sum) / n);
if (numerator < 0)
{
numerator = 0;
@@ -325,7 +325,7 @@ public sealed class Ztest : AbstractBase
int n = count;
double mean = sum / n;
double numerator = sumSq - (sum * sum) / n;
double numerator = sumSq - ((sum * sum) / n);
if (numerator < 0)
{
numerator = 0;