picrate 2.3.0-java → 2.4.0-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,90 +0,0 @@
1
- package monkstone.noise;
2
-
3
- /*
4
- * Copyright (c) 2021 Martin Prout
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 3.0 of the License, or (at your option) any later version.
10
- *
11
- * http://creativecommons.org/licenses/LGPL/2.1/
12
- *
13
- * This library is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
- * Lesser General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU General Public
19
- * License along with this library; if not, write to the Free Software
20
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
- */
22
- public interface Noise {
23
-
24
- /**
25
- *
26
- * @param x
27
- * @return
28
- */
29
- default float noise(float x) {
30
- return noise(x, 0);
31
- }
32
-
33
- /**
34
- *
35
- * @param x
36
- * @param y
37
- * @return
38
- */
39
- default float noise(float x, float y) {
40
- return noise(x, y, 0);
41
- }
42
-
43
- /**
44
- * <p>
45
- * Returns the Perlin noise value at specified coordinates. Perlin noise is
46
- * a random sequence generator producing a more natural ordered, harmonic
47
- * succession of numbers compared to the standard <b>random()</b> function.
48
- * It was invented by Ken Perlin in the 1980s and been used since in
49
- * graphical applications to produce procedural textures, natural motion,
50
- * shapes, terrains etc. The main difference to the
51
- * <b>random()</b> function is that Perlin noise is defined in an infinite
52
- * n-dimensional space where each pair of coordinates corresponds to a fixed
53
- * semi-random value (fixed only for the lifespan of the program). The
54
- * resulting value will always be between 0.0 and 1.0. Processing can
55
- * compute 1D, 2D and 3D noise, depending on the number of coordinates
56
- * given. The noise value can be animated by moving through the noise space
57
- * as demonstrated in the example above. The 2nd and 3rd dimension can also
58
- * be interpreted as time.The actual noise is structured similar to an audio
59
- * signal, in respect to the function's use of frequencies. Similar to the
60
- * concept of harmonics in physics, perlin noise is computed over several
61
- * octaves which are added together for the final result. Another way to
62
- * adjust the character of the resulting sequence is the scale of the input
63
- * coordinates. As the function works within an infinite space the value of
64
- * the coordinates doesn't matter as such, only the distance between
65
- * successive coordinates does (eg. when using <b>noise()</b> within a
66
- * loop). As a general rule the smaller the difference between coordinates,
67
- * the smoother the resulting noise sequence will be. Steps of 0.005-0.03
68
- * work best for most applications, but this will differ depending on use.
69
- * <p>
70
- * @param x x-coordinate in noise space
71
- * @param y y-coordinate in noise space
72
- * @param z z-coordinate in noise space
73
- * @return
74
- */
75
- float noise(float x, float y, float z);
76
-
77
- float noise(float x, float y, float z, float w);
78
-
79
- void noiseMode(NoiseMode mode);
80
-
81
- /**
82
- * Sets the seed value for <b>noise()</b>.By default, <b>noise()</b>
83
- * produces different results each time the program is run. Set the
84
- * <b>value</b> parameter to a constant to return the same pseudo-random
85
- * numbers each time the software is run.
86
- *
87
- * @param seed
88
- */
89
- void noiseSeed(long seed);
90
- }
@@ -1,75 +0,0 @@
1
- /*
2
- * To change this license header, choose License Headers in Project Properties.
3
- * To change this template file, choose Tools | Templates
4
- * and open the template in the editor.
5
- */
6
- package monkstone.noise;
7
-
8
- /**
9
- *
10
- * @author Martin Prout
11
- */
12
- public class NoiseGenerator implements Noise {
13
-
14
- private Noise implementation;
15
- private NoiseMode mode;
16
- private Long seed;
17
-
18
- public NoiseGenerator() {
19
- seed = System.currentTimeMillis();
20
- this.implementation = new OpenSimplex2F(seed);
21
- this.mode = NoiseMode.DEFAULT;
22
- }
23
-
24
- @Override
25
- public void noiseMode(NoiseMode mode) {
26
- switch (mode) {
27
- case DEFAULT:
28
- if (this.mode != NoiseMode.DEFAULT) {
29
- this.implementation = new OpenSimplex2F(seed);
30
- this.mode = NoiseMode.DEFAULT;
31
- }
32
- break;
33
- case OPEN_SMOOTH:
34
- if (this.mode != NoiseMode.OPEN_SMOOTH) {
35
- this.implementation = new OpenSimplex2S(seed);
36
- this.mode = NoiseMode.OPEN_SMOOTH;
37
- break;
38
- }
39
- case SMOOTH_TERRAIN:
40
- if (this.mode != NoiseMode.SMOOTH_TERRAIN) {
41
- this.implementation = new SmoothTerrain(seed);
42
- this.mode = NoiseMode.SMOOTH_TERRAIN;
43
- }
44
- break;
45
- case FAST_TERRAIN:
46
- if (this.mode != NoiseMode.FAST_TERRAIN) {
47
- this.implementation = new FastTerrain(seed);
48
- this.mode = NoiseMode.FAST_TERRAIN;
49
- }
50
- break;
51
- default:
52
- this.implementation = new OpenSimplex2F(seed);
53
- this.mode = NoiseMode.DEFAULT;
54
- }
55
- }
56
-
57
- public NoiseMode noiseMode() {
58
- return this.mode;
59
- }
60
-
61
- @Override
62
- public float noise(float x, float y, float z) {
63
- return implementation.noise(x, y, z);
64
- }
65
-
66
- @Override
67
- public float noise(float x, float y, float z, float w) {
68
- return implementation.noise(x, y, z, w);
69
- }
70
-
71
- @Override
72
- public void noiseSeed(long seed) {
73
- this.seed = seed;
74
- }
75
- }
@@ -1,28 +0,0 @@
1
- /*
2
- * To change this license header, choose License Headers in Project Properties.
3
- * To change this template file, choose Tools | Templates
4
- * and open the template in the editor.
5
- */
6
- package monkstone.noise;
7
-
8
- /**
9
- *
10
- * @author tux
11
- */
12
- public enum NoiseMode {
13
- DEFAULT("Fast OpenSimplex2"),
14
- FAST_TERRAIN("Fast Terrain"),
15
- SMOOTH_TERRAIN("Smooth Terrain"),
16
- OPEN_SMOOTH("Smooth OpenSimplex2");
17
-
18
- private final String description;
19
-
20
- NoiseMode(String description) {
21
- this.description = description;
22
- }
23
-
24
- public String description() {
25
- return description;
26
- }
27
-
28
- }
@@ -1,1099 +0,0 @@
1
- package monkstone.noise;
2
-
3
- /**
4
- * K.jpg's OpenSimplex 2, smooth variant ("SuperSimplex")
5
- *
6
- * - 2D is standard simplex, modified to support larger kernels. Implemented
7
- * using a lookup table. - 3D is "Re-oriented 8-point BCC noise" which
8
- * constructs a congruent BCC lattice in a much different way than usual. - 4D
9
- * uses a naïve pregenerated lookup table, and averages out to the expected
10
- * performance.
11
- *
12
- * Multiple versions of each function are provided. See the documentation above
13
- * each, for more info.
14
- */
15
- public class SmoothTerrain implements Noise {
16
-
17
- private static final int PSIZE = 2048;
18
- private static final int PMASK = 2047;
19
-
20
- private final short[] perm;
21
- private final Grad2[] permGrad2;
22
- private final Grad3[] permGrad3;
23
- private final Grad4[] permGrad4;
24
-
25
- public SmoothTerrain(long seed) {
26
- perm = new short[PSIZE];
27
- permGrad2 = new Grad2[PSIZE];
28
- permGrad3 = new Grad3[PSIZE];
29
- permGrad4 = new Grad4[PSIZE];
30
- short[] source = new short[PSIZE];
31
- for (short i = 0; i < PSIZE; i++) {
32
- source[i] = i;
33
- }
34
- for (int i = PSIZE - 1; i >= 0; i--) {
35
- seed = seed * 6364136223846793005L + 1442695040888963407L;
36
- int r = (int) ((seed + 31) % (i + 1));
37
- if (r < 0) {
38
- r += (i + 1);
39
- }
40
- perm[i] = source[r];
41
- permGrad2[i] = GRADIENTS_2D[perm[i]];
42
- permGrad3[i] = GRADIENTS_3D[perm[i]];
43
- permGrad4[i] = GRADIENTS_4D[perm[i]];
44
- source[r] = source[i];
45
- }
46
- }
47
-
48
- /*
49
- * Noise Evaluators
50
- */
51
- /**
52
- * 2D SuperSimplex noise, standard lattice orientation.
53
- *
54
- * @param x
55
- * @param y
56
- * @return
57
- */
58
- public double noise2(double x, double y) {
59
-
60
- // Get points for A2* lattice
61
- double s = 0.366025403784439 * (x + y);
62
- double xs = x + s, ys = y + s;
63
-
64
- return noise2_Base(xs, ys);
65
- }
66
-
67
- /**
68
- * 2D SuperSimplex noise, with Y pointing down the main diagonal.Might be
69
- * better for a 2D sandbox style game, where Y is vertical.Probably slightly
70
- * less optimal for heightmaps or continent maps.
71
- *
72
- * @param x
73
- * @param y
74
- * @return
75
- */
76
- public double noise2_XBeforeY(double x, double y) {
77
-
78
- // Skew transform and rotation baked into one.
79
- double xx = x * 0.7071067811865476;
80
- double yy = y * 1.224744871380249;
81
-
82
- return noise2_Base(yy + xx, yy - xx);
83
- }
84
-
85
- /**
86
- * 2D SuperSimplex noise base. Lookup table implementation inspired by
87
- * DigitalShadow.
88
- */
89
- private double noise2_Base(double xs, double ys) {
90
- double value = 0;
91
-
92
- // Get base points and offsets
93
- int xsb = fastFloor(xs), ysb = fastFloor(ys);
94
- double xsi = xs - xsb, ysi = ys - ysb;
95
-
96
- // Index to point list
97
- int a = (int) (xsi + ysi);
98
- int index
99
- = (a << 2)
100
- | (int) (xsi - ysi / 2 + 1 - a / 2.0) << 3
101
- | (int) (ysi - xsi / 2 + 1 - a / 2.0) << 4;
102
-
103
- double ssi = (xsi + ysi) * -0.211324865405187;
104
- double xi = xsi + ssi, yi = ysi + ssi;
105
-
106
- // Point contributions
107
- for (int i = 0; i < 4; i++) {
108
- LatticePoint2D c = LOOKUP_2D[index + i];
109
-
110
- double dx = xi + c.dx, dy = yi + c.dy;
111
- double attn = 2.0 / 3.0 - dx * dx - dy * dy;
112
- if (attn <= 0) {
113
- continue;
114
- }
115
-
116
- int pxm = (xsb + c.xsv) & PMASK, pym = (ysb + c.ysv) & PMASK;
117
- Grad2 grad = permGrad2[perm[pxm] ^ pym];
118
- double extrapolation = grad.dx * dx + grad.dy * dy;
119
-
120
- attn *= attn;
121
- value += attn * attn * extrapolation;
122
- }
123
-
124
- return value;
125
- }
126
-
127
- /**
128
- * 3D Re-oriented 8-point BCC noise, with better visual isotropy in (X,
129
- * Y).Recommended for 3D terrain and time-varied animations.The Z coordinate
130
- * should always be the "different" coordinate in your use case.If Y is
131
- * vertical in world coordinates, call noise3_XYBeforeZ(x, z, Y) or use
132
- * noise3_XZBeforeY.If Z is vertical in world coordinates, call
133
- * noise3_XYBeforeZ(x, y, Z). For a time varied animation, call
134
- * noise3_XYBeforeZ(x, y, T).
135
- *
136
- * @param x
137
- * @param y
138
- * @param z
139
- * @return
140
- */
141
- public double noise3_XYBeforeZ(double x, double y, double z) {
142
-
143
- // Re-orient the cubic lattices without skewing, to make X and Y triangular like 2D.
144
- // Orthonormal rotation. Not a skew transform.
145
- double xy = x + y;
146
- double s2 = xy * -0.211324865405187;
147
- double zz = z * 0.577350269189626;
148
- double xr = x + s2 - zz, yr = y + s2 - zz;
149
- double zr = xy * 0.577350269189626 + zz;
150
-
151
- // Evaluate both lattices to form a BCC lattice.
152
- return noise3_BCC(xr, yr, zr);
153
- }
154
-
155
- /**
156
- * 3D Re-oriented 8-point BCC noise, with better visual isotropy in (X,
157
- * Z).Recommended for 3D terrain and time-varied animations.The Y coordinate
158
- * should always be the "different" coordinate in your use case.If Y is
159
- * vertical in world coordinates, call noise3_XZBeforeY(x, Y, z).If Z is
160
- * vertical in world coordinates, call noise3_XZBeforeY(x, Z, y) or use
161
- * noise3_XYBeforeZ. For a time varied animation, call noise3_XZBeforeY(x,
162
- * T, y) or use noise3_XYBeforeZ.
163
- *
164
- * @param x
165
- * @param y
166
- * @param z
167
- * @return
168
- */
169
- public double noise3_XZBeforeY(double x, double y, double z) {
170
-
171
- // Re-orient the cubic lattices without skewing, to make X and Z triangular like 2D.
172
- // Orthonormal rotation. Not a skew transform.
173
- double xz = x + z;
174
- double s2 = xz * -0.211324865405187;
175
- double yy = y * 0.577350269189626;
176
- double xr = x + s2 - yy;
177
- double zr = z + s2 - yy;
178
- double yr = xz * 0.577350269189626 + yy;
179
-
180
- // Evaluate both lattices to form a BCC lattice.
181
- return noise3_BCC(xr, yr, zr);
182
- }
183
-
184
- /**
185
- * Generate overlapping cubic lattices for 3D Re-oriented BCC noise. Lookup
186
- * table implementation inspired by DigitalShadow. It was actually faster to
187
- * narrow down the points in the loop itself, than to build up the index
188
- * with enough info to isolate 8 points.
189
- */
190
- private double noise3_BCC(double xr, double yr, double zr) {
191
-
192
- // Get base and offsets inside cube of first lattice.
193
- int xrb = fastFloor(xr), yrb = fastFloor(yr), zrb = fastFloor(zr);
194
- double xri = xr - xrb, yri = yr - yrb, zri = zr - zrb;
195
-
196
- // Identify which octant of the cube we're in. This determines which cell
197
- // in the other cubic lattice we're in, and also narrows down one point on each.
198
- int xht = (int) (xri + 0.5), yht = (int) (yri + 0.5), zht = (int) (zri + 0.5);
199
- int index = (xht) | (yht << 1) | (zht << 2);
200
-
201
- // Point contributions
202
- double value = 0;
203
- LatticePoint3D c = LOOKUP_3D[index];
204
- while (c != null) {
205
- double dxr = xri + c.dxr, dyr = yri + c.dyr, dzr = zri + c.dzr;
206
- double attn = 0.75 - dxr * dxr - dyr * dyr - dzr * dzr;
207
- if (attn < 0) {
208
- c = c.nextOnFailure;
209
- } else {
210
- int pxm = (xrb + c.xrv) & PMASK, pym = (yrb + c.yrv) & PMASK, pzm = (zrb + c.zrv) & PMASK;
211
- Grad3 grad = permGrad3[perm[perm[pxm] ^ pym] ^ pzm];
212
- double extrapolation = grad.dx * dxr + grad.dy * dyr + grad.dz * dzr;
213
-
214
- attn *= attn;
215
- value += attn * attn * extrapolation;
216
- c = c.nextOnSuccess;
217
- }
218
- }
219
- return value;
220
- }
221
-
222
- /**
223
- * 4D SuperSimplex noise, with XY and ZW forming orthogonal triangular-based
224
- * planes.Recommended for 3D terrain, where X and Y (or Z and W) are
225
- * horizontal.Recommended for noise(x, y, sin(time), cos(time)) trick.
226
- *
227
- * @param x
228
- * @param y
229
- * @param z
230
- * @param w
231
- * @return
232
- */
233
- public double noise4_XYBeforeZW(double x, double y, double z, double w) {
234
-
235
- double s2 = (x + y) * -0.28522513987434876941 + (z + w) * 0.83897065470611435718;
236
- double t2 = (z + w) * 0.21939749883706435719 + (x + y) * -0.48214856493302476942;
237
- double xs = x + s2, ys = y + s2, zs = z + t2, ws = w + t2;
238
-
239
- return noise4_Base(xs, ys, zs, ws);
240
- }
241
-
242
- /**
243
- * 4D SuperSimplex noise, with XZ and YW forming orthogonal triangular-based
244
- * planes.Recommended for 3D terrain, where X and Z (or Y and W) are
245
- * horizontal.
246
- *
247
- * @param x
248
- * @param y
249
- * @param z
250
- * @param w
251
- * @return
252
- */
253
- public double noise4_XZBeforeYW(double x, double y, double z, double w) {
254
-
255
- double s2 = (x + z) * -0.28522513987434876941 + (y + w) * 0.83897065470611435718;
256
- double t2 = (y + w) * 0.21939749883706435719 + (x + z) * -0.48214856493302476942;
257
- double xs = x + s2, ys = y + t2, zs = z + s2, ws = w + t2;
258
-
259
- return noise4_Base(xs, ys, zs, ws);
260
- }
261
-
262
-
263
- /**
264
- * 4D SuperSimplex noise base. Using ultra-simple 4x4x4x4 lookup
265
- * partitioning. This isn't as elegant or SIMD/GPU/etc. portable as other
266
- * approaches, but it does compete performance-wise with optimized
267
- * OpenSimplex1.
268
- */
269
- private double noise4_Base(double xs, double ys, double zs, double ws) {
270
- double value = 0;
271
-
272
- // Get base points and offsets
273
- int xsb = fastFloor(xs), ysb = fastFloor(ys), zsb = fastFloor(zs), wsb = fastFloor(ws);
274
- double xsi = xs - xsb, ysi = ys - ysb, zsi = zs - zsb, wsi = ws - wsb;
275
-
276
- // Unskewed offsets
277
- double ssi = (xsi + ysi + zsi + wsi) * -0.138196601125011;
278
- double xi = xsi + ssi, yi = ysi + ssi, zi = zsi + ssi, wi = wsi + ssi;
279
-
280
- int index = ((fastFloor(xs * 4) & 3))
281
- | ((fastFloor(ys * 4) & 3) << 2)
282
- | ((fastFloor(zs * 4) & 3) << 4)
283
- | ((fastFloor(ws * 4) & 3) << 6);
284
-
285
- // Point contributions
286
- for (LatticePoint4D c : LOOKUP_4D[index]) {
287
- double dx = xi + c.dx, dy = yi + c.dy, dz = zi + c.dz, dw = wi + c.dw;
288
- double attn = 0.8 - dx * dx - dy * dy - dz * dz - dw * dw;
289
- if (attn > 0) {
290
- attn *= attn;
291
-
292
- int pxm = (xsb + c.xsv) & PMASK, pym = (ysb + c.ysv) & PMASK;
293
- int pzm = (zsb + c.zsv) & PMASK, pwm = (wsb + c.wsv) & PMASK;
294
- Grad4 grad = permGrad4[perm[perm[perm[pxm] ^ pym] ^ pzm] ^ pwm];
295
- double extrapolation = grad.dx * dx + grad.dy * dy + grad.dz * dz + grad.dw * dw;
296
-
297
- value += attn * attn * extrapolation;
298
- }
299
- }
300
- return value;
301
- }
302
-
303
- /*
304
- * Utility
305
- */
306
- private static int fastFloor(double x) {
307
- int xi = (int) x;
308
- return x < xi ? xi - 1 : xi;
309
- }
310
-
311
- /*
312
- * Definitions
313
- */
314
- private static final LatticePoint2D[] LOOKUP_2D;
315
- private static final LatticePoint3D[] LOOKUP_3D;
316
- private static final LatticePoint4D[][] LOOKUP_4D;
317
-
318
- static {
319
- LOOKUP_2D = new LatticePoint2D[8 * 4];
320
- LOOKUP_3D = new LatticePoint3D[8];
321
- LOOKUP_4D = new LatticePoint4D[256][];
322
-
323
- for (int i = 0; i < 8; i++) {
324
- int i1, j1, i2, j2;
325
- if ((i & 1) == 0) {
326
- if ((i & 2) == 0) {
327
- i1 = -1;
328
- j1 = 0;
329
- } else {
330
- i1 = 1;
331
- j1 = 0;
332
- }
333
- if ((i & 4) == 0) {
334
- i2 = 0;
335
- j2 = -1;
336
- } else {
337
- i2 = 0;
338
- j2 = 1;
339
- }
340
- } else {
341
- if ((i & 2) != 0) {
342
- i1 = 2;
343
- j1 = 1;
344
- } else {
345
- i1 = 0;
346
- j1 = 1;
347
- }
348
- if ((i & 4) != 0) {
349
- i2 = 1;
350
- j2 = 2;
351
- } else {
352
- i2 = 1;
353
- j2 = 0;
354
- }
355
- }
356
- LOOKUP_2D[i * 4 + 0] = new LatticePoint2D(0, 0);
357
- LOOKUP_2D[i * 4 + 1] = new LatticePoint2D(1, 1);
358
- LOOKUP_2D[i * 4 + 2] = new LatticePoint2D(i1, j1);
359
- LOOKUP_2D[i * 4 + 3] = new LatticePoint2D(i2, j2);
360
- }
361
-
362
- for (int i = 0; i < 8; i++) {
363
- int i1, j1, k1, i2, j2, k2;
364
- i1 = (i) & 1;
365
- j1 = (i >> 1) & 1;
366
- k1 = (i >> 2) & 1;
367
- i2 = i1 ^ 1;
368
- j2 = j1 ^ 1;
369
- k2 = k1 ^ 1;
370
-
371
- // The two points within this octant, one from each of the two cubic half-lattices.
372
- LatticePoint3D c0 = new LatticePoint3D(i1, j1, k1, 0);
373
- LatticePoint3D c1 = new LatticePoint3D(i1 + i2, j1 + j2, k1 + k2, 1);
374
-
375
- // (1, 0, 0) vs (0, 1, 1) away from octant.
376
- LatticePoint3D c2 = new LatticePoint3D(i1 ^ 1, j1, k1, 0);
377
- LatticePoint3D c3 = new LatticePoint3D(i1, j1 ^ 1, k1 ^ 1, 0);
378
-
379
- // (1, 0, 0) vs (0, 1, 1) away from octant, on second half-lattice.
380
- LatticePoint3D c4 = new LatticePoint3D(i1 + (i2 ^ 1), j1 + j2, k1 + k2, 1);
381
- LatticePoint3D c5 = new LatticePoint3D(i1 + i2, j1 + (j2 ^ 1), k1 + (k2 ^ 1), 1);
382
-
383
- // (0, 1, 0) vs (1, 0, 1) away from octant.
384
- LatticePoint3D c6 = new LatticePoint3D(i1, j1 ^ 1, k1, 0);
385
- LatticePoint3D c7 = new LatticePoint3D(i1 ^ 1, j1, k1 ^ 1, 0);
386
-
387
- // (0, 1, 0) vs (1, 0, 1) away from octant, on second half-lattice.
388
- LatticePoint3D c8 = new LatticePoint3D(i1 + i2, j1 + (j2 ^ 1), k1 + k2, 1);
389
- LatticePoint3D c9 = new LatticePoint3D(i1 + (i2 ^ 1), j1 + j2, k1 + (k2 ^ 1), 1);
390
-
391
- // (0, 0, 1) vs (1, 1, 0) away from octant.
392
- LatticePoint3D cA = new LatticePoint3D(i1, j1, k1 ^ 1, 0);
393
- LatticePoint3D cB = new LatticePoint3D(i1 ^ 1, j1 ^ 1, k1, 0);
394
-
395
- // (0, 0, 1) vs (1, 1, 0) away from octant, on second half-lattice.
396
- LatticePoint3D cC = new LatticePoint3D(i1 + i2, j1 + j2, k1 + (k2 ^ 1), 1);
397
- LatticePoint3D cD = new LatticePoint3D(i1 + (i2 ^ 1), j1 + (j2 ^ 1), k1 + k2, 1);
398
-
399
- // First two points are guaranteed.
400
- c0.nextOnFailure = c0.nextOnSuccess = c1;
401
- c1.nextOnFailure = c1.nextOnSuccess = c2;
402
-
403
- // If c2 is in range, then we know c3 and c4 are not.
404
- c2.nextOnFailure = c3;
405
- c2.nextOnSuccess = c5;
406
- c3.nextOnFailure = c4;
407
- c3.nextOnSuccess = c4;
408
-
409
- // If c4 is in range, then we know c5 is not.
410
- c4.nextOnFailure = c5;
411
- c4.nextOnSuccess = c6;
412
- c5.nextOnFailure = c5.nextOnSuccess = c6;
413
-
414
- // If c6 is in range, then we know c7 and c8 are not.
415
- c6.nextOnFailure = c7;
416
- c6.nextOnSuccess = c9;
417
- c7.nextOnFailure = c8;
418
- c7.nextOnSuccess = c8;
419
-
420
- // If c8 is in range, then we know c9 is not.
421
- c8.nextOnFailure = c9;
422
- c8.nextOnSuccess = cA;
423
- c9.nextOnFailure = c9.nextOnSuccess = cA;
424
-
425
- // If cA is in range, then we know cB and cC are not.
426
- cA.nextOnFailure = cB;
427
- cA.nextOnSuccess = cD;
428
- cB.nextOnFailure = cC;
429
- cB.nextOnSuccess = cC;
430
-
431
- // If cC is in range, then we know cD is not.
432
- cC.nextOnFailure = cD;
433
- cC.nextOnSuccess = null;
434
- cD.nextOnFailure = cD.nextOnSuccess = null;
435
-
436
- LOOKUP_3D[i] = c0;
437
- }
438
-
439
- int[][] lookup4DPregen = {
440
- {0x15, 0x45, 0x51, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
441
- {0x15, 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xAA},
442
- {0x01, 0x05, 0x11, 0x15, 0x41, 0x45, 0x51, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA},
443
- {0x01, 0x15, 0x16, 0x45, 0x46, 0x51, 0x52, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
444
- {0x15, 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA9, 0xAA},
445
- {0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xAA},
446
- {0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xAA},
447
- {0x05, 0x15, 0x16, 0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xAA, 0xAB},
448
- {0x04, 0x05, 0x14, 0x15, 0x44, 0x45, 0x54, 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA},
449
- {0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xAA},
450
- {0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x9A, 0xAA},
451
- {0x05, 0x15, 0x16, 0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x5B, 0x6A, 0x9A, 0xAA, 0xAB},
452
- {0x04, 0x15, 0x19, 0x45, 0x49, 0x54, 0x55, 0x58, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
453
- {0x05, 0x15, 0x19, 0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xAA, 0xAE},
454
- {0x05, 0x15, 0x19, 0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x5E, 0x6A, 0x9A, 0xAA, 0xAE},
455
- {0x05, 0x15, 0x1A, 0x45, 0x4A, 0x55, 0x56, 0x59, 0x5A, 0x5B, 0x5E, 0x6A, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF},
456
- {0x15, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0xA5, 0xA6, 0xA9, 0xAA},
457
- {0x11, 0x15, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xAA},
458
- {0x11, 0x15, 0x51, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x96, 0xA6, 0xAA},
459
- {0x11, 0x15, 0x16, 0x51, 0x52, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x96, 0xA6, 0xAA, 0xAB},
460
- {0x14, 0x15, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA9, 0xAA},
461
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x9A, 0xA6, 0xA9, 0xAA},
462
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
463
- {0x15, 0x16, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x6B, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
464
- {0x14, 0x15, 0x54, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x99, 0xA9, 0xAA},
465
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
466
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x9A, 0xAA},
467
- {0x15, 0x16, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x6B, 0x9A, 0xAA, 0xAB},
468
- {0x14, 0x15, 0x19, 0x54, 0x55, 0x58, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x99, 0xA9, 0xAA, 0xAE},
469
- {0x15, 0x19, 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x6E, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
470
- {0x15, 0x19, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x6E, 0x9A, 0xAA, 0xAE},
471
- {0x15, 0x1A, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x6B, 0x6E, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF},
472
- {0x10, 0x11, 0x14, 0x15, 0x50, 0x51, 0x54, 0x55, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA},
473
- {0x11, 0x15, 0x51, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xAA},
474
- {0x11, 0x15, 0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0xA6, 0xAA},
475
- {0x11, 0x15, 0x16, 0x51, 0x52, 0x55, 0x56, 0x65, 0x66, 0x67, 0x6A, 0xA6, 0xAA, 0xAB},
476
- {0x14, 0x15, 0x54, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA9, 0xAA},
477
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
478
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA6, 0xAA},
479
- {0x15, 0x16, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x6B, 0xA6, 0xAA, 0xAB},
480
- {0x14, 0x15, 0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0xA9, 0xAA},
481
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA9, 0xAA},
482
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xAA},
483
- {0x15, 0x16, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6B, 0xAA, 0xAB},
484
- {0x14, 0x15, 0x19, 0x54, 0x55, 0x58, 0x59, 0x65, 0x69, 0x6A, 0x6D, 0xA9, 0xAA, 0xAE},
485
- {0x15, 0x19, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x6E, 0xA9, 0xAA, 0xAE},
486
- {0x15, 0x19, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6E, 0xAA, 0xAE},
487
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x69, 0x6A, 0x6B, 0x6E, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF},
488
- {0x10, 0x15, 0x25, 0x51, 0x54, 0x55, 0x61, 0x64, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
489
- {0x11, 0x15, 0x25, 0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xAA, 0xBA},
490
- {0x11, 0x15, 0x25, 0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x6A, 0x76, 0xA6, 0xAA, 0xBA},
491
- {0x11, 0x15, 0x26, 0x51, 0x55, 0x56, 0x62, 0x65, 0x66, 0x67, 0x6A, 0x76, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB},
492
- {0x14, 0x15, 0x25, 0x54, 0x55, 0x59, 0x64, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA9, 0xAA, 0xBA},
493
- {0x15, 0x25, 0x55, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
494
- {0x15, 0x25, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xA6, 0xAA, 0xBA},
495
- {0x15, 0x26, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x6B, 0x7A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB},
496
- {0x14, 0x15, 0x25, 0x54, 0x55, 0x59, 0x64, 0x65, 0x69, 0x6A, 0x79, 0xA9, 0xAA, 0xBA},
497
- {0x15, 0x25, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xA9, 0xAA, 0xBA},
498
- {0x15, 0x25, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xAA, 0xBA},
499
- {0x15, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6B, 0x7A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB},
500
- {0x14, 0x15, 0x29, 0x54, 0x55, 0x59, 0x65, 0x68, 0x69, 0x6A, 0x6D, 0x79, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
501
- {0x15, 0x29, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x6E, 0x7A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
502
- {0x15, 0x55, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6E, 0x7A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
503
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6B, 0x6E, 0x7A, 0xAA, 0xAB, 0xAE, 0xBA, 0xBF},
504
- {0x45, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
505
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xAA},
506
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x5A, 0x66, 0x95, 0x96, 0x9A, 0xA6, 0xAA},
507
- {0x41, 0x45, 0x46, 0x51, 0x52, 0x55, 0x56, 0x5A, 0x66, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
508
- {0x44, 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA9, 0xAA},
509
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA},
510
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xAB},
511
- {0x45, 0x46, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB},
512
- {0x44, 0x45, 0x54, 0x55, 0x59, 0x5A, 0x69, 0x95, 0x99, 0x9A, 0xA9, 0xAA},
513
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
514
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xAA},
515
- {0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x96, 0x9A, 0x9B, 0xAA, 0xAB},
516
- {0x44, 0x45, 0x49, 0x54, 0x55, 0x58, 0x59, 0x5A, 0x69, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
517
- {0x45, 0x49, 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE},
518
- {0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x99, 0x9A, 0x9E, 0xAA, 0xAE},
519
- {0x45, 0x4A, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x9A, 0x9B, 0x9E, 0xAA, 0xAB, 0xAE, 0xAF},
520
- {0x50, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x95, 0x96, 0x99, 0xA5, 0xA6, 0xA9, 0xAA},
521
- {0x51, 0x55, 0x56, 0x59, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
522
- {0x51, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xAB},
523
- {0x51, 0x52, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xA7, 0xAA, 0xAB},
524
- {0x54, 0x55, 0x56, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
525
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
526
- {0x15, 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
527
- {0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
528
- {0x54, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAE},
529
- {0x15, 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
530
- {0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE},
531
- {0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
532
- {0x54, 0x55, 0x58, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAD, 0xAE},
533
- {0x55, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
534
- {0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
535
- {0x55, 0x56, 0x59, 0x5A, 0x6A, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF},
536
- {0x50, 0x51, 0x54, 0x55, 0x65, 0x66, 0x69, 0x95, 0xA5, 0xA6, 0xA9, 0xAA},
537
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
538
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xAA},
539
- {0x51, 0x52, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x96, 0xA6, 0xA7, 0xAA, 0xAB},
540
- {0x54, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
541
- {0x15, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
542
- {0x15, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xBA},
543
- {0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
544
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA9, 0xAA},
545
- {0x15, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xBA},
546
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x9A, 0xA6, 0xA9, 0xAA},
547
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
548
- {0x54, 0x55, 0x58, 0x59, 0x65, 0x69, 0x6A, 0x99, 0xA9, 0xAA, 0xAD, 0xAE},
549
- {0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
550
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
551
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x69, 0x6A, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF},
552
- {0x50, 0x51, 0x54, 0x55, 0x61, 0x64, 0x65, 0x66, 0x69, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
553
- {0x51, 0x55, 0x61, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA},
554
- {0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x6A, 0xA5, 0xA6, 0xAA, 0xB6, 0xBA},
555
- {0x51, 0x55, 0x56, 0x62, 0x65, 0x66, 0x6A, 0xA6, 0xA7, 0xAA, 0xAB, 0xB6, 0xBA, 0xBB},
556
- {0x54, 0x55, 0x64, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA},
557
- {0x55, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
558
- {0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
559
- {0x55, 0x56, 0x65, 0x66, 0x6A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB},
560
- {0x54, 0x55, 0x59, 0x64, 0x65, 0x69, 0x6A, 0xA5, 0xA9, 0xAA, 0xB9, 0xBA},
561
- {0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
562
- {0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
563
- {0x15, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB},
564
- {0x54, 0x55, 0x59, 0x65, 0x68, 0x69, 0x6A, 0xA9, 0xAA, 0xAD, 0xAE, 0xB9, 0xBA, 0xBE},
565
- {0x55, 0x59, 0x65, 0x69, 0x6A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
566
- {0x15, 0x55, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
567
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xAA, 0xAB, 0xAE, 0xBA, 0xBF},
568
- {0x40, 0x41, 0x44, 0x45, 0x50, 0x51, 0x54, 0x55, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
569
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xAA},
570
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x95, 0x96, 0x9A, 0xA6, 0xAA},
571
- {0x41, 0x45, 0x46, 0x51, 0x52, 0x55, 0x56, 0x95, 0x96, 0x97, 0x9A, 0xA6, 0xAA, 0xAB},
572
- {0x44, 0x45, 0x54, 0x55, 0x59, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA9, 0xAA},
573
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
574
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA},
575
- {0x45, 0x46, 0x55, 0x56, 0x5A, 0x95, 0x96, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB},
576
- {0x44, 0x45, 0x54, 0x55, 0x59, 0x95, 0x99, 0x9A, 0xA9, 0xAA},
577
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA},
578
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xAA},
579
- {0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9B, 0xAA, 0xAB},
580
- {0x44, 0x45, 0x49, 0x54, 0x55, 0x58, 0x59, 0x95, 0x99, 0x9A, 0x9D, 0xA9, 0xAA, 0xAE},
581
- {0x45, 0x49, 0x55, 0x59, 0x5A, 0x95, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE},
582
- {0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9E, 0xAA, 0xAE},
583
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x96, 0x99, 0x9A, 0x9B, 0x9E, 0xAA, 0xAB, 0xAE, 0xAF},
584
- {0x50, 0x51, 0x54, 0x55, 0x65, 0x95, 0x96, 0x99, 0xA5, 0xA6, 0xA9, 0xAA},
585
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
586
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA},
587
- {0x51, 0x52, 0x55, 0x56, 0x66, 0x95, 0x96, 0x9A, 0xA6, 0xA7, 0xAA, 0xAB},
588
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
589
- {0x45, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
590
- {0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xEA},
591
- {0x55, 0x56, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB},
592
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA},
593
- {0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xEA},
594
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA},
595
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xAB},
596
- {0x54, 0x55, 0x58, 0x59, 0x69, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAD, 0xAE},
597
- {0x55, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
598
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xAE},
599
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x96, 0x99, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF},
600
- {0x50, 0x51, 0x54, 0x55, 0x65, 0x95, 0xA5, 0xA6, 0xA9, 0xAA},
601
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA},
602
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xAA},
603
- {0x51, 0x52, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB},
604
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA},
605
- {0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA},
606
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
607
- {0x51, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xAB},
608
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA},
609
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
610
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA},
611
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB},
612
- {0x54, 0x55, 0x58, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE},
613
- {0x54, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAE},
614
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAE},
615
- {0x55, 0x56, 0x59, 0x5A, 0x66, 0x69, 0x6A, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xAF},
616
- {0x50, 0x51, 0x54, 0x55, 0x61, 0x64, 0x65, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xB5, 0xBA},
617
- {0x51, 0x55, 0x61, 0x65, 0x66, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA},
618
- {0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0xB6, 0xBA},
619
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x96, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0xB6, 0xBA, 0xBB},
620
- {0x54, 0x55, 0x64, 0x65, 0x69, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA},
621
- {0x55, 0x65, 0x66, 0x69, 0x6A, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
622
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
623
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x96, 0xA5, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB},
624
- {0x54, 0x55, 0x59, 0x64, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xB9, 0xBA},
625
- {0x54, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
626
- {0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA},
627
- {0x55, 0x56, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xBA, 0xBB},
628
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x99, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0xB9, 0xBA, 0xBE},
629
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x99, 0xA5, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
630
- {0x55, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE},
631
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xBA},
632
- {0x40, 0x45, 0x51, 0x54, 0x55, 0x85, 0x91, 0x94, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
633
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x85, 0x91, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xAA, 0xEA},
634
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x85, 0x91, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xD6, 0xEA},
635
- {0x41, 0x45, 0x51, 0x55, 0x56, 0x86, 0x92, 0x95, 0x96, 0x97, 0x9A, 0xA6, 0xAA, 0xAB, 0xD6, 0xEA, 0xEB},
636
- {0x44, 0x45, 0x54, 0x55, 0x59, 0x85, 0x94, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xEA},
637
- {0x45, 0x55, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xDA, 0xEA},
638
- {0x45, 0x55, 0x56, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xDA, 0xEA},
639
- {0x45, 0x55, 0x56, 0x86, 0x95, 0x96, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB, 0xDA, 0xEA, 0xEB},
640
- {0x44, 0x45, 0x54, 0x55, 0x59, 0x85, 0x94, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xD9, 0xEA},
641
- {0x45, 0x55, 0x59, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xDA, 0xEA},
642
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0xDA, 0xEA},
643
- {0x45, 0x55, 0x56, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB, 0xDA, 0xEA, 0xEB},
644
- {0x44, 0x45, 0x54, 0x55, 0x59, 0x89, 0x95, 0x98, 0x99, 0x9A, 0x9D, 0xA9, 0xAA, 0xAE, 0xD9, 0xEA, 0xEE},
645
- {0x45, 0x55, 0x59, 0x89, 0x95, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE, 0xDA, 0xEA, 0xEE},
646
- {0x45, 0x55, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE, 0xDA, 0xEA, 0xEE},
647
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9B, 0x9E, 0xAA, 0xAB, 0xAE, 0xDA, 0xEA, 0xEF},
648
- {0x50, 0x51, 0x54, 0x55, 0x65, 0x91, 0x94, 0x95, 0x96, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
649
- {0x51, 0x55, 0x91, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xE6, 0xEA},
650
- {0x51, 0x55, 0x56, 0x91, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xE6, 0xEA},
651
- {0x51, 0x55, 0x56, 0x92, 0x95, 0x96, 0x9A, 0xA6, 0xA7, 0xAA, 0xAB, 0xE6, 0xEA, 0xEB},
652
- {0x54, 0x55, 0x94, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xE9, 0xEA},
653
- {0x55, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
654
- {0x55, 0x56, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
655
- {0x55, 0x56, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0xEA, 0xEB},
656
- {0x54, 0x55, 0x59, 0x94, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xE9, 0xEA},
657
- {0x55, 0x59, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
658
- {0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
659
- {0x45, 0x55, 0x56, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xAB, 0xEA, 0xEB},
660
- {0x54, 0x55, 0x59, 0x95, 0x98, 0x99, 0x9A, 0xA9, 0xAA, 0xAD, 0xAE, 0xE9, 0xEA, 0xEE},
661
- {0x55, 0x59, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE},
662
- {0x45, 0x55, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE},
663
- {0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0xAB, 0xAE, 0xEA, 0xEF},
664
- {0x50, 0x51, 0x54, 0x55, 0x65, 0x91, 0x94, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xE5, 0xEA},
665
- {0x51, 0x55, 0x65, 0x91, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xE6, 0xEA},
666
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x91, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0xE6, 0xEA},
667
- {0x51, 0x55, 0x56, 0x66, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0xE6, 0xEA, 0xEB},
668
- {0x54, 0x55, 0x65, 0x94, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xE9, 0xEA},
669
- {0x55, 0x65, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
670
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
671
- {0x51, 0x55, 0x56, 0x66, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xAB, 0xEA, 0xEB},
672
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x94, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xE9, 0xEA},
673
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
674
- {0x55, 0x56, 0x59, 0x65, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA},
675
- {0x55, 0x56, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xEA, 0xEB},
676
- {0x54, 0x55, 0x59, 0x69, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0xE9, 0xEA, 0xEE},
677
- {0x54, 0x55, 0x59, 0x69, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE},
678
- {0x55, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE},
679
- {0x55, 0x56, 0x59, 0x5A, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xEA},
680
- {0x50, 0x51, 0x54, 0x55, 0x65, 0x95, 0xA1, 0xA4, 0xA5, 0xA6, 0xA9, 0xAA, 0xB5, 0xBA, 0xE5, 0xEA, 0xFA},
681
- {0x51, 0x55, 0x65, 0x95, 0xA1, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA, 0xE6, 0xEA, 0xFA},
682
- {0x51, 0x55, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA, 0xE6, 0xEA, 0xFA},
683
- {0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0xB6, 0xBA, 0xE6, 0xEA, 0xFB},
684
- {0x54, 0x55, 0x65, 0x95, 0xA4, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA, 0xE9, 0xEA, 0xFA},
685
- {0x55, 0x65, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA},
686
- {0x51, 0x55, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA},
687
- {0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0xAB, 0xBA, 0xEA, 0xFB},
688
- {0x54, 0x55, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA, 0xE9, 0xEA, 0xFA},
689
- {0x54, 0x55, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA},
690
- {0x55, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA},
691
- {0x55, 0x56, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xBA, 0xEA},
692
- {0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0xB9, 0xBA, 0xE9, 0xEA, 0xFE},
693
- {0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xAE, 0xBA, 0xEA, 0xFE},
694
- {0x55, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xBA, 0xEA},
695
- {0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xBA, 0xEA},};
696
- LatticePoint4D[] latticePoints = new LatticePoint4D[256];
697
- for (int i = 0; i < 256; i++) {
698
- int cx = ((i) & 3) - 1;
699
- int cy = ((i >> 2) & 3) - 1;
700
- int cz = ((i >> 4) & 3) - 1;
701
- int cw = ((i >> 6) & 3) - 1;
702
- latticePoints[i] = new LatticePoint4D(cx, cy, cz, cw);
703
- }
704
- for (int i = 0; i < 256; i++) {
705
- LOOKUP_4D[i] = new LatticePoint4D[lookup4DPregen[i].length];
706
- for (int j = 0; j < lookup4DPregen[i].length; j++) {
707
- LOOKUP_4D[i][j] = latticePoints[lookup4DPregen[i][j]];
708
- }
709
- }
710
- }
711
-
712
- @Override
713
- public float noise(float x, float y){
714
- return (float)noise2_XBeforeY(x, y);
715
- }
716
-
717
- @Override
718
- public float noise(float x, float y, float z) {
719
- return (float)noise3_XYBeforeZ(x, y, z);
720
- }
721
-
722
- @Override
723
- public float noise(float x, float y, float z, float w) {
724
- return (float)noise4_XZBeforeYW(x, y, z, w);
725
- }
726
-
727
- @Override
728
- public void noiseMode(NoiseMode mode) {
729
-
730
- }
731
-
732
- @Override
733
- public void noiseSeed(long seed) {
734
-
735
- }
736
-
737
- private static class LatticePoint2D {
738
-
739
- int xsv, ysv;
740
- double dx, dy;
741
-
742
- public LatticePoint2D(int xsv, int ysv) {
743
- this.xsv = xsv;
744
- this.ysv = ysv;
745
- double ssv = (xsv + ysv) * -0.211324865405187;
746
- this.dx = -xsv - ssv;
747
- this.dy = -ysv - ssv;
748
- }
749
- }
750
-
751
- private static class LatticePoint3D {
752
-
753
- public double dxr, dyr, dzr;
754
- public int xrv, yrv, zrv;
755
- LatticePoint3D nextOnFailure, nextOnSuccess;
756
-
757
- public LatticePoint3D(int xrv, int yrv, int zrv, int lattice) {
758
- this.dxr = -xrv + lattice * 0.5;
759
- this.dyr = -yrv + lattice * 0.5;
760
- this.dzr = -zrv + lattice * 0.5;
761
- this.xrv = xrv + lattice * 1024;
762
- this.yrv = yrv + lattice * 1024;
763
- this.zrv = zrv + lattice * 1024;
764
- }
765
- }
766
-
767
- private static class LatticePoint4D {
768
-
769
- int xsv, ysv, zsv, wsv;
770
- double dx, dy, dz, dw;
771
-
772
- public LatticePoint4D(int xsv, int ysv, int zsv, int wsv) {
773
- this.xsv = xsv;
774
- this.ysv = ysv;
775
- this.zsv = zsv;
776
- this.wsv = wsv;
777
- double ssv = (xsv + ysv + zsv + wsv) * -0.138196601125011;
778
- this.dx = -xsv - ssv;
779
- this.dy = -ysv - ssv;
780
- this.dz = -zsv - ssv;
781
- this.dw = -wsv - ssv;
782
- }
783
- }
784
-
785
- /*
786
- * Gradients
787
- */
788
- private static class Grad2 {
789
-
790
- double dx, dy;
791
-
792
- public Grad2(double dx, double dy) {
793
- this.dx = dx;
794
- this.dy = dy;
795
- }
796
- }
797
-
798
- private static class Grad3 {
799
-
800
- double dx, dy, dz;
801
-
802
- public Grad3(double dx, double dy, double dz) {
803
- this.dx = dx;
804
- this.dy = dy;
805
- this.dz = dz;
806
- }
807
- }
808
-
809
- private static class Grad4 {
810
-
811
- double dx, dy, dz, dw;
812
-
813
- public Grad4(double dx, double dy, double dz, double dw) {
814
- this.dx = dx;
815
- this.dy = dy;
816
- this.dz = dz;
817
- this.dw = dw;
818
- }
819
- }
820
-
821
- private static final double N2 = 0.05481866495625118;
822
- private static final double N3 = 0.2781926117527186;
823
- private static final double N4 = 0.11127401889945551;
824
- private static final Grad2[] GRADIENTS_2D;
825
- private static final Grad3[] GRADIENTS_3D;
826
- private static final Grad4[] GRADIENTS_4D;
827
-
828
- static {
829
-
830
- GRADIENTS_2D = new Grad2[PSIZE];
831
- Grad2[] grad2 = {
832
- new Grad2(0.130526192220052, 0.99144486137381),
833
- new Grad2(0.38268343236509, 0.923879532511287),
834
- new Grad2(0.608761429008721, 0.793353340291235),
835
- new Grad2(0.793353340291235, 0.608761429008721),
836
- new Grad2(0.923879532511287, 0.38268343236509),
837
- new Grad2(0.99144486137381, 0.130526192220051),
838
- new Grad2(0.99144486137381, -0.130526192220051),
839
- new Grad2(0.923879532511287, -0.38268343236509),
840
- new Grad2(0.793353340291235, -0.60876142900872),
841
- new Grad2(0.608761429008721, -0.793353340291235),
842
- new Grad2(0.38268343236509, -0.923879532511287),
843
- new Grad2(0.130526192220052, -0.99144486137381),
844
- new Grad2(-0.130526192220052, -0.99144486137381),
845
- new Grad2(-0.38268343236509, -0.923879532511287),
846
- new Grad2(-0.608761429008721, -0.793353340291235),
847
- new Grad2(-0.793353340291235, -0.608761429008721),
848
- new Grad2(-0.923879532511287, -0.38268343236509),
849
- new Grad2(-0.99144486137381, -0.130526192220052),
850
- new Grad2(-0.99144486137381, 0.130526192220051),
851
- new Grad2(-0.923879532511287, 0.38268343236509),
852
- new Grad2(-0.793353340291235, 0.608761429008721),
853
- new Grad2(-0.608761429008721, 0.793353340291235),
854
- new Grad2(-0.38268343236509, 0.923879532511287),
855
- new Grad2(-0.130526192220052, 0.99144486137381)
856
- };
857
- Grad2[] grad2XBeforeY = new Grad2[grad2.length];
858
- for (Grad2 grad21 : grad2) {
859
- grad21.dx /= N2;
860
- grad21.dy /= N2;
861
- }
862
- for (int i = 0; i < PSIZE; i++) {
863
- GRADIENTS_2D[i] = grad2[i % grad2.length];
864
- }
865
-
866
- GRADIENTS_3D = new Grad3[PSIZE];
867
- Grad3[] grad3 = {
868
- new Grad3(-2.22474487139, -2.22474487139, -1.0),
869
- new Grad3(-2.22474487139, -2.22474487139, 1.0),
870
- new Grad3(-3.0862664687972017, -1.1721513422464978, 0.0),
871
- new Grad3(-1.1721513422464978, -3.0862664687972017, 0.0),
872
- new Grad3(-2.22474487139, -1.0, -2.22474487139),
873
- new Grad3(-2.22474487139, 1.0, -2.22474487139),
874
- new Grad3(-1.1721513422464978, 0.0, -3.0862664687972017),
875
- new Grad3(-3.0862664687972017, 0.0, -1.1721513422464978),
876
- new Grad3(-2.22474487139, -1.0, 2.22474487139),
877
- new Grad3(-2.22474487139, 1.0, 2.22474487139),
878
- new Grad3(-3.0862664687972017, 0.0, 1.1721513422464978),
879
- new Grad3(-1.1721513422464978, 0.0, 3.0862664687972017),
880
- new Grad3(-2.22474487139, 2.22474487139, -1.0),
881
- new Grad3(-2.22474487139, 2.22474487139, 1.0),
882
- new Grad3(-1.1721513422464978, 3.0862664687972017, 0.0),
883
- new Grad3(-3.0862664687972017, 1.1721513422464978, 0.0),
884
- new Grad3(-1.0, -2.22474487139, -2.22474487139),
885
- new Grad3(1.0, -2.22474487139, -2.22474487139),
886
- new Grad3(0.0, -3.0862664687972017, -1.1721513422464978),
887
- new Grad3(0.0, -1.1721513422464978, -3.0862664687972017),
888
- new Grad3(-1.0, -2.22474487139, 2.22474487139),
889
- new Grad3(1.0, -2.22474487139, 2.22474487139),
890
- new Grad3(0.0, -1.1721513422464978, 3.0862664687972017),
891
- new Grad3(0.0, -3.0862664687972017, 1.1721513422464978),
892
- new Grad3(-1.0, 2.22474487139, -2.22474487139),
893
- new Grad3(1.0, 2.22474487139, -2.22474487139),
894
- new Grad3(0.0, 1.1721513422464978, -3.0862664687972017),
895
- new Grad3(0.0, 3.0862664687972017, -1.1721513422464978),
896
- new Grad3(-1.0, 2.22474487139, 2.22474487139),
897
- new Grad3(1.0, 2.22474487139, 2.22474487139),
898
- new Grad3(0.0, 3.0862664687972017, 1.1721513422464978),
899
- new Grad3(0.0, 1.1721513422464978, 3.0862664687972017),
900
- new Grad3(2.22474487139, -2.22474487139, -1.0),
901
- new Grad3(2.22474487139, -2.22474487139, 1.0),
902
- new Grad3(1.1721513422464978, -3.0862664687972017, 0.0),
903
- new Grad3(3.0862664687972017, -1.1721513422464978, 0.0),
904
- new Grad3(2.22474487139, -1.0, -2.22474487139),
905
- new Grad3(2.22474487139, 1.0, -2.22474487139),
906
- new Grad3(3.0862664687972017, 0.0, -1.1721513422464978),
907
- new Grad3(1.1721513422464978, 0.0, -3.0862664687972017),
908
- new Grad3(2.22474487139, -1.0, 2.22474487139),
909
- new Grad3(2.22474487139, 1.0, 2.22474487139),
910
- new Grad3(1.1721513422464978, 0.0, 3.0862664687972017),
911
- new Grad3(3.0862664687972017, 0.0, 1.1721513422464978),
912
- new Grad3(2.22474487139, 2.22474487139, -1.0),
913
- new Grad3(2.22474487139, 2.22474487139, 1.0),
914
- new Grad3(3.0862664687972017, 1.1721513422464978, 0.0),
915
- new Grad3(1.1721513422464978, 3.0862664687972017, 0.0)
916
- };
917
- for (Grad3 grad31 : grad3) {
918
- grad31.dx /= N3;
919
- grad31.dy /= N3;
920
- grad31.dz /= N3;
921
- }
922
- for (int i = 0; i < PSIZE; i++) {
923
- GRADIENTS_3D[i] = grad3[i % grad3.length];
924
- }
925
-
926
- GRADIENTS_4D = new Grad4[PSIZE];
927
- Grad4[] grad4 = {
928
- new Grad4(-0.753341017856078, -0.37968289875261624, -0.37968289875261624, -0.37968289875261624),
929
- new Grad4(-0.7821684431180708, -0.4321472685365301, -0.4321472685365301, 0.12128480194602098),
930
- new Grad4(-0.7821684431180708, -0.4321472685365301, 0.12128480194602098, -0.4321472685365301),
931
- new Grad4(-0.7821684431180708, 0.12128480194602098, -0.4321472685365301, -0.4321472685365301),
932
- new Grad4(-0.8586508742123365, -0.508629699630796, 0.044802370851755174, 0.044802370851755174),
933
- new Grad4(-0.8586508742123365, 0.044802370851755174, -0.508629699630796, 0.044802370851755174),
934
- new Grad4(-0.8586508742123365, 0.044802370851755174, 0.044802370851755174, -0.508629699630796),
935
- new Grad4(-0.9982828964265062, -0.03381941603233842, -0.03381941603233842, -0.03381941603233842),
936
- new Grad4(-0.37968289875261624, -0.753341017856078, -0.37968289875261624, -0.37968289875261624),
937
- new Grad4(-0.4321472685365301, -0.7821684431180708, -0.4321472685365301, 0.12128480194602098),
938
- new Grad4(-0.4321472685365301, -0.7821684431180708, 0.12128480194602098, -0.4321472685365301),
939
- new Grad4(0.12128480194602098, -0.7821684431180708, -0.4321472685365301, -0.4321472685365301),
940
- new Grad4(-0.508629699630796, -0.8586508742123365, 0.044802370851755174, 0.044802370851755174),
941
- new Grad4(0.044802370851755174, -0.8586508742123365, -0.508629699630796, 0.044802370851755174),
942
- new Grad4(0.044802370851755174, -0.8586508742123365, 0.044802370851755174, -0.508629699630796),
943
- new Grad4(-0.03381941603233842, -0.9982828964265062, -0.03381941603233842, -0.03381941603233842),
944
- new Grad4(-0.37968289875261624, -0.37968289875261624, -0.753341017856078, -0.37968289875261624),
945
- new Grad4(-0.4321472685365301, -0.4321472685365301, -0.7821684431180708, 0.12128480194602098),
946
- new Grad4(-0.4321472685365301, 0.12128480194602098, -0.7821684431180708, -0.4321472685365301),
947
- new Grad4(0.12128480194602098, -0.4321472685365301, -0.7821684431180708, -0.4321472685365301),
948
- new Grad4(-0.508629699630796, 0.044802370851755174, -0.8586508742123365, 0.044802370851755174),
949
- new Grad4(0.044802370851755174, -0.508629699630796, -0.8586508742123365, 0.044802370851755174),
950
- new Grad4(0.044802370851755174, 0.044802370851755174, -0.8586508742123365, -0.508629699630796),
951
- new Grad4(-0.03381941603233842, -0.03381941603233842, -0.9982828964265062, -0.03381941603233842),
952
- new Grad4(-0.37968289875261624, -0.37968289875261624, -0.37968289875261624, -0.753341017856078),
953
- new Grad4(-0.4321472685365301, -0.4321472685365301, 0.12128480194602098, -0.7821684431180708),
954
- new Grad4(-0.4321472685365301, 0.12128480194602098, -0.4321472685365301, -0.7821684431180708),
955
- new Grad4(0.12128480194602098, -0.4321472685365301, -0.4321472685365301, -0.7821684431180708),
956
- new Grad4(-0.508629699630796, 0.044802370851755174, 0.044802370851755174, -0.8586508742123365),
957
- new Grad4(0.044802370851755174, -0.508629699630796, 0.044802370851755174, -0.8586508742123365),
958
- new Grad4(0.044802370851755174, 0.044802370851755174, -0.508629699630796, -0.8586508742123365),
959
- new Grad4(-0.03381941603233842, -0.03381941603233842, -0.03381941603233842, -0.9982828964265062),
960
- new Grad4(-0.6740059517812944, -0.3239847771997537, -0.3239847771997537, 0.5794684678643381),
961
- new Grad4(-0.7504883828755602, -0.4004672082940195, 0.15296486218853164, 0.5029860367700724),
962
- new Grad4(-0.7504883828755602, 0.15296486218853164, -0.4004672082940195, 0.5029860367700724),
963
- new Grad4(-0.8828161875373585, 0.08164729285680945, 0.08164729285680945, 0.4553054119602712),
964
- new Grad4(-0.4553054119602712, -0.08164729285680945, -0.08164729285680945, 0.8828161875373585),
965
- new Grad4(-0.5029860367700724, -0.15296486218853164, 0.4004672082940195, 0.7504883828755602),
966
- new Grad4(-0.5029860367700724, 0.4004672082940195, -0.15296486218853164, 0.7504883828755602),
967
- new Grad4(-0.5794684678643381, 0.3239847771997537, 0.3239847771997537, 0.6740059517812944),
968
- new Grad4(-0.3239847771997537, -0.6740059517812944, -0.3239847771997537, 0.5794684678643381),
969
- new Grad4(-0.4004672082940195, -0.7504883828755602, 0.15296486218853164, 0.5029860367700724),
970
- new Grad4(0.15296486218853164, -0.7504883828755602, -0.4004672082940195, 0.5029860367700724),
971
- new Grad4(0.08164729285680945, -0.8828161875373585, 0.08164729285680945, 0.4553054119602712),
972
- new Grad4(-0.08164729285680945, -0.4553054119602712, -0.08164729285680945, 0.8828161875373585),
973
- new Grad4(-0.15296486218853164, -0.5029860367700724, 0.4004672082940195, 0.7504883828755602),
974
- new Grad4(0.4004672082940195, -0.5029860367700724, -0.15296486218853164, 0.7504883828755602),
975
- new Grad4(0.3239847771997537, -0.5794684678643381, 0.3239847771997537, 0.6740059517812944),
976
- new Grad4(-0.3239847771997537, -0.3239847771997537, -0.6740059517812944, 0.5794684678643381),
977
- new Grad4(-0.4004672082940195, 0.15296486218853164, -0.7504883828755602, 0.5029860367700724),
978
- new Grad4(0.15296486218853164, -0.4004672082940195, -0.7504883828755602, 0.5029860367700724),
979
- new Grad4(0.08164729285680945, 0.08164729285680945, -0.8828161875373585, 0.4553054119602712),
980
- new Grad4(-0.08164729285680945, -0.08164729285680945, -0.4553054119602712, 0.8828161875373585),
981
- new Grad4(-0.15296486218853164, 0.4004672082940195, -0.5029860367700724, 0.7504883828755602),
982
- new Grad4(0.4004672082940195, -0.15296486218853164, -0.5029860367700724, 0.7504883828755602),
983
- new Grad4(0.3239847771997537, 0.3239847771997537, -0.5794684678643381, 0.6740059517812944),
984
- new Grad4(-0.6740059517812944, -0.3239847771997537, 0.5794684678643381, -0.3239847771997537),
985
- new Grad4(-0.7504883828755602, -0.4004672082940195, 0.5029860367700724, 0.15296486218853164),
986
- new Grad4(-0.7504883828755602, 0.15296486218853164, 0.5029860367700724, -0.4004672082940195),
987
- new Grad4(-0.8828161875373585, 0.08164729285680945, 0.4553054119602712, 0.08164729285680945),
988
- new Grad4(-0.4553054119602712, -0.08164729285680945, 0.8828161875373585, -0.08164729285680945),
989
- new Grad4(-0.5029860367700724, -0.15296486218853164, 0.7504883828755602, 0.4004672082940195),
990
- new Grad4(-0.5029860367700724, 0.4004672082940195, 0.7504883828755602, -0.15296486218853164),
991
- new Grad4(-0.5794684678643381, 0.3239847771997537, 0.6740059517812944, 0.3239847771997537),
992
- new Grad4(-0.3239847771997537, -0.6740059517812944, 0.5794684678643381, -0.3239847771997537),
993
- new Grad4(-0.4004672082940195, -0.7504883828755602, 0.5029860367700724, 0.15296486218853164),
994
- new Grad4(0.15296486218853164, -0.7504883828755602, 0.5029860367700724, -0.4004672082940195),
995
- new Grad4(0.08164729285680945, -0.8828161875373585, 0.4553054119602712, 0.08164729285680945),
996
- new Grad4(-0.08164729285680945, -0.4553054119602712, 0.8828161875373585, -0.08164729285680945),
997
- new Grad4(-0.15296486218853164, -0.5029860367700724, 0.7504883828755602, 0.4004672082940195),
998
- new Grad4(0.4004672082940195, -0.5029860367700724, 0.7504883828755602, -0.15296486218853164),
999
- new Grad4(0.3239847771997537, -0.5794684678643381, 0.6740059517812944, 0.3239847771997537),
1000
- new Grad4(-0.3239847771997537, -0.3239847771997537, 0.5794684678643381, -0.6740059517812944),
1001
- new Grad4(-0.4004672082940195, 0.15296486218853164, 0.5029860367700724, -0.7504883828755602),
1002
- new Grad4(0.15296486218853164, -0.4004672082940195, 0.5029860367700724, -0.7504883828755602),
1003
- new Grad4(0.08164729285680945, 0.08164729285680945, 0.4553054119602712, -0.8828161875373585),
1004
- new Grad4(-0.08164729285680945, -0.08164729285680945, 0.8828161875373585, -0.4553054119602712),
1005
- new Grad4(-0.15296486218853164, 0.4004672082940195, 0.7504883828755602, -0.5029860367700724),
1006
- new Grad4(0.4004672082940195, -0.15296486218853164, 0.7504883828755602, -0.5029860367700724),
1007
- new Grad4(0.3239847771997537, 0.3239847771997537, 0.6740059517812944, -0.5794684678643381),
1008
- new Grad4(-0.6740059517812944, 0.5794684678643381, -0.3239847771997537, -0.3239847771997537),
1009
- new Grad4(-0.7504883828755602, 0.5029860367700724, -0.4004672082940195, 0.15296486218853164),
1010
- new Grad4(-0.7504883828755602, 0.5029860367700724, 0.15296486218853164, -0.4004672082940195),
1011
- new Grad4(-0.8828161875373585, 0.4553054119602712, 0.08164729285680945, 0.08164729285680945),
1012
- new Grad4(-0.4553054119602712, 0.8828161875373585, -0.08164729285680945, -0.08164729285680945),
1013
- new Grad4(-0.5029860367700724, 0.7504883828755602, -0.15296486218853164, 0.4004672082940195),
1014
- new Grad4(-0.5029860367700724, 0.7504883828755602, 0.4004672082940195, -0.15296486218853164),
1015
- new Grad4(-0.5794684678643381, 0.6740059517812944, 0.3239847771997537, 0.3239847771997537),
1016
- new Grad4(-0.3239847771997537, 0.5794684678643381, -0.6740059517812944, -0.3239847771997537),
1017
- new Grad4(-0.4004672082940195, 0.5029860367700724, -0.7504883828755602, 0.15296486218853164),
1018
- new Grad4(0.15296486218853164, 0.5029860367700724, -0.7504883828755602, -0.4004672082940195),
1019
- new Grad4(0.08164729285680945, 0.4553054119602712, -0.8828161875373585, 0.08164729285680945),
1020
- new Grad4(-0.08164729285680945, 0.8828161875373585, -0.4553054119602712, -0.08164729285680945),
1021
- new Grad4(-0.15296486218853164, 0.7504883828755602, -0.5029860367700724, 0.4004672082940195),
1022
- new Grad4(0.4004672082940195, 0.7504883828755602, -0.5029860367700724, -0.15296486218853164),
1023
- new Grad4(0.3239847771997537, 0.6740059517812944, -0.5794684678643381, 0.3239847771997537),
1024
- new Grad4(-0.3239847771997537, 0.5794684678643381, -0.3239847771997537, -0.6740059517812944),
1025
- new Grad4(-0.4004672082940195, 0.5029860367700724, 0.15296486218853164, -0.7504883828755602),
1026
- new Grad4(0.15296486218853164, 0.5029860367700724, -0.4004672082940195, -0.7504883828755602),
1027
- new Grad4(0.08164729285680945, 0.4553054119602712, 0.08164729285680945, -0.8828161875373585),
1028
- new Grad4(-0.08164729285680945, 0.8828161875373585, -0.08164729285680945, -0.4553054119602712),
1029
- new Grad4(-0.15296486218853164, 0.7504883828755602, 0.4004672082940195, -0.5029860367700724),
1030
- new Grad4(0.4004672082940195, 0.7504883828755602, -0.15296486218853164, -0.5029860367700724),
1031
- new Grad4(0.3239847771997537, 0.6740059517812944, 0.3239847771997537, -0.5794684678643381),
1032
- new Grad4(0.5794684678643381, -0.6740059517812944, -0.3239847771997537, -0.3239847771997537),
1033
- new Grad4(0.5029860367700724, -0.7504883828755602, -0.4004672082940195, 0.15296486218853164),
1034
- new Grad4(0.5029860367700724, -0.7504883828755602, 0.15296486218853164, -0.4004672082940195),
1035
- new Grad4(0.4553054119602712, -0.8828161875373585, 0.08164729285680945, 0.08164729285680945),
1036
- new Grad4(0.8828161875373585, -0.4553054119602712, -0.08164729285680945, -0.08164729285680945),
1037
- new Grad4(0.7504883828755602, -0.5029860367700724, -0.15296486218853164, 0.4004672082940195),
1038
- new Grad4(0.7504883828755602, -0.5029860367700724, 0.4004672082940195, -0.15296486218853164),
1039
- new Grad4(0.6740059517812944, -0.5794684678643381, 0.3239847771997537, 0.3239847771997537),
1040
- new Grad4(0.5794684678643381, -0.3239847771997537, -0.6740059517812944, -0.3239847771997537),
1041
- new Grad4(0.5029860367700724, -0.4004672082940195, -0.7504883828755602, 0.15296486218853164),
1042
- new Grad4(0.5029860367700724, 0.15296486218853164, -0.7504883828755602, -0.4004672082940195),
1043
- new Grad4(0.4553054119602712, 0.08164729285680945, -0.8828161875373585, 0.08164729285680945),
1044
- new Grad4(0.8828161875373585, -0.08164729285680945, -0.4553054119602712, -0.08164729285680945),
1045
- new Grad4(0.7504883828755602, -0.15296486218853164, -0.5029860367700724, 0.4004672082940195),
1046
- new Grad4(0.7504883828755602, 0.4004672082940195, -0.5029860367700724, -0.15296486218853164),
1047
- new Grad4(0.6740059517812944, 0.3239847771997537, -0.5794684678643381, 0.3239847771997537),
1048
- new Grad4(0.5794684678643381, -0.3239847771997537, -0.3239847771997537, -0.6740059517812944),
1049
- new Grad4(0.5029860367700724, -0.4004672082940195, 0.15296486218853164, -0.7504883828755602),
1050
- new Grad4(0.5029860367700724, 0.15296486218853164, -0.4004672082940195, -0.7504883828755602),
1051
- new Grad4(0.4553054119602712, 0.08164729285680945, 0.08164729285680945, -0.8828161875373585),
1052
- new Grad4(0.8828161875373585, -0.08164729285680945, -0.08164729285680945, -0.4553054119602712),
1053
- new Grad4(0.7504883828755602, -0.15296486218853164, 0.4004672082940195, -0.5029860367700724),
1054
- new Grad4(0.7504883828755602, 0.4004672082940195, -0.15296486218853164, -0.5029860367700724),
1055
- new Grad4(0.6740059517812944, 0.3239847771997537, 0.3239847771997537, -0.5794684678643381),
1056
- new Grad4(0.03381941603233842, 0.03381941603233842, 0.03381941603233842, 0.9982828964265062),
1057
- new Grad4(-0.044802370851755174, -0.044802370851755174, 0.508629699630796, 0.8586508742123365),
1058
- new Grad4(-0.044802370851755174, 0.508629699630796, -0.044802370851755174, 0.8586508742123365),
1059
- new Grad4(-0.12128480194602098, 0.4321472685365301, 0.4321472685365301, 0.7821684431180708),
1060
- new Grad4(0.508629699630796, -0.044802370851755174, -0.044802370851755174, 0.8586508742123365),
1061
- new Grad4(0.4321472685365301, -0.12128480194602098, 0.4321472685365301, 0.7821684431180708),
1062
- new Grad4(0.4321472685365301, 0.4321472685365301, -0.12128480194602098, 0.7821684431180708),
1063
- new Grad4(0.37968289875261624, 0.37968289875261624, 0.37968289875261624, 0.753341017856078),
1064
- new Grad4(0.03381941603233842, 0.03381941603233842, 0.9982828964265062, 0.03381941603233842),
1065
- new Grad4(-0.044802370851755174, 0.044802370851755174, 0.8586508742123365, 0.508629699630796),
1066
- new Grad4(-0.044802370851755174, 0.508629699630796, 0.8586508742123365, -0.044802370851755174),
1067
- new Grad4(-0.12128480194602098, 0.4321472685365301, 0.7821684431180708, 0.4321472685365301),
1068
- new Grad4(0.508629699630796, -0.044802370851755174, 0.8586508742123365, -0.044802370851755174),
1069
- new Grad4(0.4321472685365301, -0.12128480194602098, 0.7821684431180708, 0.4321472685365301),
1070
- new Grad4(0.4321472685365301, 0.4321472685365301, 0.7821684431180708, -0.12128480194602098),
1071
- new Grad4(0.37968289875261624, 0.37968289875261624, 0.753341017856078, 0.37968289875261624),
1072
- new Grad4(0.03381941603233842, 0.9982828964265062, 0.03381941603233842, 0.03381941603233842),
1073
- new Grad4(-0.044802370851755174, 0.8586508742123365, -0.044802370851755174, 0.508629699630796),
1074
- new Grad4(-0.044802370851755174, 0.8586508742123365, 0.508629699630796, -0.044802370851755174),
1075
- new Grad4(-0.12128480194602098, 0.7821684431180708, 0.4321472685365301, 0.4321472685365301),
1076
- new Grad4(0.508629699630796, 0.8586508742123365, -0.044802370851755174, -0.044802370851755174),
1077
- new Grad4(0.4321472685365301, 0.7821684431180708, -0.12128480194602098, 0.4321472685365301),
1078
- new Grad4(0.4321472685365301, 0.7821684431180708, 0.4321472685365301, -0.12128480194602098),
1079
- new Grad4(0.37968289875261624, 0.753341017856078, 0.37968289875261624, 0.37968289875261624),
1080
- new Grad4(0.9982828964265062, 0.03381941603233842, 0.03381941603233842, 0.03381941603233842),
1081
- new Grad4(0.8586508742123365, -0.044802370851755174, -0.044802370851755174, 0.508629699630796),
1082
- new Grad4(0.8586508742123365, -0.044802370851755174, 0.508629699630796, -0.044802370851755174),
1083
- new Grad4(0.7821684431180708, -0.12128480194602098, 0.4321472685365301, 0.4321472685365301),
1084
- new Grad4(0.8586508742123365, 0.508629699630796, -0.044802370851755174, -0.044802370851755174),
1085
- new Grad4(0.7821684431180708, 0.4321472685365301, -0.12128480194602098, 0.4321472685365301),
1086
- new Grad4(0.7821684431180708, 0.4321472685365301, 0.4321472685365301, -0.12128480194602098),
1087
- new Grad4(0.753341017856078, 0.37968289875261624, 0.37968289875261624, 0.37968289875261624)
1088
- };
1089
- for (Grad4 grad41 : grad4) {
1090
- grad41.dx /= N4;
1091
- grad41.dy /= N4;
1092
- grad41.dz /= N4;
1093
- grad41.dw /= N4;
1094
- }
1095
- for (int i = 0; i < PSIZE; i++) {
1096
- GRADIENTS_4D[i] = grad4[i % grad4.length];
1097
- }
1098
- }
1099
- }