A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Avg.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * *
3  * Copyright 2018 Rice University *
4  * *
5  * Licensed under the Apache License, Version 2.0 (the "License"); *
6  * you may not use this file except in compliance with the License. *
7  * You may obtain a copy of the License at *
8  * *
9  * http://www.apache.org/licenses/LICENSE-2.0 *
10  * *
11  * Unless required by applicable law or agreed to in writing, software *
12  * distributed under the License is distributed on an "AS IS" BASIS, *
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14  * See the License for the specific language governing permissions and *
15  * limitations under the License. *
16  * *
17  *****************************************************************************/
18 
19 
20 #ifndef AVG_H
21 #define AVG_H
22 
23 
24 #include "Object.h"
25 
26 // PRELOAD %Avg%
27 
28 namespace pdb {
29 
30 class Avg : public Object {
31 
32 public:
33  double total;
34  int count;
35 
37 
38 
39  Avg () {}
40 
41  Avg (double total, int count) {
42  this->total = total;
43  this->count = count;
44  }
45 
46  double getAvg() {
47  return total/(double)(count);
48  }
49 
50  Avg & operator+ (Avg& avg) {
51  this->total += avg.total;
52  this->count += avg.count;
53  return *this;
54  }
55 };
56 }
57 
58 
59 #endif
#define ENABLE_DEEP_COPY
Definition: DeepCopy.h:52
Avg & operator+(Avg &avg)
Definition: Avg.h:50
int count
Definition: Avg.h:34
double getAvg()
Definition: Avg.h:46
Definition: Avg.h:30
double total
Definition: Avg.h:33
Avg(double total, int count)
Definition: Avg.h:41
ENABLE_DEEP_COPY Avg()
Definition: Avg.h:39