xxhash is a Go implementation of the 64-bit xxHash algorithm, XXH64. This is a high-quality hashing algorithm that is much faster than anything in the Go standard library.
This package provides a straightforw
The Algorithms - Go
Algorithms implemented in Go (for education)
These algorithms are for demonstration purposes only. There are many sort implementations in the Go standard library that may have better perfo
A Go implementation of t-Distributed Stochastic Neighbor Embedding (t-SNE), a prize-winning technique for dimensionality reduction particularly well suited for visualizing high-dimensional datasets.
What is it?
This library is designed to construct and use large k/v stores to do super quick point-in-polygon queries. This isn't something that I haven't tried before in go but this time with a m
Pretty Print Data Structures
Stacks, queues, trees and linked lists are data structures that you might find yourself working with quite often. This library lets you pretty print these with minimum effort. Certa
k-means clustering algorithm implementation written in Go
What It Does
k-means clustering partitions a multi-dimensional data set into k clusters, where each data point belongs to the cluster with the
Immutable and Memory Efficient Maps and Sets in Go.
This package hamt provides immutable collection types of maps (associative arrays) and sets implemented as Hash-Array Mapped Tries (HAMTs). All operations o
Finds a path between two Wikipedia articles, using only Wikipedia links.
Wikiracer runs a one-way parallel BFS (Breadth First Search) from the given start URL to crawl the graph of Wikiped
Go implementations of several clustering algoritms (k-means++, DBSCAN, OPTICS), as well as utilities for importing data and estimating optimal number of clusters.
This library was built
Just write your own map wrappers
A tool which generates thread safe maps for Go.
Supports any key/value pair supported by Go's native maps
Allows complex operations via Lock() and Unlock()
Data-structure with 5 byte keys and 3 bytes counters (64 bits per entry).
The 3 byte counter (24 bit) uses 23 for counting (guaranteeing 100% accurate counting per key up to (2^23)-1 ==> 8388607 hits.
An algorithm to sample a complete session by hashing its key, and then we see if the keys fits in one the buckets within the sampling percentage.
go get github.com/lafikl/hksample
go get github.com/lukechampine/randmap
randmap provides methods for (efficiently) accessing random elements of maps, and iterating through maps in random order. Here is a blog post that dives deeper into ho
Go rate limiter
This package provides a Golang implementation of the leaky-bucket rate limit algorithm. This implementation refills the bucket based on the time elapsed between requests instead of requiring an interval
This library parses and solves a mathematical expression.
It uses a Shunting-Yard algorithm (aka Reverse-Polish notation).
Usual mathematic constants and functions are defined in this package (see
LAPJV - Go Implementation
This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.
The repository contains