cpp-HyperLogLog - C++ implementation of HyperLogLog

  •        105

C++ implementation of HyperLogLog algorithm and HIP(Historic Inverse Probability) Estimator. HyperLoglog is a headers-only library so you just need to include "hyperloglog.hpp" and "murmur3.h" to use this project. You can use normal HyperLogLog counter class(hll::HyperLogLog) and HyperLogLog counter with HIP Estimator class(hll::HyperLogLogHIP).

https://github.com/hideo55/cpp-HyperLogLog

Tags
Implementation
License
Platform

   




Related Projects

hyperloglog - HyperLogLog and HyperLogLog++ implementation in Go/Golang.

  •    Go

Implements the HyperLogLog and HyperLogLog++ algorithms. Documentation can be found here.

hyperloglog - HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction)

  •    Go

An improved version of HyperLogLog for the count-distinct problem, approximating the number of distinct elements in a multiset using 20-50% less space than other usual HyperLogLog implementations.This work is based on "Better with fewer bits: Improving the performance of cardinality estimation of large data streams - Qingjun Xiao, You Zhou, Shigang Chen".

datasketch - MinHash, LSH, LSH Forest, Weighted MinHash, HyperLogLog, HyperLogLog++

  •    Python

datasketch gives you probabilistic data structures that can process and search very large amount of data super fast, with little loss of accuracy. datasketch must be used with Python 2.7 or above and NumPy 1.11 or above. Scipy is optional, but with it the LSH initialization can be much faster.

postgresql-hll - PostgreSQL extension adding HyperLogLog data structures as a native data type

  •    C

This Postgres module introduces a new data type hll which is a HyperLogLog data structure. HyperLogLog is a fixed-size, set-like structure used for distinct value counting with tunable precision. For example, in 1280 bytes hll can estimate the count of tens of billions of distinct values with only a few percent error. In addition to the algorithm proposed in the original paper, this implementation is augmented to improve its accuracy and memory use without sacrificing much speed. See below for more details.

logswan - Fast Web log analyzer using probabilistic data structures

  •    C

Logswan is a fast Web log analyzer using probabilistic data structures. It is targeted at very large log files, typically APIs logs. It has constant memory usage regardless of the log file size, and takes approximatively 4MB of RAM.Unique visitors counting is performed using two HyperLogLog counters (one for IPv4, and another one for IPv6), providing a relative accuracy of 0.10%. String representations of IP addresses are used and preferred as they offer better precision.


Redisson - Redis based In-Memory Data Grid for Java

  •    Java

Redisson - Distributed and Scalable Java data structures (Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog) on top of Redis server. Advanced redis java client. It supports over 28+ data structures and services, Synchronous / asynchronous / reactive interfaces and lot more.

walrus - Lightweight Python utilities for working with Redis

  •    Python

Lightweight Python utilities for working with Redis. The purpose of walrus is to make working with Redis in Python a little easier by wrapping rich objects in Pythonic containers. It consist of wrappers for the Redis object types like Hash, List, Set, Sorted Set, HyperLogLog, Array.

BoomFilters - Probabilistic data structures for processing continuous, unbounded streams.

  •    Go

Boom Filters are probabilistic data structures for processing continuous, unbounded streams. This includes Stable Bloom Filters, Scalable Bloom Filters, Counting Bloom Filters, Inverse Bloom Filters, Cuckoo Filters, several variants of traditional Bloom filters, HyperLogLog, Count-Min Sketch, and MinHash.Classic Bloom filters generally require a priori knowledge of the data set in order to allocate an appropriately sized bit array. This works well for offline processing, but online processing typically involves unbounded data streams. With enough data, a traditional Bloom filter "fills up", after which it has a false-positive probability of 1.

ccard-lib - C library for estimating cardinality in streams for which it is infeasible to store all events in memory

  •    C

C library for estimating cardinality in data streams, in which case it is infeasible to store all events in memory. This library implements a series of cardinality estimating algorithms such as Linear Counting, LogLog Counting, HyperLogLog Counting and Adaptive Counting. For more information about these algorithms please read the Reference section.

hlld - C network daemon for HyperLogLogs

  •    C

