Bug
In src/pre_process/m_simplex_noise.fpp lines 208-209, the permutation table index wrapping uses mod(i, 255):
ii = mod(i, 255) ! range 0..254
jj = mod(j, 255) ! range 0..254
The permutation table p_vec has 256 entries (indices 0-255). mod(i, 255) gives range 0-254, so p_vec(255) is never accessed. This subtly biases the noise distribution by systematically excluding one permutation entry.
The standard simplex noise algorithm uses iand(i, 255) (bitwise AND), which gives the correct 0-255 range and is also faster than modular division.
Fix
PR #1218