added perlin and simplex functions