/* Tables for 4D noise generation * Created by Geoff Wyvill December 1998 * These tables enable the calculation of Pseudo Random numbers on * the fly for points in a skewed 4D closely packed grid * The software for creating these tables is not yet public. * These tables work! The noise space is a 500 unit hypercube. */ #define TABLESIZE 148 static unsigned int cubelength = 125000000, layerlength = 250000, rowlength = 500; static pivot access[] = { {{2.500000, 2.500000, 2.500000, 1.500000}, 3279704869, 1079814685}, {{3.000000, 3.000000, 3.000000, 2.000000}, 3233871397, 82344413}, {{3.500000, 3.500000, 3.500000, 2.500000}, 2832898341, 2979695005}, {{2.500000, 2.500000, 3.500000, 1.500000}, 749437669, 1654676173}, {{3.000000, 3.000000, 4.000000, 2.000000}, 3048629733, 2742483597}, {{3.500000, 3.500000, 4.500000, 2.500000}, 3713419493, 3525565005}, {{2.500000, 2.500000, 4.500000, 1.500000}, 2452456101, 4058468221}, {{3.000000, 3.000000, 5.000000, 2.000000}, 3836650917, 4133797693}, {{2.500000, 3.500000, 2.500000, 1.500000}, 3797183061, 1980195673}, {{3.000000, 4.000000, 3.000000, 2.000000}, 746675541, 3003340569}, {{3.500000, 4.500000, 3.500000, 2.500000}, 1706250325, 1973521113}, {{2.000000, 3.000000, 3.000000, 1.000000}, 1189317397, 1106144585}, {{2.500000, 3.500000, 3.500000, 1.500000}, 2894970389, 609087753}, {{3.000000, 4.000000, 4.000000, 2.000000}, 2516381973, 3611276489}, {{3.500000, 4.500000, 4.500000, 2.500000}, 103883797, 579057801}, {{2.000000, 3.000000, 4.000000, 1.000000}, 543715029, 3794808569}, {{2.500000, 3.500000, 4.500000, 1.500000}, 3359957461, 661750457}, {{3.000000, 4.000000, 5.000000, 2.000000}, 463885525, 1140135545}, {{2.500000, 4.500000, 2.500000, 1.500000}, 3415455365, 3793107669}, {{3.000000, 5.000000, 3.000000, 2.000000}, 3585866117, 4171109013}, {{2.000000, 4.000000, 3.000000, 1.000000}, 2736876357, 3902074309}, {{2.500000, 4.500000, 3.500000, 1.500000}, 4182961733, 2705282437}, {{3.000000, 5.000000, 4.000000, 2.000000}, 276394309, 2604137797}, {{2.000000, 4.000000, 4.000000, 1.000000}, 711668485, 727448693}, {{2.500000, 4.500000, 4.500000, 1.500000}, 3381327365, 4288885813}, {{3.000000, 5.000000, 5.000000, 2.000000}, 4116691205, 2565385205}, {{3.500000, 2.500000, 2.500000, 1.500000}, 1285747369, 2871563314}, {{4.000000, 3.000000, 3.000000, 2.000000}, 4085035433, 3923220210}, {{4.500000, 3.500000, 3.500000, 2.500000}, 879718569, 57792946}, {{3.000000, 2.000000, 3.000000, 1.000000}, 697882217, 2502137314}, {{3.500000, 2.500000, 3.500000, 1.500000}, 1235539305, 4017383586}, {{4.000000, 3.000000, 4.000000, 2.000000}, 730453097, 1801485154}, {{4.500000, 3.500000, 4.500000, 2.500000}, 3729249129, 799526434}, {{3.000000, 2.000000, 4.000000, 1.000000}, 197429545, 1886613074}, {{3.500000, 2.500000, 4.500000, 1.500000}, 1703659561, 3969732882}, {{4.000000, 3.000000, 5.000000, 2.000000}, 2280392489, 3151131602}, {{3.000000, 3.000000, 2.000000, 1.000000}, 2999759001, 1399883486}, {{3.500000, 3.500000, 2.500000, 1.500000}, 3497394073, 3358571934}, {{4.000000, 4.000000, 3.000000, 2.000000}, 1193823897, 935736414}, {{4.500000, 4.500000, 3.500000, 2.500000}, 1977851289, 3975408414}, {{2.500000, 2.500000, 2.500000, 0.500000}, 902379609, 1779434894}, {{3.000000, 3.000000, 3.000000, 1.000000}, 1470154585, 3548122190}, {{3.500000, 3.500000, 3.500000, 1.500000}, 1581340249, 728716046}, {{4.000000, 4.000000, 4.000000, 2.000000}, 3903513945, 2359941582}, {{4.500000, 4.500000, 4.500000, 2.500000}, 2514318425, 1374396558}, {{2.500000, 2.500000, 3.500000, 0.500000}, 1683103513, 816926462}, {{3.000000, 3.000000, 4.000000, 1.000000}, 2597383705, 372073918}, {{3.500000, 3.500000, 4.500000, 1.500000}, 2966994201, 2090908798}, {{4.000000, 4.000000, 5.000000, 2.000000}, 2238286873, 2395689790}, {{2.500000, 2.500000, 4.500000, 0.500000}, 2954040793, 2925227118}, {{3.000000, 3.000000, 5.000000, 1.000000}, 2779325657, 1345557294}, {{3.500000, 3.500000, 5.500000, 1.500000}, 2240295897, 2574449134}, {{3.000000, 4.000000, 2.000000, 1.000000}, 1688348297, 3521298314}, {{3.500000, 4.500000, 2.500000, 1.500000}, 304285065, 3646696010}, {{4.000000, 5.000000, 3.000000, 2.000000}, 261940361, 3784889610}, {{2.500000, 3.500000, 2.500000, 0.500000}, 1816613449, 189348666}, {{3.000000, 4.000000, 3.000000, 1.000000}, 1458729289, 570062330}, {{3.500000, 4.500000, 3.500000, 1.500000}, 2169933897, 1511977146}, {{4.000000, 5.000000, 4.000000, 2.000000}, 443789129, 3262557050}, {{2.500000, 3.500000, 3.500000, 0.500000}, 2388094217, 2506651050}, {{3.000000, 4.000000, 4.000000, 1.000000}, 3465923593, 1239466090}, {{3.500000, 4.500000, 4.500000, 1.500000}, 1028467465, 2470202154}, {{4.000000, 5.000000, 5.000000, 2.000000}, 1232964105, 2419791338}, {{2.500000, 3.500000, 4.500000, 0.500000}, 685152201, 4161356826}, {{3.000000, 4.000000, 5.000000, 1.000000}, 3390584521, 1876205274}, {{3.500000, 4.500000, 5.500000, 1.500000}, 2559759817, 1140013466}, {{2.500000, 4.500000, 2.500000, 0.500000}, 2267288889, 87805990}, {{3.000000, 5.000000, 3.000000, 1.000000}, 2288108601, 3107258086}, {{3.500000, 5.500000, 3.500000, 1.500000}, 1028158265, 2899144102}, {{2.500000, 4.500000, 3.500000, 0.500000}, 1604199417, 4226640790}, {{3.000000, 5.000000, 4.000000, 1.000000}, 43717369, 1819585110}, {{3.500000, 5.500000, 4.500000, 1.500000}, 4227924473, 3775605014}, {{2.500000, 4.500000, 4.500000, 0.500000}, 2966307513, 3115145990}, {{3.000000, 5.000000, 5.000000, 1.000000}, 3522851257, 4253985222}, {{4.500000, 2.500000, 2.500000, 1.500000}, 2166106365, 1448674955}, {{5.000000, 3.000000, 3.000000, 2.000000}, 1092924413, 2226493515}, {{4.000000, 2.000000, 3.000000, 1.000000}, 3333509053, 2338627579}, {{4.500000, 2.500000, 3.500000, 1.500000}, 4179696317, 134300091}, {{5.000000, 3.000000, 4.000000, 2.000000}, 2038293949, 3233948539}, {{4.000000, 2.000000, 4.000000, 1.000000}, 2787004797, 2970726187}, {{4.500000, 2.500000, 4.500000, 1.500000}, 2471648381, 1549705451}, {{5.000000, 3.000000, 5.000000, 2.000000}, 875784061, 3221213867}, {{4.000000, 3.000000, 2.000000, 1.000000}, 2628238253, 2359186471}, {{4.500000, 3.500000, 2.500000, 1.500000}, 2959677101, 2932189671}, {{5.000000, 4.000000, 3.000000, 2.000000}, 2668065197, 3598532519}, {{3.500000, 2.500000, 2.500000, 0.500000}, 2437731949, 3046362775}, {{4.000000, 3.000000, 3.000000, 1.000000}, 2913038701, 2571252823}, {{4.500000, 3.500000, 3.500000, 1.500000}, 2475887725, 904976919}, {{5.000000, 4.000000, 4.000000, 2.000000}, 773957485, 358596567}, {{3.500000, 2.500000, 3.500000, 0.500000}, 2658507821, 1684619975}, {{4.000000, 3.000000, 4.000000, 1.000000}, 3630855981, 3089823879}, {{4.500000, 3.500000, 4.500000, 1.500000}, 3317453357, 1444736583}, {{5.000000, 4.000000, 5.000000, 2.000000}, 2439720237, 402596871}, {{3.500000, 2.500000, 4.500000, 0.500000}, 1492759021, 1644337911}, {{4.000000, 3.000000, 5.000000, 1.000000}, 968805613, 93561015}, {{4.500000, 3.500000, 5.500000, 1.500000}, 127985645, 679798391}, {{4.000000, 4.000000, 2.000000, 1.000000}, 1868588637, 351018947}, {{4.500000, 4.500000, 2.500000, 1.500000}, 1703055709, 1376795011}, {{5.000000, 5.000000, 3.000000, 2.000000}, 2519841885, 3735065411}, {{3.500000, 3.500000, 2.500000, 0.500000}, 3265230109, 3304061747}, {{4.000000, 4.000000, 3.000000, 1.000000}, 1568727069, 3328320755}, {{4.500000, 4.500000, 3.500000, 1.500000}, 3585035037, 464555699}, {{5.000000, 5.000000, 4.000000, 2.000000}, 3861558813, 3533387891}, {{3.000000, 3.000000, 3.000000, 0.000000}, 2816824285, 805837475}, {{3.500000, 3.500000, 3.500000, 0.500000}, 2436234973, 3559150691}, {{4.000000, 4.000000, 4.000000, 1.000000}, 3398674909, 3565997603}, {{4.500000, 4.500000, 4.500000, 1.500000}, 1325290717, 1325500387}, {{5.000000, 5.000000, 5.000000, 2.000000}, 427163613, 2705490339}, {{3.000000, 3.000000, 4.000000, 0.000000}, 3679317405, 171821011}, {{3.500000, 3.500000, 4.500000, 0.500000}, 2206914717, 3374076307}, {{4.000000, 4.000000, 5.000000, 1.000000}, 4187276189, 511122259}, {{4.500000, 4.500000, 5.500000, 1.500000}, 2020322973, 2014192915}, {{3.500000, 4.500000, 2.500000, 0.500000}, 2876707021, 3810779151}, {{4.000000, 5.000000, 3.000000, 1.000000}, 3513797581, 3555429839}, {{4.500000, 5.500000, 3.500000, 1.500000}, 359040717, 1739291535}, {{3.000000, 4.000000, 3.000000, 0.000000}, 2694357901, 3534327935}, {{3.500000, 4.500000, 3.500000, 0.500000}, 896343693, 1228033599}, {{4.000000, 5.000000, 4.000000, 1.000000}, 3472791949, 3961736191}, {{4.500000, 5.500000, 4.500000, 1.500000}, 944575629, 490506687}, {{3.000000, 4.000000, 4.000000, 0.000000}, 469221709, 3748270767}, {{3.500000, 4.500000, 4.500000, 0.500000}, 1171553357, 2435326063}, {{4.000000, 5.000000, 5.000000, 1.000000}, 908998477, 780037679}, {{4.500000, 2.500000, 2.500000, 0.500000}, 2935324817, 2236143988}, {{5.000000, 3.000000, 3.000000, 1.000000}, 2210240401, 3576228404}, {{5.500000, 3.500000, 3.500000, 1.500000}, 1913040529, 1964391156}, {{4.500000, 2.500000, 3.500000, 0.500000}, 1370190161, 3102484324}, {{5.000000, 3.000000, 4.000000, 1.000000}, 3416311889, 613140516}, {{5.500000, 3.500000, 4.500000, 1.500000}, 3285655377, 791193828}, {{4.500000, 2.500000, 4.500000, 0.500000}, 537457169, 1775085908}, {{5.000000, 3.000000, 5.000000, 1.000000}, 3860564241, 320395796}, {{4.500000, 3.500000, 2.500000, 0.500000}, 3296762625, 91579840}, {{5.000000, 4.000000, 3.000000, 1.000000}, 1714405889, 2886535808}, {{5.500000, 4.500000, 3.500000, 1.500000}, 1959782657, 37613376}, {{4.000000, 3.000000, 3.000000, 0.000000}, 2187901121, 1391273968}, {{4.500000, 3.500000, 3.500000, 0.500000}, 2552242113, 2675580080}, {{5.000000, 4.000000, 4.000000, 1.000000}, 3699934913, 2597343600}, {{5.500000, 4.500000, 4.500000, 1.500000}, 1185017281, 1840236080}, {{4.000000, 3.000000, 4.000000, 0.000000}, 239439233, 69747424}, {{4.500000, 3.500000, 4.500000, 0.500000}, 3185980545, 4138715040}, {{5.000000, 4.000000, 5.000000, 1.000000}, 2767707009, 3824192608}, {{4.500000, 4.500000, 2.500000, 0.500000}, 342890097, 3035502412}, {{5.000000, 5.000000, 3.000000, 1.000000}, 2681032049, 3932819468}, {{4.000000, 4.000000, 3.000000, 0.000000}, 1732540465, 2413878908}, {{4.500000, 4.500000, 3.500000, 0.500000}, 755363633, 2199201596}, {{5.000000, 5.000000, 4.000000, 1.000000}, 3387450929, 2329849852}, {{4.000000, 4.000000, 4.000000, 0.000000}, 1733992689, 970330732}, {{4.500000, 4.500000, 4.500000, 0.500000}, 1792104433, 4006865708}, {{5.000000, 5.000000, 5.000000, 1.000000}, 1646857969, 2371290092} };