public static Complex[,,] DeGridW(GriddingConstants c, List <List <Subgrid> > metadata, Complex[,] grid, double[,,] uvw, double[] frequencies)
        {
            FFT.Shift(grid);
            var ftGridded    = AdderWStack.Split(c, metadata, grid);
            var gridded      = SubgridFFT.Backward(c, ftGridded);
            var visibilities = Gridder.Backwards(c, metadata, gridded, uvw, frequencies, c.SubgridSpheroidal);

            return(visibilities);
        }
        public static List <Complex[, ]> GridW(GriddingConstants c, List <List <Subgrid> > metadata, Complex[,,] visibilities, double[,,] uvw, double[] frequencies)
        {
            var gridded   = Gridder.Forward(c, metadata, uvw, visibilities, frequencies, c.SubgridSpheroidal);
            var ftgridded = SubgridFFT.Forward(c, gridded);
            var grid      = AdderWStack.Add(c, metadata, ftgridded);

            FFT.Shift(grid);

            return(grid);
        }