Fast Konno-Ohmachi Spectral Smoothing
Implemented in Rust with a Python interface. The performance gain measured against the widely used Python/numpy implementation that comes with obspy approaches approximately a factor of 2.5 for large and 10 for small vectors (see Benchmarks).

Installation
Installation from pypi:
Installation from source:
Usage
This smoothes some random numbers:
Python
= 40
# using fake random data
=
=
=
Rust
use konnoohmachi;
let frequencies = zeros;
let amplitudes = ones;
let bandwidth = 40.0;
konnoohmachi_smooth;
Benchmarks
Measuring the execution time based of increasing sized spectra yields:
❯ python3 benchmark.py
nsamples | Rust | Python | Performance Gain
----------------------------------------------------------
256 | 0.00017 | 0.00192 | 11.30802
512 | 0.00054 | 0.00431 | 7.97596
1024 | 0.00198 | 0.01117 | 5.63623
2048 | 0.00775 | 0.03143 | 4.05371
4096 | 0.03067 | 0.10024 | 3.26844
8192 | 0.12212 | 0.35058 | 2.87080
16384 | 0.49391 | 1.29653 | 2.62506
32768 | 1.98499 | 5.05335 | 2.54578