internal static Double interpolate_XYZ_3(
            Double x, Double y, Double z, Double xs, Double ys, Double zs,
            Int32 x0, Int32 x1, Int32 y0, Int32 y1, Int32 z0, Int32 z1,
            Int32 seed, WorkerNoise3 noisefunc)
        {
            var v1 = interpolate_XY_3(x, y, z, xs, ys, x0, x1, y0, y1, z0, seed, noisefunc);
            var v2 = interpolate_XY_3(x, y, z, xs, ys, x0, x1, y0, y1, z1, seed, noisefunc);

            return Lerp(zs, v1, v2);
        }
        internal static Double interpolate_X_3(
            Double x, Double y, Double z, Double xs,
            Int32 x0, Int32 x1, Int32 iy, Int32 iz,
            Int32 seed, WorkerNoise3 noisefunc)
        {
            var v1 = noisefunc(x, y, z, x0, iy, iz, seed);
            var v2 = noisefunc(x, y, z, x1, iy, iz, seed);

            return Lerp(xs, v1, v2);
        }