コード例 #1
0
        public void Add(Stats <T> s)
        {
            if (s.m_options != m_options)
            {
                throw new ArgumentException("need matching options for adding");
            }

            m_count += s.m_count;
            m_sum.Add(s.m_sum);
            m_min = Extremum <T> .Min(m_min, s.m_min);

            m_max = Extremum <T> .Min(m_max, s.m_max);

            m_sumOfSquares.Add(s.m_sumOfSquares);
        }
コード例 #2
0
        public static Stats <T> operator+(Stats <T> s0, Stats <T> s1)
        {
            if (s0.m_options != s1.m_options)
            {
                throw new ArgumentException("need matching options for adding");
            }

            return(new Stats <T>(s0.m_options)
            {
                m_count = s0.m_count + s1.m_count,
                m_sum = s0.m_sum + s1.m_sum,
                m_min = Extremum <T> .Min(s0.m_min, s1.m_min),
                m_max = Extremum <T> .Min(s0.m_max, s1.m_max),
                m_sumOfSquares = s0.m_sumOfSquares + s1.m_sumOfSquares,
            });
        }