public static Double GradientNoise(Double x, Double y, Double z, Double w, Double u, Double v, Int32 seed, InterpolationDelegate interp)
{
var x0 = FastFloor(x);
var y0 = FastFloor(y);
var z0 = FastFloor(z);
var w0 = FastFloor(w);
var u0 = FastFloor(u);
var v0 = FastFloor(v);
var x1 = x0 + 1;
var y1 = y0 + 1;
var z1 = z0 + 1;
var w1 = w0 + 1;
var u1 = u0 + 1;
var v1 = v0 + 1;
var xs = interp((x - x0));
var ys = interp((y - y0));
var zs = interp((z - z0));
var ws = interp((w - w0));
var us = interp((u - u0));
var vs = interp((v - v0));
return interpolate_XYZWUV_6(x, y, z, w, u, v, xs, ys, zs, ws, us, vs, x0, x1, y0, y1, z0, z1, w0, w1, u0, u1, v0, v1, seed, InternalGradientNoise);
}