51 float octave_noise_2d(
const float octaves,
52 const float persistence,
56 float octave_noise_3d(
const float octaves,
57 const float persistence,
62 float octave_noise_4d(
const float octaves,
63 const float persistence,
73 float scaled_octave_noise_2d(
const float octaves,
74 const float persistence,
80 float scaled_octave_noise_3d(
const float octaves,
81 const float persistence,
88 float scaled_octave_noise_4d(
const float octaves,
89 const float persistence,
100 float scaled_raw_noise_2d(
const float loBound,
104 float scaled_raw_noise_3d(
const float loBound,
109 float scaled_raw_noise_4d(
const float loBound,
118 float raw_noise_2d(
const float x,
const float y);
119 float raw_noise_3d(
const float x,
const float y,
const float z);
120 float raw_noise_4d(
const float x,
const float y,
const float,
const float w);
123 int fastfloor(
const float x);
125 float dot(
const int* g,
const float x,
const float y);
126 float dot(
const int* g,
const float x,
const float y,
const float z);
127 float dot(
const int* g,
const float x,
const float y,
const float z,
const float w);
131 static const int grad3[12][3] = {
132 {1,1,0}, {-1,1,0}, {1,-1,0}, {-1,-1,0},
133 {1,0,1}, {-1,0,1}, {1,0,-1}, {-1,0,-1},
134 {0,1,1}, {0,-1,1}, {0,1,-1}, {0,-1,-1}
139 static const int grad4[32][4]= {
140 {0,1,1,1}, {0,1,1,-1}, {0,1,-1,1}, {0,1,-1,-1},
141 {0,-1,1,1}, {0,-1,1,-1}, {0,-1,-1,1}, {0,-1,-1,-1},
142 {1,0,1,1}, {1,0,1,-1}, {1,0,-1,1}, {1,0,-1,-1},
143 {-1,0,1,1}, {-1,0,1,-1}, {-1,0,-1,1}, {-1,0,-1,-1},
144 {1,1,0,1}, {1,1,0,-1}, {1,-1,0,1}, {1,-1,0,-1},
145 {-1,1,0,1}, {-1,1,0,-1}, {-1,-1,0,1}, {-1,-1,0,-1},
146 {1,1,1,0}, {1,1,-1,0}, {1,-1,1,0}, {1,-1,-1,0},
147 {-1,1,1,0}, {-1,1,-1,0}, {-1,-1,1,0}, {-1,-1,-1,0}
152 static const int perm[512] = {
153 151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,
154 8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,
155 35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,
156 134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,
157 55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208, 89,
158 18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,
159 250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,
160 189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,
161 172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,
162 228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,
163 107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,
164 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,
166 151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,
167 8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,
168 35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,
169 134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,
170 55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208, 89,
171 18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,
172 250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,
173 189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,
174 172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,
175 228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,
176 107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,
177 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180
182 static const int simplex[64][4] = {
183 {0,1,2,3},{0,1,3,2},{0,0,0,0},{0,2,3,1},{0,0,0,0},{0,0,0,0},{0,0,0,0},{1,2,3,0},
184 {0,2,1,3},{0,0,0,0},{0,3,1,2},{0,3,2,1},{0,0,0,0},{0,0,0,0},{0,0,0,0},{1,3,2,0},
185 {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
186 {1,2,0,3},{0,0,0,0},{1,3,0,2},{0,0,0,0},{0,0,0,0},{0,0,0,0},{2,3,0,1},{2,3,1,0},
187 {1,0,2,3},{1,0,3,2},{0,0,0,0},{0,0,0,0},{0,0,0,0},{2,0,3,1},{0,0,0,0},{2,1,3,0},
188 {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
189 {2,0,1,3},{0,0,0,0},{0,0,0,0},{0,0,0,0},{3,0,1,2},{3,0,2,1},{0,0,0,0},{3,1,2,0},
190 {2,1,0,3},{0,0,0,0},{0,0,0,0},{0,0,0,0},{3,1,0,2},{0,0,0,0},{3,2,0,1},{3,2,1,0}