/////////////////////////////////////////////////////////////////////

        /// <returns>HRESULT</returns>
        public int Init(
            int convolutionN,
            float[] sampleFrom,
            int sampleTotalFrom,
            int sampleRateFrom,
            int sampleRateTo,
            int sampleTotalTo)
        {
            WWDCUpsample_Init();

            int hr = new WWDirectCompute(WWDirectCompute.InstanceTypeEnum.Wave1D).ChooseAdapter();

            if (hr < 0)
            {
                return(hr);
            }

            return(WWDCUpsample_Setup(convolutionN, sampleFrom,
                                      sampleTotalFrom, sampleRateFrom, sampleRateTo, sampleTotalTo));
        }
        /// <returns>HRESULT</returns>
        public int Init(
            int convolutionN,
            float[] sampleFrom,
            int sampleTotalFrom,
            int sampleRateFrom,
            int sampleRateTo,
            int sampleTotalTo,
            int[] resamplePosArray,
            double[] fractionArray)
        {
            WWDCUpsample_Init();

            int hr = new WWDirectCompute(WWDirectCompute.InstanceTypeEnum.Wave1D).ChooseAdapter();

            if (hr < 0)
            {
                return(hr);
            }

            return(WWDCUpsample_SetupWithResamplePosArray(convolutionN, sampleFrom,
                                                          sampleTotalFrom, sampleRateFrom, sampleRateTo, sampleTotalTo,
                                                          resamplePosArray, fractionArray));
        }