Annotation of nono/lib/statistics.h, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2021 nono project
        !             4: // Licensed under nono-license.txt
        !             5: //
        !             6: 
        !             7: #pragma once
        !             8: 
        !             9: #include <limits>
        !            10: 
        !            11: // 統計計算
        !            12: template <class T>
        !            13: class Statistics
        !            14: {
        !            15:  public:
        !            16:        Statistics()
        !            17:        {
        !            18:                Clear();
        !            19:        }
        !            20: 
        !            21:        // 統計をクリアする。
        !            22:        void Clear()
        !            23:        {
        !            24:                count = 0;
        !            25:                sum = 0;
        !            26:                min = std::numeric_limits<T>::max();
        !            27:                max = std::numeric_limits<T>::min();
        !            28:        }
        !            29: 
        !            30:        // 統計に値を追加する。
        !            31:        void Add(T v)
        !            32:        {
        !            33:                count++;
        !            34:                sum += v;
        !            35: 
        !            36:                if (min > v) {
        !            37:                        min = v;
        !            38:                }
        !            39:                if (max < v) {
        !            40:                        max = v;
        !            41:                }
        !            42:        }
        !            43: 
        !            44:        // 個数を返す。
        !            45:        T Count() const { return count; }
        !            46: 
        !            47:        // 合計を返す。
        !            48:        T Sum() const { return sum; }
        !            49: 
        !            50:        // 平均を返す。値がないときは 0 を返す。
        !            51:        T Average() const { return count == 0 ? 0 : sum / count; }
        !            52: 
        !            53:        // 最小を返す。
        !            54:        T Min() const { return count == 0 ? 0 : min; }
        !            55: 
        !            56:        // 最大を返す。
        !            57:        T Max() const { return count == 0 ? 0 : max; }
        !            58: 
        !            59:  private:
        !            60:        T count;
        !            61:        T sum;
        !            62:        T min;
        !            63:        T max;
        !            64: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.