これは、色々なアルゴリズムを片っ端から実装するプロジェクトです。 実装言語はC++14を用い、clangでコンパイルでき、追加のライブラリを必要とせず、MITライセンスで提供しています。
$ git clone https://github.com/pixie-grasper/research-library.git
$ cd research-library
$ make check
$ sudo make install
した後に
$ clang++ `pkg-config --cflags libresearch` foo.cc
する事によって各種アルゴリズムを利用できるようになります。
- Burrows Wheeler Transform (using Larsson-Sadakane's Algorithm)
- Move To Front
- Range Coder (Static, Adaptive)
- Fast Fourier Transform
- Discrete Cosine Transform
- Wavelet Transform (Haar, CDF 5/3, CDF 9/7)
- Prediction by Partial Matching
- Unary Coding
- Elias Coding
- Golomb Coding
が既に実装されています。又、
- size_type_t型: テンプレート引数としてコンパイル時に決定可能な整数の1, 2, 4, 8を許し、その大きさの符号なし整数型を表す
- BitsToBytes class: ビットストリームをバイトストリームに変換する為のクラス
- BytesToBits class: バイトストリームからビットストリームを切り出す為のクラス
が利用できます。詳しい使い方に関しては
$ make docs
を行うことでdoxygenを利用して生成されるドキュメントを参照してください。
以下のアルゴリズムを実装する予定です。
- Huffman Coding
以下のアルゴリズムは宗教的な理由により実装しない予定です。
- Arithmetic Coding
- Lempel-Ziv-Welch Algorithm
- Karmarker's Method
- pixie-grasper
The MIT License