Browse Source

Rename the package to dft

master
Ivan Ukhov 9 years ago
parent
commit
e2a644e34b
  1. 11
      Cargo.toml
  2. 17
      README.md
  3. 6
      benches/lib.rs
  4. 4
      src/lib.rs
  5. 22
      tests/lib.rs

11
Cargo.toml

@ -1,12 +1,13 @@
[package]
name = "fft"
name = "dft"
version = "0.2.0"
authors = ["Ivan Ukhov <ivan.ukhov@gmail.com>"]
license = "MIT"
repository = "https://github.com/stainless-steel/fft"
homepage = "https://github.com/stainless-steel/fft"
documentation = "https://stainless-steel.github.io/fft"
description = "The package provides a fast Fourier transform algorithm."
repository = "https://github.com/stainless-steel/dft"
homepage = "https://github.com/stainless-steel/dft"
documentation = "https://stainless-steel.github.io/dft"
description = """
The package provides an algorithm to compute the discrete Fourier transform."""
[dependencies]
complex = "*"

17
README.md

@ -1,6 +1,7 @@
# FFT [![Version][version-img]][version-url] [![Status][status-img]][status-url]
# DFT [![Version][version-img]][version-url] [![Status][status-img]][status-url]
The package provides a [fast Fourier transform][1] algorithm.
The package provides an algorithm to compute the [discrete Fourier
transform][2].
## [Documentation][doc]
@ -10,10 +11,10 @@ The package provides a [fast Fourier transform][1] algorithm.
2. Implement your idea.
3. Open a pull request.
[1]: https://en.wikipedia.org/wiki/Fast_Fourier_transform
[1]: https://en.wikipedia.org/wiki/Discrete_Fourier_transform
[version-img]: https://img.shields.io/crates/v/fft.svg
[version-url]: https://crates.io/crates/fft
[status-img]: https://travis-ci.org/stainless-steel/fft.svg?branch=master
[status-url]: https://travis-ci.org/stainless-steel/fft
[doc]: https://stainless-steel.github.io/fft
[version-img]: https://img.shields.io/crates/v/dft.svg
[version-url]: https://crates.io/crates/dft
[status-img]: https://travis-ci.org/stainless-steel/dft.svg?branch=master
[status-url]: https://travis-ci.org/stainless-steel/dft
[doc]: https://stainless-steel.github.io/dft

6
benches/lib.rs

@ -1,7 +1,7 @@
#![feature(test)]
extern crate complex;
extern crate fft;
extern crate dft;
extern crate test;
use complex::c64;
@ -23,10 +23,10 @@ use test::{Bencher, black_box};
fn complex_forward(size: usize, bencher: &mut Bencher) {
let mut data = vec![c64(42.0, 69.0); size];
bencher.iter(|| black_box(fft::complex::forward(&mut data)));
bencher.iter(|| black_box(dft::complex::forward(&mut data)));
}
fn real_forward(size: usize, bencher: &mut Bencher) {
let mut data = vec![42.0; 2 * size];
bencher.iter(|| black_box(fft::real::forward(&mut data)));
bencher.iter(|| black_box(dft::real::forward(&mut data)));
}

4
src/lib.rs

@ -1,6 +1,6 @@
//! [Fast Fourier transform][1] algorithm.
//! [Discrete Fourier transform][1].
//!
//! [1]: https://en.wikipedia.org/wiki/Fast_Fourier_transform
//! [1]: https://en.wikipedia.org/wiki/Discrete_Fourier_transform
extern crate complex as number;

22
tests/lib.rs

@ -1,6 +1,6 @@
extern crate assert;
extern crate complex;
extern crate fft;
extern crate dft;
use complex::c64;
@ -9,53 +9,53 @@ mod fixtures;
#[test]
fn complex_forward_128() {
let mut data = fixtures::TIME_DATA_256.to_vec();
fft::complex::forward(as_c64_mut(&mut data));
dft::complex::forward(as_c64_mut(&mut data));
assert::close(&data, &fixtures::FREQUENCY_DATA_128_COMPLEX[..], 1e-14);
}
#[test]
fn complex_forward_real_256() {
let mut data = to_c64(&fixtures::TIME_DATA_256);
fft::complex::forward(&mut data);
dft::complex::forward(&mut data);
assert::close(as_f64(&data), &fixtures::FREQUENCY_DATA_256_REAL_UNPACKED[..], 1e-13);
}
#[test]
fn complex_inverse_128() {
let mut data = fixtures::FREQUENCY_DATA_128_COMPLEX.to_vec();
fft::complex::inverse(as_c64_mut(&mut data));
dft::complex::inverse(as_c64_mut(&mut data));
assert::close(&data, &fixtures::TIME_DATA_256[..], 1e-14);
}
#[test]
fn real_forward_256() {
let mut data = fixtures::TIME_DATA_256.to_vec();
fft::real::forward(&mut data);
dft::real::forward(&mut data);
assert::close(&data, &fixtures::FREQUENCY_DATA_256_REAL_PACKED[..], 1e-13);
let data = fft::real::unpack(&data);
let data = dft::real::unpack(&data);
assert::close(as_f64(&data), &fixtures::FREQUENCY_DATA_256_REAL_UNPACKED[..], 1e-13);
}
#[test]
fn real_forward_512() {
let mut data = fixtures::TIME_DATA_512.to_vec();
fft::real::forward(&mut data);
let data = fft::real::unpack(&data);
dft::real::forward(&mut data);
let data = dft::real::unpack(&data);
assert::close(as_f64(&data), &fixtures::FREQUENCY_DATA_512_REAL_UNPACKED[..], 1e-12);
}
#[test]
fn real_inverse_256() {
let mut data = fixtures::FREQUENCY_DATA_256_REAL_PACKED.to_vec();
fft::real::inverse(&mut data);
dft::real::inverse(&mut data);
assert::close(&data, &fixtures::TIME_DATA_256[..], 1e-14);
}
#[test]
fn real_inverse_512() {
let mut data = fixtures::TIME_DATA_512.to_vec();
fft::real::forward(&mut data);
fft::real::inverse(&mut data);
dft::real::forward(&mut data);
dft::real::inverse(&mut data);
assert::close(&data, &fixtures::TIME_DATA_512[..], 1e-14);
}

Loading…
Cancel
Save