/// <summary>
        /// Lanczos window.
        /// Periodic version, useful e.g. for FFT purposes.
        /// </summary>
        public static double[] LanczosPeriodic(int width)
        {
            double phaseStep = 2.0 / width;

            var w = new double[width];

            for (int i = 0; i < w.Length; i++)
            {
                w[i] = Trig.Sinc((i * phaseStep) - 1.0);
            }
            return(w);
        }