# Value at a corner of the grid
private fun grad(hash: Int, x, y, z: Float): Float
do
var h = hash & 15
var u = if h < 8 then x else y
var v = if h < 4 then y else if h == 12 or h == 14 then x else z
return (if h.is_even then u else -u) + (if h & 2 == 0 then v else -v)
end
lib/noise/noise.nit:422,2--429,4