public static unsafe double *AllocateDouble(this INativeMemoryProvider memoryProvider, long numberOfElements)
        {
            var ptr = (double *)memoryProvider.AllocateBytes(numberOfElements * sizeof(double)).ToPointer();

            return(ptr);
        }
        private static unsafe IntPtr AllocateComplexIntPtr(this INativeMemoryProvider memoryProvider, long numberOfElements)
        {
            var ptr = memoryProvider.AllocateBytes(numberOfElements * sizeof(Complex));

            return(ptr);
        }