blob: 5b6d32e117aa308c654c81e3d9b1355f789d13a0 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// A range of probabilities that a given event has occurred.
class ProbabilityRange {
/// The lower bound of the range.
final double lower;
/// The upper bound of the range.
final double upper;
/// Initialize a newly created probability range to have the given [lower] and
/// [upper] bounds.
const ProbabilityRange({required this.lower, required this.upper});
/// The middle of the range.
double get middle => (upper + lower) / 2;
/// Given the [probability] of an occurrence of an event that is conditional
/// on the event represented by this range, return the probability of the
/// event independent of the event based on this range.
double conditionalProbability(double probability) {
return middle + ((upper - lower) * probability / 2);
}
}