Files
SuperVPN/output/Libraries/AForge.Math/AForge/Math/Histogram.cs
2025-10-09 09:57:24 +09:00

73 lines
1011 B
C#

using System;
namespace AForge.Math;
[Serializable]
public class Histogram
{
private int[] values;
private double mean;
private double stdDev;
private int median;
private int min;
private int max;
private long total;
public int[] Values => values;
public double Mean => mean;
public double StdDev => stdDev;
public int Median => median;
public int Min => min;
public int Max => max;
public long TotalCount => total;
public Histogram(int[] values)
{
this.values = values;
Update();
}
public IntRange GetRange(double percent)
{
return Statistics.GetRange(values, percent);
}
public void Update()
{
int num = values.Length;
max = 0;
min = num;
total = 0L;
for (int i = 0; i < num; i++)
{
if (values[i] != 0)
{
if (i > max)
{
max = i;
}
if (i < min)
{
min = i;
}
total += values[i];
}
}
mean = Statistics.Mean(values);
stdDev = Statistics.StdDev(values, mean);
median = Statistics.Median(values);
}
}