Shibatch's Software Projects

This page provides free and open source software made by Naoki Shibata.

Actively maintained projects

SLEEF - SIMD Library for Evaluating Elementary Functions

SLEEF is a vectorized math library used in numerous leading products and open source projects. SLEEF stands for SIMD Library for Evaluating Elementary Functions. It implements manually vectorized versions of all C99 real floating point math functions. Our benchmarks show that the performance of SLEEF is comparable to that of the best commercial library.

Please check out sleef.org.

TLFloat - C++ template library for floating point operations

TLFloat is a truly constexpr C++ template library that implements classes for operations with half, single, double, quadruple and octuple precision IEEE 754 floating point numbers.

Internally, these classes are implemented as class templates on top of arbitrary-precision integer class templates so that the templates are expanded as arbitrary precision floating-point operations by just changing the template parameters, rather than implementing each floating-point operation for each precision. The arbitrary-precision integer class templates are also included in this library.

Here is a Doxygen-generated reference manual.

Please check out our GitHub page.

Community Guidelines for Sustainability of Open-Source Ecosystem

These are non-binding community guidelines intended to be used as a code of conduct for OSS projects. These guidelines aim to alleviate the burnout problems of OSS developers.

Please check out our GitHub page.

Useful tools

OOMStaller - a tool for suppressing swap thrashing at build time

This small tool monitors the memory usage of each process when performing a build, and suspends processes as necessary to prevent swap thrashing. This allows you to build using all CPU cores without worrying about swap thrashing on a Linux computer.

Please check out our GitHub page.

CPUTemp - a tool to keep CPU below specified temperature

This tool monitors CPU temperature and dynamically changes the clock frequency to keep the CPU below the specified temperature on a Linux computer. This is basically a simple alternative to thermald, but this tool controls the CPU temperature more aggressively than thermald.

Please check out our GitHub page.

OctCalc - A portable octuple-precision calculator

This is a portable calculator application that runs on Windows, Linux, and Mac. It can perform calculations and output results in 256-bit floating point numbers by utilizing computation with TLFloat. It can also evaluate C-like mathematical expressions.

Please check out our GitHub page.

You can download an Windows installer from here.

CPUBurnAVX2

These tools maximize usage of the vector FMA units in the CPU with AVX2 and AVX512 instructions to produce as much heat as possible.

Please check out our GitHub page.

Inactive projects

SSRC - High Quality Audio Sampling Rate Converter

This program converts the sampling rate of a PCM wav file. 44.1kHz sampling rate is used for a CD, and 48kHz is used for a DVD. However, converting between these frequencies is hard, because the ratio beteen these two frequencies is 147:160, which are not small numbers. Accordingly, we need a very long FIR filter in order not to degrade the sound quality during conversion. This program utilizes FFTs to apply the FIR filter in order to reduce the amount of computation.

This program also has a function to apply dither to extend the perceived dynamic range. It is optimized for human's ear characteristics.

Please check out our GitHub page.

Some experimental results are shown here.

Download link: ssrc-1.33.tar.gz.

An experimental LLVM pass

This is an experimental optimizing pass for LLVM, named MathPeephole. This pass performs the following transforms.

Please see our wiki pages for more details.

Please check out our GitHub page.

A rectangle detector

This program detects ALL rectangular shapes viewed from 3D perspective in real time, utilizing a GPU. The program is purely rule-based.

Please check out our YouTube video.

We also have a GitHub page.

BAUM : Software Package for Recognizing Blur-Resistant Markers

Motion blur can be a problem in detecting markers when the camera or the object is moving. BAUM is a software library for drawing and recognizing circular barcodes that are designed to be relatively tolerant of linear motion blur. With this library, those circular barcodes can be recognized from video in real time from Full HD videos utilizing a desktop GPU.

See here for more explanation.

We also have a GitHub page.

Connected Component Labeling Algorithm for GPGPU

Connected Component Labeling(CCL) is a well known technique for assigning a unique label to each of connected components in a given binary image. This program implements an efficient CCL algorithm suitable for GPGPU execution.

See here for more explanation.

We also have a GitHub page.



Contact : e-mail address