10224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber/*
20224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * Copyright 2012, The Android Open Source Project
30224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber *
40224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
50224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * you may not use this file except in compliance with the License.
60224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * You may obtain a copy of the License at
70224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber *
80224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber *     http://www.apache.org/licenses/LICENSE-2.0
90224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber *
100224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * Unless required by applicable law or agreed to in writing, software
110224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
120224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * See the License for the specific language governing permissions and
140224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber * limitations under the License.
150224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber */
160224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
170224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber#ifndef TIME_SERIES_H_
180224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
190224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber#define TIME_SERIES_H_
200224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
210224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber#include <sys/types.h>
220224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
230224bf170a3904576bba81593eaab113c5d3a4e7Andreas Hubernamespace android {
240224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
250224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huberstruct TimeSeries {
260224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    TimeSeries();
270224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
280224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    void add(double val);
290224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
300224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    double mean() const;
310224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    double sdev() const;
320224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
330224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huberprivate:
340224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    enum {
350224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber        kHistorySize = 20
360224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    };
370224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    double mValues[kHistorySize];
380224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
390224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    size_t mCount;
400224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber    double mSum;
410224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber};
420224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
430224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber}  // namespace android
440224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
450224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber#endif  // TIME_SERIES_H_
460224bf170a3904576bba81593eaab113c5d3a4e7Andreas Huber
47