Esempio n. 1
0
        public IEnumerable <double> TransformReverse(IEnumerable <double> waveletData)
        {
            if (!Scalars.IsPowerOf2(waveletData.Count()))
            {
                throw new ArgumentOutOfRangeException("waveletData");
            }

            IntPtr waveletWorkspace = Native.CreateWaveletWorkspace((uint)waveletData.Count());

            IntPtr dataPointer = waveletData.Copy();

            Native.WaveletTransformReverse(wavelet, waveletWorkspace, dataPointer, (uint)waveletData.Count(), 1);

            IEnumerable <double> signal = dataPointer.Read <double>(waveletData.Count());

            dataPointer.Free();

            Native.DisposeWaveletWorkspace(waveletWorkspace);

            return(signal);
        }