public void Init(int N)
        {
            NN = N;

            NCheck.Check(ref NN, ref Npow2);

            RevInd = RevIndex.Create(NN, Npow2);

            ExpTbl = ExpTable.Create(NN);

            tmp1 = new Complex[NN];
            tmp2 = new Complex[NN];
        }
        public void Init(int N)
        {
            NN = N;

            NCheck.Check(ref NN, ref Npow2);

            RevInd = RevIndex.Create(NN, Npow2);

            ExpTbl = ExpTable.Create(NN);

            int Nd2 = NN >> 1;

            ExpTblRev = new Complex[Nd2];
            for (int i = 0; i < Nd2; i++)
            {
                ExpTblRev[i] = ExpTbl[RevInd[i] >> 1];
            }

            tmp1 = new Complex[NN];
            tmp2 = new Complex[NN];
        }