rufft

Crates.iorufft
lib.rsrufft
version0.1.0
sourcesrc
created_at2024-11-29 22:34:12.453343
updated_at2024-11-29 22:34:12.453343
descriptionA pure rust FFT library !
homepage
repositoryhttps://github.com/emmet-horgan/rufft
max_upload_size
id1466119
size46,771
(emmet-horgan)

documentation

README

Rufft

ci

Rufft is a purely rust implementation of several fast fourier transform algorithms. The libary functions operate on collection types which implement a library trait called Iterable which provides a method to get an iterator and to get the length of the collection. In the future other convenience modules will be added for things like waveform generation and improvements to the fft implementation to support things like paralleization, and SIMD acceleration

Usage

use rufft::{traits::Fft, Complex};

// Get the FFT of a Vec
let arr = vec![1.0, 2.0, 3.0, 4.0, 5.0];
let farr: Vec<Complex<f64>> = arr.fft();

Motivation

The project originally started for my own educational purposes to both improve my rust skills and also to implement fast fourier transform algorithms. As time went on I looked at some other more mature rust based FFT libaries such as,

These projects are great and very performent focussed especially rustfft but I realized that I wanted to use something that reflected a much simpler API like scipy in the python ecosystem but was still relatively performant, something that could be used in no_std environments, static dispatch based rather than dynamic dispatch and is compatible with most collection types and gives control over what types are used internally.

Commit count: 54

cargo fmt