Accord.Statistics.Moving.MovingCircularStatistics.Push C# (CSharp) 메소드

Push() 공개 메소드

Registers the occurrence of a value.
public Push ( double value ) : void
value double The value to be registered.
리턴 void
        public void Push(double value)
        {
            if (sines.Count == Window)
            {
                SumOfSines -= sines.Dequeue();
                SumOfCosines -= cosines.Dequeue();
            }

            double cos = Math.Cos(value);
            double sin = Math.Sin(value);

            sines.Enqueue(sin);
            cosines.Enqueue(cos);

            SumOfSines += sin;
            SumOfCosines += cos;

            int N = sines.Count;
            double rho = Math.Sqrt(SumOfSines * SumOfSines + SumOfCosines * SumOfCosines);

            Mean = Math.Atan2(SumOfSines / N, SumOfCosines / N);
            Variance = 1.0 - rho / N;
        }