mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-16 09:38:05 +00:00
[CodeFactor] Apply fixes to commit 4a01f03
This commit is contained in:
@@ -124,7 +124,6 @@ public sealed class Acf : AbstractBase
|
||||
double oldVal = _buffer.Oldest;
|
||||
_sum -= oldVal;
|
||||
_sumSq = Math.FusedMultiplyAdd(-oldVal, oldVal, _sumSq);
|
||||
|
||||
}
|
||||
|
||||
// Add new value
|
||||
|
||||
@@ -507,5 +507,4 @@ public sealed class Cointegration : AbstractBase
|
||||
|
||||
return (result, indicator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -357,5 +357,4 @@ public sealed class Correlation : AbstractBase
|
||||
|
||||
return (result, indicator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ public sealed class Covariance : AbstractBase
|
||||
if (n >= 2)
|
||||
{
|
||||
// Standard covariance formula: (sumXY - sumX*sumY/n) / denom
|
||||
double numerator = _sumXY - (_sumX * _sumY) / n;
|
||||
double numerator = _sumXY - ((_sumX * _sumY) / n);
|
||||
double denominator = _isPopulation ? n : (n - 1);
|
||||
cov = numerator / denominator;
|
||||
}
|
||||
@@ -278,7 +278,7 @@ public sealed class Covariance : AbstractBase
|
||||
double n = i + 1;
|
||||
if (n >= 2)
|
||||
{
|
||||
double numerator = sumXY - (sumX * sumY) / n;
|
||||
double numerator = sumXY - ((sumX * sumY) / n);
|
||||
double denominator = isPopulation ? n : (n - 1);
|
||||
output[i] = numerator / denominator;
|
||||
}
|
||||
@@ -309,7 +309,7 @@ public sealed class Covariance : AbstractBase
|
||||
|
||||
sumX = sumX - oldX + x;
|
||||
sumY = sumY - oldY + y;
|
||||
sumXY = sumXY - oldX * oldY + x * y;
|
||||
sumXY = sumXY - (oldX * oldY) + (x * y);
|
||||
|
||||
bufferX[bufferIndex] = x;
|
||||
bufferY[bufferIndex] = y;
|
||||
@@ -320,7 +320,7 @@ public sealed class Covariance : AbstractBase
|
||||
}
|
||||
|
||||
double n = period;
|
||||
double numerator = sumXY - (sumX * sumY) / n;
|
||||
double numerator = sumXY - ((sumX * sumY) / n);
|
||||
double denominator = isPopulation ? n : (n - 1);
|
||||
output[i] = numerator / denominator;
|
||||
|
||||
@@ -364,7 +364,7 @@ public sealed class Covariance : AbstractBase
|
||||
double n = i + 1;
|
||||
if (n >= 2)
|
||||
{
|
||||
double num = sumXY - (sumX * sumY) / n;
|
||||
double num = sumXY - ((sumX * sumY) / n);
|
||||
double den = isPopulation ? n : (n - 1);
|
||||
Unsafe.Add(ref outRef, i) = num / den;
|
||||
}
|
||||
@@ -400,7 +400,7 @@ public sealed class Covariance : AbstractBase
|
||||
var vInvDenom = Vector256.Create(invDenom);
|
||||
var vZero = Vector256<double>.Zero;
|
||||
|
||||
int simdEnd = period + ((len - period) / VectorWidth) * VectorWidth;
|
||||
int simdEnd = period + (((len - period) / VectorWidth) * VectorWidth);
|
||||
int tickCount = period;
|
||||
|
||||
for (int i = period; i < simdEnd; i += VectorWidth)
|
||||
@@ -513,9 +513,9 @@ public sealed class Covariance : AbstractBase
|
||||
|
||||
sumX = sumX - oldX + x;
|
||||
sumY = sumY - oldY + y;
|
||||
sumXY = sumXY - oldX * oldY + x * y;
|
||||
sumXY = sumXY - (oldX * oldY) + (x * y);
|
||||
|
||||
double numerator = sumXY - sumX * sumY * invN;
|
||||
double numerator = sumXY - (sumX * sumY * invN);
|
||||
Unsafe.Add(ref outRef, i) = numerator * invDenom;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ public sealed class Kurtosis : AbstractBase
|
||||
|
||||
// Second central moment (variance): m₂ = Σ(x-μ)²/n
|
||||
// = (SumSq - Sum²/n) / n
|
||||
double m2Numerator = _sumSq - (_sum * _sum) / n;
|
||||
double m2Numerator = _sumSq - ((_sum * _sum) / n);
|
||||
if (m2Numerator < Epsilon)
|
||||
{
|
||||
m2Numerator = 0;
|
||||
@@ -165,10 +165,10 @@ public sealed class Kurtosis : AbstractBase
|
||||
// m₄ = SumQu/n - 4·mean·SumCu/n + 6·mean²·SumSq/n - 3·mean⁴
|
||||
// Note: last term -4·mean³·Sum/n + mean⁴ = -4·mean⁴ + mean⁴ = -3·mean⁴
|
||||
double meanSq = mean * mean;
|
||||
double m4 = _sumQu / n
|
||||
- 4.0 * mean * _sumCu / n
|
||||
+ 6.0 * meanSq * _sumSq / n
|
||||
- 3.0 * meanSq * meanSq;
|
||||
double m4 = (_sumQu / n)
|
||||
- (4.0 * mean * _sumCu / n)
|
||||
+ (6.0 * meanSq * _sumSq / n)
|
||||
- (3.0 * meanSq * meanSq);
|
||||
|
||||
// Population excess kurtosis: g₂ = m₄/m₂² - 3
|
||||
double g2 = (m4 / (m2 * m2)) - 3.0;
|
||||
@@ -184,7 +184,7 @@ public sealed class Kurtosis : AbstractBase
|
||||
double denom = (n - 2.0) * (n - 3.0);
|
||||
if (Math.Abs(denom) > Epsilon)
|
||||
{
|
||||
kurtosis = ((n - 1.0) / denom) * ((n + 1.0) * g2 + 6.0);
|
||||
kurtosis = ((n - 1.0) / denom) * (((n + 1.0) * g2) + 6.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -327,7 +327,7 @@ public sealed class Kurtosis : AbstractBase
|
||||
{
|
||||
double mean = sum / n;
|
||||
|
||||
double m2Numerator = sumSq - (sum * sum) / n;
|
||||
double m2Numerator = sumSq - ((sum * sum) / n);
|
||||
if (m2Numerator < Epsilon)
|
||||
{
|
||||
return 0;
|
||||
@@ -342,10 +342,10 @@ public sealed class Kurtosis : AbstractBase
|
||||
|
||||
// Fourth central moment via raw moments
|
||||
double meanSq = mean * mean;
|
||||
double m4 = sumQu / n
|
||||
- 4.0 * mean * sumCu / n
|
||||
+ 6.0 * meanSq * sumSq / n
|
||||
- 3.0 * meanSq * meanSq;
|
||||
double m4 = (sumQu / n)
|
||||
- (4.0 * mean * sumCu / n)
|
||||
+ (6.0 * meanSq * sumSq / n)
|
||||
- (3.0 * meanSq * meanSq);
|
||||
|
||||
double g2 = (m4 / (m2 * m2)) - 3.0;
|
||||
|
||||
@@ -361,7 +361,7 @@ public sealed class Kurtosis : AbstractBase
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((n - 1.0) / denom) * ((n + 1.0) * g2 + 6.0);
|
||||
return ((n - 1.0) / denom) * (((n + 1.0) * g2) + 6.0);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -415,8 +415,8 @@ public sealed class Kurtosis : AbstractBase
|
||||
double oldSq = oldVal * oldVal;
|
||||
sum = sum - oldVal + val;
|
||||
sumSq = sumSq - oldSq + valSq;
|
||||
sumCu = sumCu - oldSq * oldVal + valSq * val;
|
||||
sumQu = sumQu - oldSq * oldSq + valSq * valSq;
|
||||
sumCu = sumCu - (oldSq * oldVal) + (valSq * val);
|
||||
sumQu = sumQu - (oldSq * oldSq) + (valSq * valSq);
|
||||
|
||||
output[i] = CalculateKurtosisFromSums(sum, sumSq, sumCu, sumQu, period, isPopulation);
|
||||
|
||||
@@ -507,7 +507,7 @@ public sealed class Kurtosis : AbstractBase
|
||||
var vFisherNp1 = Vector256.Create(isPopulation ? 1.0 : fisherNp1);
|
||||
var vFisherAdd = Vector256.Create(fisherAdd);
|
||||
|
||||
int simdEnd = period + ((len - period) / VectorWidth) * VectorWidth;
|
||||
int simdEnd = period + (((len - period) / VectorWidth) * VectorWidth);
|
||||
int tickCount = period;
|
||||
|
||||
for (int i = period; i < simdEnd; i += VectorWidth)
|
||||
|
||||
@@ -103,7 +103,7 @@ public sealed class Skew : AbstractBase
|
||||
|
||||
// Calculate 2nd moment (Variance)
|
||||
// m2 = Sum((x-mean)^2) / n = (SumSq - Sum^2/n) / n
|
||||
double m2Numerator = _sumSq - (_sum * _sum) / n;
|
||||
double m2Numerator = _sumSq - ((_sum * _sum) / n);
|
||||
if (m2Numerator < Epsilon)
|
||||
{
|
||||
m2Numerator = 0;
|
||||
@@ -312,8 +312,8 @@ public sealed class Skew : AbstractBase
|
||||
}
|
||||
|
||||
sum = sum - oldVal + val;
|
||||
sumSq = sumSq - oldVal * oldVal + val * val;
|
||||
sumCu = sumCu - oldVal * oldVal * oldVal + val * val * val;
|
||||
sumSq = sumSq - (oldVal * oldVal) + (val * val);
|
||||
sumCu = sumCu - (oldVal * oldVal * oldVal) + (val * val * val);
|
||||
|
||||
output[i] = CalculateSkewFromSums(sum, sumSq, sumCu, period, isPopulation);
|
||||
|
||||
@@ -349,7 +349,7 @@ public sealed class Skew : AbstractBase
|
||||
{
|
||||
double mean = sum / n;
|
||||
|
||||
double m2Numerator = sumSq - (sum * sum) / n;
|
||||
double m2Numerator = sumSq - ((sum * sum) / n);
|
||||
if (m2Numerator < Epsilon)
|
||||
{
|
||||
return 0;
|
||||
@@ -422,7 +422,7 @@ public sealed class Skew : 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);
|
||||
int tickCount = period;
|
||||
|
||||
for (int i = period; i < simdEnd; i += VectorWidth)
|
||||
|
||||
@@ -237,7 +237,7 @@ public sealed class Spearman : AbstractBase
|
||||
}
|
||||
|
||||
// Average rank: 1-based position = countSmaller + (countEqual - 1) / 2.0 + 1
|
||||
ranks[i] = countSmaller + (countEqual - 1) * 0.5 + 1.0;
|
||||
ranks[i] = countSmaller + ((countEqual - 1) * 0.5) + 1.0;
|
||||
}
|
||||
}
|
||||
/// <summary>Not supported. This indicator requires two input spans.</summary>
|
||||
|
||||
@@ -97,7 +97,7 @@ public sealed class Variance : AbstractBase
|
||||
// Using Sum:
|
||||
// Var = (SumSq - (Sum*Sum)/N) / ...
|
||||
|
||||
double numerator = _sumSq - (_buffer.Sum * _buffer.Sum) / n;
|
||||
double numerator = _sumSq - ((_buffer.Sum * _buffer.Sum) / n);
|
||||
|
||||
// Handle floating point noise
|
||||
if (numerator < 0)
|
||||
@@ -271,7 +271,7 @@ public sealed class Variance : AbstractBase
|
||||
double n = i + 1;
|
||||
if (n > 1)
|
||||
{
|
||||
double numerator = sumSq - (sum * sum) / n;
|
||||
double numerator = sumSq - ((sum * sum) / n);
|
||||
if (numerator < 0)
|
||||
{
|
||||
numerator = 0;
|
||||
@@ -310,7 +310,7 @@ public sealed class Variance : AbstractBase
|
||||
}
|
||||
|
||||
double n = period;
|
||||
double numerator = sumSq - (sum * sum) / n;
|
||||
double numerator = sumSq - ((sum * sum) / n);
|
||||
if (numerator < 0)
|
||||
{
|
||||
numerator = 0;
|
||||
@@ -343,7 +343,7 @@ public sealed class Variance : AbstractBase
|
||||
double n = i + 1;
|
||||
if (n > 1)
|
||||
{
|
||||
double num = sumSq - (sum * sum) / n;
|
||||
double num = sumSq - ((sum * sum) / n);
|
||||
if (num < 0)
|
||||
{
|
||||
num = 0;
|
||||
@@ -382,7 +382,7 @@ public sealed class Variance : AbstractBase
|
||||
var vInvDenom = Vector512.Create(invDenom);
|
||||
var vZero = Vector512<double>.Zero;
|
||||
|
||||
int simdEnd = period + ((len - period) / VectorWidth) * VectorWidth;
|
||||
int simdEnd = period + (((len - period) / VectorWidth) * VectorWidth);
|
||||
int tickCount = period;
|
||||
|
||||
for (int i = period; i < simdEnd; i += VectorWidth)
|
||||
@@ -465,7 +465,7 @@ public sealed class Variance : AbstractBase
|
||||
sumSq = Math.FusedMultiplyAdd(-oldVal, oldVal, sumSq);
|
||||
sumSq = Math.FusedMultiplyAdd(val, val, sumSq);
|
||||
|
||||
double numerator = sumSq - sum * sum * invN;
|
||||
double numerator = sumSq - (sum * sum * invN);
|
||||
if (numerator < 0)
|
||||
{
|
||||
numerator = 0;
|
||||
@@ -498,7 +498,7 @@ public sealed class Variance : AbstractBase
|
||||
var vInvDenom = Vector128.Create(invDenom);
|
||||
var vZero = Vector128<double>.Zero;
|
||||
|
||||
int simdEnd = period + ((len - period) / VectorWidth) * VectorWidth;
|
||||
int simdEnd = period + (((len - period) / VectorWidth) * VectorWidth);
|
||||
int tickCount = period;
|
||||
|
||||
for (int i = period; i < simdEnd; i += VectorWidth)
|
||||
@@ -569,7 +569,7 @@ public sealed class Variance : AbstractBase
|
||||
sumSq = Math.FusedMultiplyAdd(-oldVal, oldVal, sumSq);
|
||||
sumSq = Math.FusedMultiplyAdd(val, val, sumSq);
|
||||
|
||||
double numerator = sumSq - sum * sum * invN;
|
||||
double numerator = sumSq - (sum * sum * invN);
|
||||
if (numerator < 0)
|
||||
{
|
||||
numerator = 0;
|
||||
@@ -602,7 +602,7 @@ public sealed class Variance : AbstractBase
|
||||
var vInvDenom = Vector256.Create(invDenom);
|
||||
var vZero = Vector256<double>.Zero;
|
||||
|
||||
int simdEnd = period + ((len - period) / VectorWidth) * VectorWidth;
|
||||
int simdEnd = period + (((len - period) / VectorWidth) * VectorWidth);
|
||||
int tickCount = period;
|
||||
|
||||
for (int i = period; i < simdEnd; i += VectorWidth)
|
||||
@@ -693,7 +693,7 @@ public sealed class Variance : AbstractBase
|
||||
sumSq = Math.FusedMultiplyAdd(-oldVal, oldVal, sumSq);
|
||||
sumSq = Math.FusedMultiplyAdd(val, val, sumSq);
|
||||
|
||||
double numerator = sumSq - sum * sum * invN;
|
||||
double numerator = sumSq - (sum * sum * invN);
|
||||
if (numerator < 0)
|
||||
{
|
||||
numerator = 0;
|
||||
|
||||
Reference in New Issue
Block a user