Here is one implementation in C# of the simplex noise algorithm
You'll notice that each noise function (2d, 3d, and 4d) scales the corner contributions to fit in the -1 to 1 range (this is the magic number on the return statements), which is reasonable. As far as I know these were figured out experimentally.
The problem is that I want to template this into an arbitrary number of dimensions, and this factor seems to be the one roadblock to doing that, so I'd like to find an algorithmic way of getting that scaling factor. I'm not familiar enough with the algorithm to see what factors contribute to the scale, but if I had to guess I'd think the permutations table at the top is a major one.
Does anyone have any ideas on this, perhaps just to say it isn't feasible?