1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_NQE_WEIGHTED_OBSERVATION_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_NQE_WEIGHTED_OBSERVATION_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace net::nqe::internal { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker // Holds an observation and its weight. 13*6777b538SAndroid Build Coastguard Worker struct NET_EXPORT_PRIVATE WeightedObservation { WeightedObservationWeightedObservation14*6777b538SAndroid Build Coastguard Worker WeightedObservation(int32_t value, double weight) 15*6777b538SAndroid Build Coastguard Worker : value(value), weight(weight) {} 16*6777b538SAndroid Build Coastguard Worker WeightedObservationWeightedObservation17*6777b538SAndroid Build Coastguard Worker WeightedObservation(const WeightedObservation& other) 18*6777b538SAndroid Build Coastguard Worker : WeightedObservation(other.value, other.weight) {} 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker WeightedObservation& operator=(const WeightedObservation& other) = default; 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker // Required for sorting the samples in the ascending order of values. 23*6777b538SAndroid Build Coastguard Worker bool operator<(const WeightedObservation& other) const { 24*6777b538SAndroid Build Coastguard Worker return (value < other.value); 25*6777b538SAndroid Build Coastguard Worker } 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker // Value of the sample. 28*6777b538SAndroid Build Coastguard Worker int32_t value; 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker // Weight of the sample. This is computed based on how much time has passed 31*6777b538SAndroid Build Coastguard Worker // since the sample was taken. 32*6777b538SAndroid Build Coastguard Worker double weight; 33*6777b538SAndroid Build Coastguard Worker }; 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker } // namespace net::nqe::internal 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Worker #endif // NET_NQE_WEIGHTED_OBSERVATION_H_ 38