<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "https://www.w3.org/TR/html4/loose.dtd">
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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

  http://www.apache.org/licenses/LICENSE-2.0

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.
-->

<html>
<head>
</head>
<body>
<h2>Sketching Core Library</h2> 
<h3>Overview</h3>

<p>The Sketching Core Library provides a range of stochastic streaming algorithms and closely 
  related java technologies that are particularly useful when integrating this technology into 
  systems that must deal with massive data. Click on the package links below for the package 
  introduction and APIs.
</p>

<p>This library is divided into packages that constitute distinct groups of functionality:</p>

<ul>
<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/cpc/package-summary.html">CPC - Compressed Probabilistic Counting</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/fdt/package-summary.html">FDT - Frequent Distinct Tuples</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/frequencies/package-summary.html">Frequencies Fequent Items- </a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/hash/package-summary.html">Hash - Common Hash Functions</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/hll/package-summary.html">HLL - HyperLogLog</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/hllmap/package-summary.html">HLLMap - HLL Map</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/kll/package-summary.html">KLL - High Performance Karnin, Lang, Liberty Quantiles</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/quantiles/package-summary.html">Quantiles - Quantiles</a></b> 
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/sampling/package-summary.html">Sampling - Weighted and Unweighted Reservoirs</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/theta/package-summary.html">Theta - The Theta Family </a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/tuple/package-summary.html">Tuple - The Base Tuple Family</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/tuple/adouble/package-summary.html">Tuple/adouble - Example Implementation with a single double</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/tuple/aninteger/package-summary.html">Tuple/aninteger - Example Implementation with a single integer</a></b>
</li>

<li><b><a href="https://datasketches.apache.org/api/java/snapshot/apidocs/org/apache/datasketches/tuple/strings/package-summary.html">Tuple/strings - Example Implementation with an array of Strings</a></b>
</li>

</ul>
Note: In general, if the requirements or promises of any method's contract are not fulfilled 
(that is, if there is a bug in either the method or its caller), 
then an unchecked exception will be thrown. 
The precise type of such an unchecked exception does not form part of any method's contract.
</body>
</html>
