Skip to content

generic C++ class for maintaining up-to-date mean and variance estimates in constant space

License

Notifications You must be signed in to change notification settings

willb/samplesink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

samplesink, simple sample data aggregator
Copyright © 2003--2008 William C. Benton

samplesink is a simple generic class for maintaining
aggregate information about a (potentially very large)
collection of samples while using constant space.  It uses
the technique described in "Updating mean and variance
estimates: an improved method" by D.H.D. West, from CACM
22(9); see http://doi.acm.org/10.1145/359146.359153

It is released under the ASL 2.0 (see LICENSE).
Documentation and unit tests will follow soon; for now,
please see the example code provided in example.cc.

samplesink is templated on three types:  SampleType,
AggregateType, and CountType.  

* SampleType is the type of your samples, which must be
specified;

* AggregateType is the type you want to use for aggregates
(mean, standard deviation), which defaults to double if
left unspecified; and

* CountType is the type you want to use for counts, which
defaults to long if left unspecified.

SampleType can be an arbitrary class if it provides the
basic arithmetic, comparison, and assignment operators and
you create a specialization for the meta::limits class (for
extremes).  AggregateType can be an arbitrary class if you
create a specialization for the support::math class (for a
square-root implementation).  CountType can be an arbitrary
class if it supports the increment operator.

About

generic C++ class for maintaining up-to-date mean and variance estimates in constant space

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published