hlld is a high-performance C server which is used to expose HyperLogLog sets and operations over them to networked clients. It uses a simple ASCI protocol which is human readable, and similar to memcached. HyperLogLog's are a relatively new sketching data structure. They are used to estimate cardinality, i.e. the unique number of items in a set. They are based on the observation that any bit in a "good" hash function is independent of any other bit and that the probability of getting a string of N bits all set to the same value is 1/(2^N). There is a lot more in the math, but that is the basic intuition. What is even more incredible is that the storage required to do the counting is log(log(N)). So with a 6 bit register, we can count well into the trillions. For more information, its best to read the papers referenced at the end.

Redisson - Redis based In-Memory Data Grid for Java

  •    Java

Redisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. Rich Redis client.

RakNet - RakNet is a cross platform, open source, C++ networking engine for game programmers.

  •    C

------------------------------------------ See Help\swigtutorial.html Upgrading from version 3 ------------------------------------------ See 3.x_to_4.x_upgrade.txt Windows users (Visual Studio 2008 and 2010) ----------------------------------------- Load RakNet_VS2008.sln and convert if necessary.After the project conversion, if you encounter error MSB4006,follow the steps below to fix it:1. Open project properties2. Click on "Common Properties"3. Click on "Framework and References"4. Look

PHP-CPP - Library to build PHP extensions with C++

  •    C++

The PHP-CPP library is a C++ library for developing PHP extensions. It offers a collection of well documented and easy-to-use classes that can be used and extended to build native extensions for PHP. The full documentation can be found on http://www.php-cpp.com. Watch out: PHP 7 only! This library has been updated to work with PHP versions 7.0 and up. If you wish to create extensions for older PHP versions, use the PHP-CPP-LEGACY library instead. The PHP-CPP and PHP-CPP-LEGACY library have (almost) identical API's, so you can easily port extensions for PHP 5.* to PHP 7 and the other way around.

AMQP-CPP - C++ library for asynchronous non-blocking communication with RabbitMQ

  •    C++

AMQP-CPP is a C++ library for communicating with a RabbitMQ message broker. The library can be used to parse incoming data from a RabbitMQ server, and to generate frames that can be sent to a RabbitMQ server. This library has a layered architecture, and allows you - if you like - to completely take care of the network layer. If you want to set up and manage the network connections yourself, the AMQP-CPP library will not make a connection to RabbitMQ by itself, nor will it create sockets and/or perform IO operations. As a user of this library, you create the socket connection and implement a certain interface that you pass to the AMQP-CPP library and that the library will use for IO operations.

cpp-ethereum - Ethereum C++ client

  •    C++

This repository contains cpp-ethereum, the Ethereum C++ client.It is the third most popular of the Ethereum clients, behind geth (the go client) and Parity (the rust client). The code is exceptionally portable and has been used successfully on a very broad range of operating systems and hardware.

webthree-umbrella - Former home of cpp-ethereum (Oct 2015 to Aug 2016)

  •    

cpp-ethereum is the Ethereum C++ client.This repository was an "umbrella" repository which was the home for the various C++ projects betwen October 2015 and August 2016. Prior to that point all the work had happened under a single repository (cpp-ethereum), and that is where all C++ runtime development work has now returned, with solidity now being a standalone repository.

awesome-cpp - A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things

  •    

A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.

Boost - CPP Library

  •    C

Boost provides free peer-reviewed portable C++ source libraries. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. It supports String, Containers, Streams, Generic programming, Concurrent programming, Math, Memory and lot more.

Pantheios - The C/C++ Logging Sweetspot

  •    C

A C++ diagnostic logging API that is simple to use, 100% type-safe, generic, infinitely-extensible, atomic, platform-independent, and extremely efficient. And, best of all, it upholds the spirit of C: you only pay for what you use. Pantheios is readily extended to use the existing transport mechanisms of feature-rich diagnostic logging libraries such as ACE, log4cpp, log4cplus, log4cxx.

aleth - Aleth – Ethereum C++ client, tools and libraries

  •    C++

The collection of C++ libraries and tools for Ethereum, formerly known as cpp-ethereum project. This includes the full Ethereum client aleth. The Ethereum Documentation site hosts the cpp-ethereum homepage, which has a Quick Start section.