Skip to content

Rufft is a purely rust implementation of several common fast fourier transform algorithms

License

Notifications You must be signed in to change notification settings

emmet-horgan/rufft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Rufft is a purely rust implementation of several common fast fourier transform algorithms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published