The code snippet below is annotated to indicate the problem(s)

```
#![allow(non_snake_case)]
use num_complex::Complex64;
fn main() {
let one= Complex64::new(1.0, 0.0); let zz= Complex64::new(0.0, 0.0);
let mut data: [Complex64; 8] = [one,one,one,one, zz,zz,zz,zz,];
fft (&mut data);
//.. subsequent code after fcn call omitted...
}
const PI: f64 = 3.14159265358979323846264338327950288_f64;
fn fft (x: &mut [Complex64] )
{
let N : usize = x.len(); if N <= 1 { return; }
// The problem:
// How do I set up array even[]= all x[k] values for k an even index, and array odd[] = all x[k] values for k an odd index
// this panics
// let mut even = Vec::<Complex64>::with_capacity(N/2); let mut odd = Vec::<Complex64>::with_capacity(N/2);
// this wont work
// const n2 : usize= N/2; let even : [Complex64; n2]; let odd : [Complex64; n2];
// nor does this
//let even : [Complex64; 20]; let odd : [Complex64; 20];
// another stab in the dark
// let mut even= &[zz; N/2] ; let mut odd = &[zz; N/2] ;
// unsafe solution since my calls to this fcn commonly requires N > 4096
let zz= Complex64::new(0.0, 0.0); let mut even= [zz; 20] ; let mut odd = [zz; 20] ;
// my bottom line
for k in 0..N/2 { even[k]= x[2*k]; odd[k]= x[2*k+1]; }
for k in 0..N/2
{ let t= odd[k]* (Complex64::from_polar(1.0, -2.0*PI*(k as f64)/(N as f64)) ).exp();
x[k] = even[k] +t;
x[k +N/2]= even[k] -t;
}
}
```