I have this code to generate 1D noise in obj-c, it works fine:
- (float)makeNoise1D:(int)x { x = (x >> 13) ^ x; x = (x * (x * x * (int)_seed + 19990303) + 1376312589) & RAND_MAX; return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & RAND_MAX) / 1073741824.0); }
Now I'm trying to play it in Swift, but it always fails and shows EXEC_BAD_INSTRUCTION on return. Here is what it looks like now, I had to spit out the final expression, but I'm sure that is not a problem.
func makeNoise1D(var x : Int) -> Float{ x = (x >> 13) ^ x; x = (x * (x * x * seed! + 19990303) + 1376312589) & 0x7fffffff var inner = (x * (x * x * 15731 + 789221) + 1376312589) & 0x7fffffff return ( 1.0 - ( Float(inner) ) / 1073741824.0) }
I have already tried many different butts and divided into subexpressions, but still fails. The only thing I realized was that the first and last line worked. (Most of my test cases x were set to 20, and the seed to 10, just to make it simple).
Thanks for the help!
source share