complex_potentials = {
let [n_slices, nx, ny] = potential.shape;
let complex_potentials = [...Array(n_slices + 1)].map((d, i) => {
if (i < n_slices) {
let complex_potential = new ComplexNDArray([nx, ny]);
let phase = potential.pick(i, null, null);
let cos_phase = nj.cos(phase);
let sin_phase = nj.sin(phase);
complex_potential.data = nj.stack([cos_phase, sin_phase], -1);
return complex_potential;
} else {
let complex_potential = new ComplexNDArray([nx, ny]);
let cos_phase = nj.cos(projected_potential);
let sin_phase = nj.sin(projected_potential);
complex_potential.data = nj.stack([cos_phase, sin_phase], -1);
return complex_potential;
}
});
return complex_potentials;
}