Math::SZaru - Perl wrapper for the SZaru C++ library


  use Math::SZaru;
  # loads Math::SZaru::UniqueEstimator
  # and Math::SZaru::TopEstimator
  # and Math::SZaru::QuantileEstimator


SZaru is a stand-alone C++ library that extracts some of the aggregator functionality of Google's Sawzall library or more specifically, the Open Source szl implementation. Math::SZaru is a Perl/XS wrapper of SZaru and comes with a complete copy of the C++ code to build without system-library dependencies.

The one unifying aspect of the implemented aggregators is that they work with a single pass and with bounded memory overhead. In CS terms, they should have near O(n) compute complexity and O(1) or at least sub-linear memory overhead. The algorithms may trade accuracy (hence *Estimator) for this goal and are intended for use with large and/or streaming data sets that either do not fit in memory or whose total size is unknown.

The functionality is currently divided between three classes: Math::SZaru::UniqueEstimator, Math::SZaru::TopEstimator, and Math::SZaru::QuantileEstimator. For details on those, please refer to their respective documentation.


SZaru: "SZaru/" in



Steffen Mueller, <>


The Perl wrapper of the SZaru library is:

Copyright (C) 2013 by Steffen Mueller

Just like SZaru itself, it is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.