Written using this tutorial.

Structs:

Basic example

```rust use ffts::*;

let mut random_cmplex: Vec = vec![ FFTSComplex { re: -15.0, im: 3.0 }, FFTSComplex { re: 32.0, im: 2.0 }, FFTSComplex { re: -1337.0, im: 1.0, }, FFTSComplex { re: 62.75, im: -1.0, }, ];

let mut pf = FFTSPlan::new1d(4, FFTSDirection::Forward).unwrap();

let mut forwardvec = pf.execute(&mut random_cmplex);

let mut pb = FFTSPlan::new1d(random_cmplex.len(), FFTSDirection::Backward).unwrap();

let backwardvec = pb.execute(&mut forward_vec); ```

Compared to C:

```c

include

const float _Complex nums[4] = {-15.0 + 0.0I, 32.0 + 0.0I, -1337.0 + 0.0I, 62.75 + 0.0I}; float _Complex out1[4] = {0.0 + 0.0I, 0.0 + 0.0I, 0.0 + 0.0I, 0.0 + 0.0I}; float _Complex out2[4] = {0.0 + 0.0I, 0.0 + 0.0I, 0.0 + 0.0I, 0.0 + 0.0I};

fftsplant *p = fftsinit1d(4, FFTSFORWARD); fftsexecute(p, nums, out1);

fftsplant *p2 = fftsinit1d(4, FFTSBACKWARD); fftsexecute(p2, out1, out2);

fftsfree(p); fftsfree(p2); return 0; ```