NewTOAPIA.Net.Udt.CPktTimeWindow.getBandwidth C# (CSharp) Method

getBandwidth() public method

public getBandwidth ( ) : int
return int
        public int getBandwidth()
        {
            // sorting
            int[] pi = m_piProbeWindow;
            for (int i = 0, n = (m_iPWSize >> 1) + 1; i < n; ++i)
            {
                int* pj = pi;
                for (int j = i, m = m_iPWSize; j < m; ++j)
                {
                    if (*pi > *pj)
                    {
                        int temp = *pi;
                        *pi = *pj;
                        *pj = temp;
                    }
                    ++pj;
                }
                ++pi;
            }

            // read the median value
            int median = (m_piProbeWindow[(m_iPWSize >> 1) - 1] + m_piProbeWindow[m_iPWSize >> 1]) >> 1;
            int count = 1;
            int sum = median;
            int upper = median << 3;
            int lower = median >> 3;

            // median filtering
            int[] pk = m_piProbeWindow;

            for (int k = 0, l = m_iPWSize; k < l; ++k)
            {
                if ((*pk < upper) && (*pk > lower))
                {
                    ++count;
                    sum += *pk;
                }
                ++pk;
            }

            return (int)Math.Ceiling(1000000.0 / ((double)(sum) / (double)(count)));
        }