Integer Compression Libraries for Go

Comments
  • Go tip compilation error

    Go tip compilation error

    github.com/dataence/encoding

    asm: invalid instruction: 00006 (/home/travis/gopath/src/github.com/dataence/encoding/bitlen_amd64.s:6) JEQ Z1 asm: assembly failed

  • Is dataence/encoding the same repository?

    Is dataence/encoding the same repository?

    There are import paths that points to github.com/dataence/encoding/* all over the library. It seems as you moved this repository from dataence to zentures and you forgot to change to paths. Am I right? I could open a quick PR and fix the paths.

  • Minor perf improv. + shorter unit tests

    Minor perf improv. + shorter unit tests

    1. I have improved fastpfor by converting the bytes on-the-fly. It is still not as fast as it should be but it is about 10% faster. What we need to do is a simple cast, and it should be possible:

    http://stackoverflow.com/questions/11924196/convert-between-slices-of-different-types

    but I couldn't make it work. In Java, the cast happens underneath... that's why I use a ByteBuffer... to speed things up... Your implementation of a ByteBuffer in Go is nice and elegant, but it still does a lot of unnecessary copying.

    1. You test with very, very large arrays which, at least on my machine, takes several seconds. This seems unnecessary. If one wants to test on very large arrays, you could just construct a large slice and just assign some values into it, instead of generating fancy random data...
  • go get fails with asm:

    go get fails with asm: "".bitlen: invalid instruction: 00006

    when doing go get github.com/zentures/encoding, it fails with:

    asm: "".bitlen: invalid instruction: 00006 (/home/.../go/pkg/mod/github.com/zentures/[email protected]/bitlen_amd64.s:6) JEQ Z1 asm: assembly failed Ubuntu 21.10 machine

  • Using SIMD accelerated functions (x64)

    Using SIMD accelerated functions (x64)

    There is a Go library that provides SIMD-accelerated packing and unpacking functions. It seems that some of the codecs of this library could make use of such functions.

    Reference: https://github.com/robskie/bp128

IntSet - Integer based Set based on a bit-vector

IntSet - Integer based Set based on a bit-vector Every integer that is stored will be converted to a bit in a word in which its located. The words are

Feb 2, 2022
Novel, efficient, and practical image compression with visually appealing results. 🤏 ✨
Novel, efficient, and practical image compression with visually appealing results. 🤏 ✨

Tiny Thumb ?? ✨ A novel, efficient, and practical method for lossy image compression, that produces visually appealing thumbnails. This technique is u

Nov 1, 2022
Data Structure Libraries and Algorithms implementation

Algorithms Data Structure Libraries and Algorithms implementation in C++ Disclaimer This repository is meant to be used as a reference to learn data s

Dec 8, 2022
Unsigned Integer 32 Byte Packing Compression

dbp32 Unsigned Integer 32 Byte Packing Compression. Inspired by lemire/FastPFor. Package bp32 is an implementation of the binary packing integer compr

Sep 6, 2021
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more

Gonum Installation The core packages of the Gonum suite are written in pure Go with some assembly. Installation is done using go get. go get -u gonum.

Jan 8, 2023
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more

Gonum Installation The core packages of the Gonum suite are written in pure Go with some assembly. Installation is done using go get. go get -u gonum.

Dec 29, 2022
fast integer log base 10

Package log10 calculates log base 10 of an integer, fast. It is inspired by Daniel Lemire's blog post on this topic. TODO: Add implementations for oth

Mar 3, 2022
A simple evaluator for arithmetic integer expressions.

The expr package provides a simple evaluator for arithmetic integer expressions. The syntax and operations are the same as in Go. Operands are the nat

Dec 13, 2022
Simple go package which converts roman strings to integer

romanparse Simple go package which converts roman strings

Aug 11, 2022
Fast integer map for uint32-to-uint32
Fast integer map for uint32-to-uint32

Uint32-to-Uint32 Map This repository contains an implementation of uint32-to-uint32 map which is ~20-50% faster than Go standard map for the same type

Sep 21, 2022
Simple gc using integer vectors to simulate

gcint Simple gc using integer vectors to simulate Iterate primarily over what should be the shorter vector (readers) removing unused references in fro

Nov 24, 2021
Algorithms for various integer sequences from the OEIS site.

OEIS The ongoing quest to program every sequence in the OEIS database (in Golang) Content sequences -- The folder containing the seq package, which co

Dec 23, 2021
Program that counts the bits in an unsigned integer

popcountloop This is an exercise of the book The Go Programming Language, by Ala

Dec 18, 2021
Guess-number-game - Computer thoughts of some integer number, you must guess it with limited number of attempts
Guess-number-game - Computer thoughts of some integer number, you must guess it with limited number of attempts

Guess number game Rules Computer has thought of some integer number. You must guess it, you have numberOfAttempts attempts. How to run Just type in co

Dec 31, 2021
Takes an integer array, returns the array sorted and the number of inversions in the array

Takes an integer slice, returns the slice sorted and the number of inversions in the slice

Jan 25, 2022
IntSet - Integer based Set based on a bit-vector

IntSet - Integer based Set based on a bit-vector Every integer that is stored will be converted to a bit in a word in which its located. The words are

Feb 2, 2022
Bigint - Immutable arbitrary-precision integer for Go

bigint Go's big.Int is mutable to enable flexibility in performance tuning but s

Sep 13, 2022
Optimized compression packages

compress This package provides various compression algorithms. zstandard compression and decompression in pure Go. S2 is a high performance replacemen

Jan 4, 2023
Go wrapper for LZO compression library

This is a cgo wrapper around the LZO real-time compression library. LZO is available at http://www.oberhumer.com/opensource/lzo/ lzo.go is the go pack

Mar 4, 2022
Port of LZ4 lossless compression algorithm to Go

go-lz4 go-lz4 is port of LZ4 lossless compression algorithm to Go. The original C code is located at: https://github.com/Cyan4973/lz4 Status Usage go

Jun 14, 2022