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