Rosetta
Public Member Functions | Private Member Functions | Private Attributes | List of all members
numeric::random::ReservoirSampler< T > Class Template Reference

Simple container for keeping K random values. More...

#include <reservoir_sample.hh>

Public Member Functions

 ReservoirSampler (numeric::Size const wanted)
 
 ~ReservoirSampler ()=default
 
void add_value (T const &val)
 
numeric::Size n_vals () const
 
numeric::Size n_wanted () const
 
numeric::Size n_seen () const
 
utility::vector1< T > const & values () const
 

Private Member Functions

 ReservoirSampler ()
 

Private Attributes

utility::vector1< Tvalues_
 
numeric::Size n_seen_
 
numeric::Size const n_wanted_
 

Detailed Description

template<typename T>
class numeric::random::ReservoirSampler< T >

Simple container for keeping K random values.

Values are stochastically preserved so that the probability of any value existing is always 1 / N, where N is the number of values seen.

Constructor & Destructor Documentation

◆ ReservoirSampler() [1/2]

template<typename T >
numeric::random::ReservoirSampler< T >::ReservoirSampler ( numeric::Size const  wanted)
inline

◆ ~ReservoirSampler()

template<typename T >
numeric::random::ReservoirSampler< T >::~ReservoirSampler ( )
default

◆ ReservoirSampler() [2/2]

template<typename T >
numeric::random::ReservoirSampler< T >::ReservoirSampler ( )
private

Member Function Documentation

◆ add_value()

template<typename T >
void numeric::random::ReservoirSampler< T >::add_value ( T const &  val)
inline

◆ n_seen()

template<typename T >
numeric::Size numeric::random::ReservoirSampler< T >::n_seen ( ) const
inline

◆ n_vals()

template<typename T >
numeric::Size numeric::random::ReservoirSampler< T >::n_vals ( ) const
inline

◆ n_wanted()

template<typename T >
numeric::Size numeric::random::ReservoirSampler< T >::n_wanted ( ) const
inline

◆ values()

template<typename T >
utility::vector1< T > const& numeric::random::ReservoirSampler< T >::values ( ) const
inline

Member Data Documentation

◆ n_seen_

template<typename T >
numeric::Size numeric::random::ReservoirSampler< T >::n_seen_
private

◆ n_wanted_

template<typename T >
numeric::Size const numeric::random::ReservoirSampler< T >::n_wanted_
private

◆ values_

template<typename T >
utility::vector1< T > numeric::random::ReservoirSampler< T >::values_
private

The documentation for this class was generated from the following file: