/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.mahout.math.jet.random.engine; import org.apache.mahout.math.MahoutTestCase; import org.junit.Test; import java.util.Date; /** * Tests the Mersenne Twister against the reference implementation 991029/mt19937-2.c which can be * found at * <p/> * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/C-LANG/991029/mt19937-2.c * <p/> * That implementation isn't exactly what our random number generator package will produce because * of two things: <ul> <li> The conversion to double is a bit different. Ours uses nextLong, the * twister reference uses nextInt() which gives fewer sig figs. <li> The seed initialization which * was modified in Colt at some point. Rather than argue with the new implementation, this test * uses a legacy method to initialize the PRNG state. <ul> */ public final class MersenneTwisterTest extends MahoutTestCase { /** * Convert an unsigned int stored in a long to a double in a fashion compatible with the C * reference implementation * * @param y The long value to convert * @return A double in the range [0..1) */ private static double toDouble(long y) { return (double) (y & 0xffffffffL) * 2.3283064365386963e-10; } @Test public void test10001() { MersenneTwister r = new MersenneTwister(); r.setReferenceSeed(4357); // compares results against 1000 values from the reference implementation in C int i = 0; for (long x : reference1) { int y = r.nextInt(); assertEquals("t-ref-int-" + i, x, y); i++; } r.setReferenceSeed(4357); i = 0; for (Double x : ref1) { assertEquals("t-ref-double-" + i, x, toDouble(r.nextInt()), 1.0e-7); i++; } } @Test public void testRegression() { RandomEngine r = new MersenneTwister(42); int i = 0; for (double x : reference3) { assertEquals("t-regression-"+i, x, r.nextDouble(), 1.0e-7); i++; } } @Test public void testDateConstructor() { RandomEngine r1 = new MersenneTwister(1275264362); RandomEngine r2 = new MersenneTwister(new Date(1275264362)); for (int i = 0; i < 100; i++) { assertEquals("date-"+i, r1.nextInt(), r2.nextInt()); } } // output of first 1000 values of nextInt() as determined by a slight modification of // the reference C implementation private final long[] reference1 = { -1427748157, 1585203162, -1181843167, -1341066457, -1831172428, -812701500, 1164297043, -696771727, 589972756, -182733429, 767115311, -201891849, 1322433849, -937881972, -994918828, -645502951, -618362664, 1475054104, -1693033057, -874162432, -1802576116, 28597038, 1901037238, 1209433535, -714649522, -1806669844, 79873538, -986483224, -1381070953, -128771275, 1930853421, -981423403, -1691237282, -1467414215, 1952080899, 1405101208, 1959413290, -2072970131, -184835146, 1025637693, -624744829, -364164339, -1713958958, 1350592177, -387423596, -280265689, 935323183, 1742076441, -1111952306, -519637647, -1624564711, 631538770, -946857884, -1419824656, 1153190187, 1034841106, -79535765, -925821475, -1850999675, 489641649, 1500338112, -540983840, 714552875, 1260890119, -1342298899, -957774496, 555421782, 74804828, 1151768793, 1410928776, 1120209439, -2066769033, -237465635, -1180052315, -1750907701, -762815280, -2007402377, 2032846052, 1496843742, -961876751, 1817300007, 250812909, 1159923179, 685307794, -753202492, 461984834, -1147951877, -923915622, 740493100, 1639766659, 890836426, 1816610558, 740465142, 185885280, -35093869, -336704055, -29526693, 921638366, -140388124, 805230647, -1280559346, 1805221957, 561367725, -1589170300, 1548190021, -1783658974, 1037370857, -826584078, -2031446834, 100585698, 1357493989, -680658300, 171284736, -2012746585, -771924827, -1946140299, 107252578, -18732539, -827495828, 226242558, 1135756939, 1172828762, 1603997125, -1903426140, -1142976832, 1103261409, -1140155964, 1113077002, -758341955, -1342546593, 1239175044, -1726279891, -1447125076, -996227715, -529145016, 1818781797, 1788591806, 1276077776, 949399679, 539881640, -1779593820, -1016654008, -2099702785, -1154248338, -2049180834, -322038658, 927276666, 511152533, -1508946065, -405678848, 1460095448, -813645541, -1649241752, -1737367565, -1286613991, -1956797971, -579180754, -1967302698, 1670522570, 398515741, -382719009, 1871479044, 819271481, 1603628159, -2051995122, -1088019581, -1300651034, -815599548, -1866550794, -1289775408, 596767713, -18581025, 629871933, 1632138881, 2115083989, 801211500, -467095127, 1960552366, 1795052222, -1315487384, 87338528, -1145722701, 643926064, -777924694, 2067922190, -1494259262, 196411345, 1750850708, 1469706228, -1383121853, 1988965279, -1494611845, -1489487232, -2102956279, -620060911, -1613254841, -67574825, -1566118070, -965262195, 1906618821, -1152667674, 1154270206, -131272675, 1798769436, -281117605, 2028970854, -2078898651, 1849210321, -187737964, -1779714343, -772687562, 1983720317, 2024886240, -757295103, -364749686, 72039252, 1780891549, -766599792, 251685934, 1188909432, 1947153461, 370404364, -480969831, 162450456, -477729904, -1270154148, 114391043, -1104216657, -1557949265, 1006449521, -648240330, 287956073, 1149908372, 487404965, 2110874122, -125178374, -1586846588, 1662089132, 509477256, 1099251950, -1355413830, -178051486, -2057816328, -1762332032, 1924974342, -2019883858, 2001527850, 85819681, 1193976695, -1433625679, 1014135054, 996772449, -130739282, 1090591843, 2130489362, 769151670, 995393661, 930169499, 53462752, 966539569, 1906551696, -833969969, -413728139, -2018807943, 119179965, 1765229953, -2026794687, 1085009887, -1619195910, 458208333, 1454994770, 1017850103, -1645532781, -1295503958, 388687986, -879677508, -1271340169, 1525959519, -1842566946, 2054320272, -663278028, -2045782330, 2108263178, -1728324110, 614451766, 1697197121, 1906804322, 1965059615, -609843883, 1808965526, -956124083, -530429769, -390790033, 654414333, -925784101, 172707682, 1789534658, 99114865, 197192909, 1307666933, -1019527615, -1132743980, -2135742864, -1863142718, 479324619, 1925592859, -1667087835, 792010626, 472668456, -117229595, -1695684170, -860776396, 1904530818, 1875549291, -1512584973, 1854703958, 335047755, 782741003, -945192623, 2070491163, 1444691247, -161427997, -1273883797, -1436594303, -45273895, -1179475147, -1469181637, -1070813498, -143531925, -8674298, 1256416790, 1517863100, 745532812, -1537840807, -281538946, -1871419122, -2106555353, -465504136, 1559482295, 745669519, -854995128, 161134094, -590261774, 2092939826, -567201176, 1109991787, -728753805, 1293706699, 1909349236, -1874770772, -1990220607, -659823429, -743007503, -6348644, 669034647, -553855348, -2095051428, -2126855025, 1697649112, 1070896705, -1504289523, 929567277, -476701944, 1552321291, 1984195592, 2012174866, -981280665, -1107700217, -551504005, -838950404, -594420119, 673536746, -613800459, 639979024, 908071910, 285351138, -814104229, -1568903254, -861750524, -115021904, -675957356, -1389846974, 1106151469, 2104819134, -858223142, -1779443430, -1923129246, 1019585697, -667014853, 875737047, 370873717, -1354073499, 685464258, 748098950, -497781789, 1051282146, -2012134278, 477323378, -242142488, -884198479, -1586803086, -384887197, 801512007, -1129707433, -1196045924, 202576730, -1238107410, -1121307603, 1703200672, 1431918718, 1548107888, -196076398, -269838779, 1676726643, -1109727040, 1377418328, 682127434, 229406958, 536272508, 1302848757, -2072324870, -893647687, 342519951, -803149926, 880356224, -2006463724, -1734780468, 904726294, -1392156102, -2055422122, 1380829270, 1525997083, 799156132, -430755091, 768044736, -1719451388, -594570907, 1384921240, 1784666717, 2072282702, -2021855225, 73034983, 1893910430, 554586922, 1002452453, 244890730, 1914712138, -1191824507, -194588306, 15082512, -156127661, 286473904, 28127927, -9249080, -1041617435, 848606688, 751913560, -1382303292, -29779765, -1007560893, -1222490607, 1465740219, 1119222960, 1706572418, 1637696965, 1301369982, 994855959, -1122712575, -1507911605, -257360398, 2001758001, -1226516195, 1913702326, 164846220, -908248841, -1934384520, 538955390, 1122472306, -2131179400, -474142027, 473138414, 403084459, 780682841, 1916392897, 2137309162, -1321836898, 1560974537, 383098889, -1471156037, 95656605, 1100898974, 2054803549, 1432869091, 39447374, -429164754, -2051585445, 326718209, -530310478, -439567291, -470318143, 1760031250, -404864950, 38307054, -1046092764, 997675099, 1302054089, 1134435193, -536378330, -438351386, -299093902, 1997896248, -1953476615, -155946522, -75641431, -1414340477, 1553845962, 739906589, -1626694751, 1218350904, 1726725379, -346060453, 1266205878, -1282094066, -2054418268, 377137844, 907277693, -1734159739, 211027090, 1865109379, 1680481889, -1288411097, 1195935070, 538932664, 781359924, 1623787727, 2139406835, 695091061, 1267298086, 644554442, -1617615690, 1079279370, -1749865717, 536974673, -885076301, 328220108, -466845841, -1322702066, -1655966850, 208138402, -974382512, -931090593, -2133184188, -1267198043, -1476603032, 1836513581, -1594878134, -583857690, -1587570764, -2042444461, 542106924, 290861120, 65506152, -98553653, 358020078, 911900450, -1492901891, -1106133249, 616484753, -118794916, -802153351, 795652043, 342823405, -443791797, -1817348094, 974180631, 2070155077, -1246351341, -799883912, 650122283, 14857981, 1511525369, 1296338035, 240671856, -126886561, -2133396802, 148980922, 962978395, 1307706563, -970011125, 1322718131, 1734073640, -1905434541, 382604108, 432552756, 311652177, 2123865787, -137050255, -1140600969, -1316759712, 1290868994, 2007821863, -1034107165, -1654418680, -890855147, 1612513188, -1236187897, -7333467, -1372147252, -1261951798, -783395381, 991947766, 643957286, -1858245905, -718349669, -1917970862, 1222099653, -619578703, 1992634707, -1512305261, 1200611853, 159589769, 679751733, -1133018403, 589403970, 1044672925, 1965277612, 1713774522, 1215426812, 1813238647, -1248133092, 1409105205, -1043888977, -762698605, -1678957447, 1386097548, 174492254, -316159836, -1473858659, 2107299989, -833690268, 491302117, 2132304916, -112677511, 2030842100, 926165801, 1843009221, 4893907, 1091318508, -1715991292, -865551137, -829964760, -247893586, -824303510, 489006494, 1589495825, -1807323926, 50052787, -110072294, 478354171, -212240106, -1311579972, -306748207, -1347854915, -1556993453, 650841551, 207036108, 469279577, -1611389253, -1277334795, 163011627, 1693305508, -390991392, -1271239405, -1328800623, 1330783281, 714904080, 487395952, -1100790740, 132096950, -822975875, -961687998, 964375359, 1852875757, -896777589, 1367148533, -1266600542, 1975064118, 1410547156, 930454876, 1797368724, 1024933376, -78619762, -1368171896, -1514005974, -1344795504, 254604891, -1833902950, -1193911864, -228510260, -2018919711, 2005729740, 702724217, 352362105, -262963916, -426257329, -1232517259, 1984810322, 1122228626, 1836441070, -1245806501, -789776028, 1416228722, -1283534029, -675996896, -1660586550, 521960665, 1258860577, -648003051, 482700194, 576607559, 1025672363, 1619715344, -1363125918, -1911294560, -126546834, -395156910, -1569812412, 1643576117, -181522341, 1695213625, 929397946, -164580871, -1016717391, 338698100, -1673405423, 760291850, 1827462673, -1340989859, -1492476436, 952114118, 1564374766, 1510012037, -1777737089, -1415712186, 1376858550, 545337582, 275466025, 1766675460, 841474537, -2015920460, 160777324, 1685578416, 97066962, 70420376, -1597258768, 1312050661, 277966306, -1782698970, -734927361, -587293556, 1802069091, -2080657689, -615003873, -1495278282, 2064212423, -1776297165, 1071037431, -1005864183, -1462724740, 626819162, -1473066947, -89564995, -1202424254, 1327800001, 2111287012, -937976900, 2106560895, 980585039, -1920505273, -321986311, 1815212590, -1360852458, -1827983614, -1647880750, 1917133448, 757801743, -1494540856, -832888837, 1864979383, -583359823, -1050492371, 1082752058, 1953813482, -722323323, 1845637828, 1693567413, 1911166886, 13616514, 1527215536, 944105697, -574011490, -1283841468, -635113261, -803797107, 1206734392, -1830776329, 259012728, 351640621, 348063345, 237157049, -1702230489, -822882825, 967215995, 1941684155, -961498118, -51144549, -1457068641, -2121321987, 2144297387, -209192573, -1555878233, 1721981340, 1029091741, -431252539, -1125424606, 1736267037, 1087293093, -553560177, -1291607021, -255814672, 965607200, 1494605756, -1594157835, 1862970278, 2060187203, -1658445282, -1998000848, 2138904618, 830770044, -1885127998, 946077889, 676163933, -1957194037, 1967578486, 1364110453, 1120981439, 1505148538, -1118074866, -506466807, -2073526847, -1417161351, 1848017526, 1060239654, -1313859409, 394732496, 775694702, -1829536644, 256035109, 672200319, -260601206, 652227015, 224664253, -1462432907, -1704215028, 1616461983, 474981047, 1729743343, 1033065486, -615149661, 1945677673, -152843588, -853261901, -671603644, -1406112499, -445972447, -1520498331, 733621242, 1559397411, 610848083, 1861857918, 290039215, 1969085557, -1345508317, -148246158, 1709209040, -1190325503, -1880289029, -592854369, 1922014713, -1288666211, -1737534601, 1953275956, -819604769, -854143275, 1879890923, -175971242, 524339283, -2046891972, 1608569809, 1946682979, 1598268490, -831293677, 456566908, 1513321122, 1918511241, -1289528135, 1218124360, -1680766564, 1479017575, -1789824800, -1160853575, 2091183380, -2062027073, 1740181808, -2092634913, 2146620821, 2123780007, -894876271, -1152629704, 1128001831, -639377490, -595026093, 871253103, 1532083500, 883298808, 2042462485, 1141767415, -989784431, -2048640156, 1481051047, -1827730611, 1053025675, 1128030915, 579308527, -200625939, -982376809, -1656203101, -70360337, 975347930, -1514279015, -1045859905, 1737859059, 562230366, -1187729158, 1630808317, -971015197, -1606723684, 1676966491, 1391319909, 1149056605, 160522031, 1888652620, 1204167962, -1695150667, -198350693, -2141516092, -2060503969, -2040859804, -1496108351, 1904589021, -1212687768, 618798780, -1132067082, 746972615, -142651982, -653590385, 347959902, 847266746, -851701254, -82388269, 2141521991, -1925233602, -242968079, -1860599362, -2020834628, -355708780, 365865295, 1762948411, -529670161, -10071373, 1178072377, 1164762067, -1990293332, -1693036209, 660951723, 324246673, 1237854749, 1390986182, -1171550610, -1065493866, 647145616, -2066410839, -810069615, -440596341, -580317728, 1924448690, 275933853, -1040838222, 1742363440, 1030650439 }; // the first 1000 values output by the reference implementation // data from http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/C-LANG/991029/mt19937-2.out private final double[] ref1 = { 0.66757648, 0.36908387, 0.72483069, 0.68775863, 0.57364694, 0.81077819, 0.27108403, 0.83777019, 0.13736374, 0.95745406, 0.17860795, 0.95299339, 0.30790312, 0.78163234, 0.76835241, 0.84970713, 0.85602622, 0.34343780, 0.60581002, 0.79646820, 0.58030504, 0.00665827, 0.44261972, 0.28159319, 0.83360769, 0.57935190, 0.01859701, 0.77031648, 0.67844436, 0.97001810, 0.44956184, 0.77149456, 0.60622814, 0.65834100, 0.45450425, 0.32715062, 0.45621146, 0.51734903, 0.95696471, 0.23879988, 0.85454026, 0.91521138, 0.60093783, 0.31445925, 0.90979591, 0.93474556, 0.21777190, 0.40560878, 0.74110343, 0.87901243, 0.62175155, 0.14704158, 0.77954247, 0.66942131, 0.26849801, 0.24094272, 0.98148164, 0.78444039, 0.56903055, 0.11400358, 0.34932469, 0.87404238, 0.16636981, 0.29357386, 0.68747168, 0.77700075, 0.12931921, 0.01741686, 0.26816707, 0.32850746, 0.26081908, 0.51879284, 0.94471072, 0.72524766, 0.59233503, 0.82239323, 0.53261521, 0.47330885, 0.34851109, 0.77604562, 0.42312313, 0.05839693, 0.27006566, 0.15956065, 0.82463138, 0.10756423, 0.73272163, 0.78488413, 0.17240949, 0.38178793, 0.20741402, 0.42296261, 0.17240298, 0.04327979, 0.99182907, 0.92160498, 0.99312528, 0.21458565, 0.96731334, 0.18748237, 0.70184654, 0.42031099, 0.13070361, 0.62999246, 0.36046608, 0.58470953, 0.24153172, 0.80754590, 0.52701693, 0.02341943, 0.31606620, 0.84152189, 0.03988034, 0.53137092, 0.82027225, 0.54687890, 0.02497169, 0.99563849, 0.80733361, 0.05267620, 0.26443902, 0.27307048, 0.37345968, 0.55682407, 0.73387997, 0.25687306, 0.73453675, 0.25915843, 0.82343475, 0.68741401, 0.28851792, 0.59806914, 0.66306494, 0.76804766, 0.87679883, 0.42346814, 0.41643898, 0.29711001, 0.22104934, 0.12570099, 0.58565603, 0.76329179, 0.51112485, 0.73125562, 0.52288791, 0.92501953, 0.21589842, 0.11901197, 0.64867112, 0.90554553, 0.33995496, 0.81055838, 0.61600598, 0.59548759, 0.70043684, 0.54439747, 0.86514897, 0.54195165, 0.38894885, 0.09278668, 0.91089129, 0.43573767, 0.19075151, 0.37337378, 0.52223265, 0.74667570, 0.69716858, 0.81010343, 0.56540978, 0.69970076, 0.13894581, 0.99567377, 0.14665349, 0.38001195, 0.49245637, 0.18654659, 0.89124594, 0.45647667, 0.41794316, 0.69371423, 0.02033509, 0.73324065, 0.14992572, 0.81887529, 0.48147565, 0.65209065, 0.04573058, 0.40765170, 0.34219265, 0.67796685, 0.46309207, 0.65200856, 0.65320173, 0.51036734, 0.85563082, 0.62438484, 0.98426651, 0.63535972, 0.77525738, 0.44391929, 0.73162364, 0.26874948, 0.96943570, 0.41880865, 0.93454721, 0.47240659, 0.51596869, 0.43055283, 0.95628885, 0.58562796, 0.82009466, 0.46187088, 0.47145557, 0.82367849, 0.91507510, 0.01677295, 0.41464613, 0.82151208, 0.05860020, 0.27681455, 0.45335699, 0.08624149, 0.88801548, 0.03782344, 0.88876984, 0.70426919, 0.02663374, 0.74290453, 0.63726167, 0.23433229, 0.84906979, 0.06704500, 0.26773391, 0.11348281, 0.49147618, 0.97085464, 0.63053349, 0.38698528, 0.11862192, 0.25593954, 0.68441813, 0.95854416, 0.52087730, 0.58967510, 0.44819302, 0.52970914, 0.46601702, 0.01998145, 0.27799436, 0.66620801, 0.23612172, 0.23207917, 0.96955989, 0.25392320, 0.49604321, 0.17908208, 0.23175815, 0.21657196, 0.01244777, 0.22504003, 0.44390366, 0.80582624, 0.90367141, 0.52995965, 0.02774875, 0.41099963, 0.52810009, 0.25262355, 0.62300157, 0.10668494, 0.33876737, 0.23698669, 0.61686954, 0.69836698, 0.09049847, 0.79518412, 0.70399305, 0.35529014, 0.57099395, 0.47830871, 0.84556855, 0.52367918, 0.49086827, 0.59759319, 0.14306320, 0.39515950, 0.44396248, 0.45752609, 0.85800966, 0.42118261, 0.77738501, 0.87649970, 0.90901211, 0.15236771, 0.78444909, 0.04021164, 0.41665851, 0.02307698, 0.04591255, 0.30446493, 0.76262273, 0.73626249, 0.50273361, 0.56620328, 0.11160146, 0.44833702, 0.61185087, 0.18440434, 0.11005170, 0.97270536, 0.60519276, 0.79958488, 0.44343314, 0.43668535, 0.64782387, 0.43183192, 0.07800938, 0.18224609, 0.77993019, 0.48207379, 0.33636839, 0.96241462, 0.70340082, 0.66551682, 0.98945885, 0.72538204, 0.65792949, 0.75068180, 0.96658137, 0.99798036, 0.29253233, 0.35340504, 0.17358288, 0.64194354, 0.93444911, 0.56427628, 0.50952936, 0.89161637, 0.36309527, 0.17361471, 0.80093093, 0.03751695, 0.86256897, 0.48730053, 0.86793819, 0.25844010, 0.83032378, 0.30121456, 0.44455501, 0.56349591, 0.53661566, 0.84637289, 0.82700508, 0.99852184, 0.15577177, 0.87104550, 0.51220783, 0.50480298, 0.39526474, 0.24933757, 0.64975530, 0.21643175, 0.88900918, 0.36142797, 0.46198154, 0.46849597, 0.77152779, 0.74209345, 0.87159297, 0.80466664, 0.86160078, 0.15681999, 0.85708844, 0.14900673, 0.21142697, 0.06643849, 0.81045159, 0.63471125, 0.79935807, 0.97321938, 0.84261641, 0.67640103, 0.25754596, 0.49006639, 0.80017935, 0.58569104, 0.55223658, 0.23739079, 0.84469850, 0.20389842, 0.08635077, 0.68473020, 0.15959708, 0.17418036, 0.88410115, 0.24477070, 0.53151348, 0.11113551, 0.94362181, 0.79413150, 0.63054362, 0.91038647, 0.18661656, 0.73696949, 0.72152386, 0.04716607, 0.71173065, 0.73892523, 0.39655731, 0.33339456, 0.36044696, 0.95434741, 0.93717326, 0.39039334, 0.74162154, 0.32070520, 0.15882017, 0.05341297, 0.12486067, 0.30334311, 0.51749927, 0.79193143, 0.07974914, 0.81300209, 0.20497391, 0.53283376, 0.59608995, 0.21064801, 0.67586340, 0.52143474, 0.32149937, 0.35529888, 0.18606804, 0.89970701, 0.17882435, 0.59965903, 0.86156567, 0.32245210, 0.41552510, 0.48249092, 0.52925015, 0.01700478, 0.44096038, 0.12912483, 0.23340165, 0.05701807, 0.44580366, 0.72250673, 0.95469388, 0.00351167, 0.96364870, 0.06669990, 0.00654904, 0.99784653, 0.75747954, 0.19758164, 0.17506852, 0.67815743, 0.99306636, 0.76540895, 0.71536673, 0.34126924, 0.26058940, 0.39734235, 0.38130604, 0.30299881, 0.23163295, 0.73859811, 0.64891197, 0.94007861, 0.46607060, 0.71442944, 0.44556854, 0.03838125, 0.78853184, 0.54961601, 0.12548533, 0.26134595, 0.50379613, 0.88960521, 0.11016112, 0.09385041, 0.18176689, 0.44619499, 0.49763107, 0.69223586, 0.36344271, 0.08919716, 0.65746979, 0.02227179, 0.25632302, 0.47842123, 0.33361583, 0.00918456, 0.90007729, 0.52232804, 0.07607001, 0.87652747, 0.89765526, 0.89049552, 0.40978921, 0.90573503, 0.00891906, 0.75643755, 0.23228934, 0.30315809, 0.26413128, 0.87511469, 0.89793836, 0.93036177, 0.46517147, 0.54517078, 0.96369087, 0.98238836, 0.67069820, 0.36178296, 0.17227293, 0.62125561, 0.28366943, 0.40203458, 0.91942652, 0.29481153, 0.70148921, 0.52166847, 0.08780925, 0.21124205, 0.59623447, 0.04913357, 0.43425462, 0.39126768, 0.70001841, 0.27845033, 0.12548004, 0.18192453, 0.37806754, 0.49811947, 0.16183850, 0.29506583, 0.15007203, 0.62336950, 0.25128931, 0.59257764, 0.12502416, 0.79392712, 0.07641970, 0.89130398, 0.69203443, 0.61444017, 0.04846100, 0.77313389, 0.78321358, 0.50332935, 0.70495746, 0.65620157, 0.42759664, 0.62866350, 0.86406004, 0.63036488, 0.52445634, 0.12621910, 0.06772138, 0.01525184, 0.97705369, 0.08335805, 0.21231837, 0.65240669, 0.74245828, 0.14353654, 0.97234090, 0.81323412, 0.18525218, 0.07981979, 0.89667167, 0.57686567, 0.22681910, 0.48199554, 0.70981122, 0.81376251, 0.15136839, 0.00345939, 0.35192942, 0.30182722, 0.05603578, 0.97045692, 0.50327985, 0.03468732, 0.22421088, 0.30447416, 0.77415169, 0.30796931, 0.40374548, 0.55635645, 0.08908196, 0.10071154, 0.07256218, 0.49450104, 0.96809050, 0.73443314, 0.69341799, 0.30055386, 0.46748246, 0.75922816, 0.61480063, 0.79258162, 0.37544248, 0.71217758, 0.99829254, 0.68052207, 0.70617895, 0.81760155, 0.23095584, 0.14993299, 0.56734341, 0.83274618, 0.55343761, 0.28454225, 0.85574309, 0.46394642, 0.64788899, 0.27953923, 0.03715739, 0.15826703, 0.73619860, 0.13723131, 0.24323187, 0.45757685, 0.39901923, 0.28298861, 0.42217752, 0.70939637, 0.32808287, 0.75695066, 0.82242039, 0.60908726, 0.32272598, 0.04062714, 0.92638830, 0.65684054, 0.49064401, 0.80589136, 0.11439019, 0.49646593, 0.97376522, 0.47284227, 0.21563978, 0.42910902, 0.00113945, 0.25409239, 0.60046464, 0.79847317, 0.80675877, 0.94228278, 0.80807688, 0.11385570, 0.37008334, 0.57919961, 0.01165382, 0.97437180, 0.11137551, 0.95058400, 0.69462399, 0.92857962, 0.68617807, 0.63748421, 0.15153586, 0.04820435, 0.10926267, 0.62481920, 0.70259732, 0.03795410, 0.39425341, 0.90896522, 0.70401651, 0.69061450, 0.30984713, 0.16645158, 0.11348071, 0.74370218, 0.03075622, 0.80838600, 0.77608956, 0.22453614, 0.43140626, 0.79120270, 0.31831407, 0.70509658, 0.45985545, 0.32841860, 0.21663841, 0.41848252, 0.23863590, 0.98169491, 0.68144766, 0.64749301, 0.68689040, 0.05927982, 0.57301120, 0.72202073, 0.94679581, 0.52993362, 0.46699535, 0.16361573, 0.08204070, 0.93877394, 0.90075423, 0.71303221, 0.46212466, 0.26128921, 0.42757976, 0.70993807, 0.81611594, 0.32974144, 0.70115395, 0.84260721, 0.61336456, 0.12152844, 0.29310132, 0.84912503, 0.11238740, 0.13425191, 0.23880796, 0.37711937, 0.68262252, 0.55499206, 0.97053602, 0.90799536, 0.63449957, 0.38267489, 0.95773604, 0.39469768, 0.21639232, 0.96168053, 0.76327704, 0.07885930, 0.61037994, 0.17701924, 0.42548931, 0.68777647, 0.65250575, 0.22168134, 0.36423438, 0.35157707, 0.58608833, 0.67037882, 0.32057486, 0.12697130, 0.06413693, 0.41133618, 0.19592106, 0.53063194, 0.03743389, 0.39245431, 0.02260016, 0.01639602, 0.62810921, 0.30548560, 0.06471907, 0.58493305, 0.82888639, 0.86326006, 0.41957691, 0.51555913, 0.85680825, 0.65185340, 0.48061191, 0.58642359, 0.24937033, 0.76580399, 0.65943286, 0.14594271, 0.65702487, 0.97914652, 0.72003879, 0.30915253, 0.49157231, 0.78161023, 0.49047193, 0.22831025, 0.55284752, 0.92503172, 0.42263712, 0.68315185, 0.57438940, 0.61632286, 0.44636741, 0.17643947, 0.65202509, 0.80607796, 0.43422435, 0.86417596, 0.75541319, 0.25209786, 0.45490765, 0.83182100, 0.42972104, 0.39431439, 0.44497822, 0.00317034, 0.35558258, 0.21981674, 0.86635254, 0.70108236, 0.85212617, 0.81285140, 0.28096475, 0.57373917, 0.06030610, 0.08187271, 0.08103981, 0.05521743, 0.60366858, 0.80840766, 0.22519752, 0.45208357, 0.77613377, 0.98809198, 0.66074977, 0.50609124, 0.49925814, 0.95129356, 0.63774387, 0.40093002, 0.23960409, 0.89959119, 0.73796666, 0.40425617, 0.25315515, 0.87111423, 0.69927431, 0.94043851, 0.22482295, 0.34799002, 0.62883121, 0.43375657, 0.47967471, 0.61386312, 0.53480418, 0.49800254, 0.19342872, 0.56108443, 0.22027592, 0.15743168, 0.54430525, 0.45811257, 0.31760671, 0.26099883, 0.35044470, 0.73967791, 0.88207901, 0.51721941, 0.67004141, 0.43027511, 0.24685628, 0.69409327, 0.09190582, 0.18060550, 0.57402781, 0.05961282, 0.15650883, 0.93932405, 0.15185844, 0.05230872, 0.65950080, 0.60320652, 0.37636188, 0.11059014, 0.40273726, 0.24052930, 0.85677431, 0.45301338, 0.96441333, 0.80133448, 0.84363009, 0.67261392, 0.89616395, 0.64598139, 0.17080951, 0.36307550, 0.14222415, 0.43349758, 0.06753002, 0.45846346, 0.68672443, 0.96548375, 0.39795624, 0.72285575, 0.56221110, 0.86196534, 0.44750392, 0.69995902, 0.59544870, 0.45478250, 0.80917089, 0.80112927, 0.43769621, 0.95902850, 0.12208225, 0.52342082, 0.37452434, 0.45324745, 0.37212588, 0.80644936, 0.10630277, 0.35234753, 0.44668821, 0.69975833, 0.28361668, 0.60866604, 0.34436061, 0.58327394, 0.72971771, 0.48689157, 0.51989691, 0.40516765, 0.51277047, 0.49979911, 0.49448107, 0.79164538, 0.73163248, 0.26263339, 0.85113333, 0.86145969, 0.20285442, 0.35671599, 0.20565903, 0.47554786, 0.26583844, 0.76954785, 0.52301379, 0.34483407, 0.57444831, 0.24517665, 0.26264016, 0.13488078, 0.95328813, 0.77127258, 0.61438517, 0.98361796, 0.22709089, 0.64742944, 0.75649177, 0.40462684, 0.13090446, 0.72346026, 0.37970215, 0.77391791, 0.62590549, 0.39044919, 0.32394191, 0.26753559, 0.03737445, 0.43973621, 0.28036720, 0.60531698, 0.95381788, 0.50138943, 0.52025153, 0.52482530, 0.65166013, 0.44344669, 0.71764913, 0.14407532, 0.73642009, 0.17391811, 0.96678625, 0.84782413, 0.08101573, 0.19726966, 0.80169785, 0.98081749, 0.49861194, 0.55174662, 0.94342959, 0.56679545, 0.52948777, 0.91718010, 0.08518465, 0.41046841, 0.87667656, 0.99765508, 0.27429135, 0.27119230, 0.53659872, 0.60580929, 0.15388982, 0.07549456, 0.28821052, 0.32386421, 0.72722712, 0.75192038, 0.15067533, 0.51887623, 0.81139097, 0.89741567, 0.86488425, 0.44807063, 0.06424586, 0.75766097, 0.40567560, 0.23996701 }; private final double[] reference3 = { 0.09575212, 0.03326592, 0.10697744, 0.37992924, 0.13844205, 0.07550350, 0.89109388, 0.50151205, 0.79222822, 0.41823034, 0.84440729, 0.66568635, 0.87830555, 0.17024311, 0.43956848, 0.15568711, 0.44433865, 0.15509045, 0.25706894, 0.54578702, 0.49590286, 0.22401731, 0.54676760, 0.01344236, 0.49878244, 0.11425735, 0.92811815, 0.33364944, 0.45523584, 0.30330454, 0.71281391, 0.76541035, 0.65384557, 0.36548962, 0.78606296, 0.23527360, 0.55992981, 0.30954199, 0.31097754, 0.45424875, 0.37274760, 0.27568572, 0.89592171, 0.66181069, 0.19410842, 0.26527840, 0.57097220, 0.50241738, 0.33047523, 0.15719302, 0.72335021, 0.48632592, 0.26988200, 0.02962598, 0.68539884, 0.41837634, 0.74918846, 0.29888093, 0.91695999, 0.44307476, 0.85652083, 0.86902892, 0.51888942, 0.04191434, 0.15804193, 0.82571235, 0.41822514, 0.77878083, 0.24677425, 0.93067399, 0.66147883, 0.08167767, 0.68635270, 0.21531198, 0.17917009, 0.61210917, 0.89142440, 0.20540484, 0.98484786, 0.64105697, 0.67740091, 0.69698981, 0.24651169, 0.74108039, 0.22530642, 0.93012240, 0.60056313, 0.48043165, 0.60459893, 0.89849029, 0.72360913, 0.44201254, 0.34065371, 0.86086940, 0.81661531, 0.82741425, 0.54029302, 0.11725746, 0.64111068, 0.78480954, 0.10389839, 0.25918715, 0.08772679, 0.04966821, 0.12496534, 0.33111983, 0.90714372, 0.68193514, 0.42431445, 0.83658259, 0.37504970, 0.14869862, 0.79012165, 0.10846471, 0.98522992, 0.47527037, 0.02974793, 0.35251748, 0.80962036, 0.61765703, 0.38585344, 0.48789858, 0.07826998, 0.28860830, 0.95594578, 0.70463541, 0.40793755, 0.54573732, 0.64536751, 0.00739575, 0.16901933, 0.34837234, 0.73592536, 0.32724020, 0.57088019, 0.28976575, 0.24089392, 0.84049551, 0.78418605, 0.68421081, 0.56295548, 0.22439076, 0.16466916, 0.57982696, 0.08512823, 0.34178794, 0.66295924, 0.18114724, 0.25777769, 0.51590296, 0.81920810, 0.01251322, 0.49352028, 0.39729409, 0.28260467, 0.66368229, 0.31167985, 0.05018547, 0.07948601, 0.00742122, 0.53983623, 0.04312077, 0.48228226, 0.03693601, 0.39157325, 0.35947770, 0.20659274, 0.42678597, 0.24304387, 0.95389365, 0.24411614, 0.52725440, 0.49916495, 0.28801917, 0.92581127, 0.13417299, 0.91819667, 0.66061804, 0.97479890, 0.88356344, 0.72971172, 0.91781935, 0.81123852, 0.66991017, 0.19069337, 0.33610088, 0.48529086, 0.97480851, 0.61725675, 0.23778267, 0.89281974, 0.46734440, 0.73223030, 0.63382758, 0.98261468, 0.31080283, 0.40987343, 0.88972044, 0.91491452, 0.73864976, 0.71977485, 0.22949882, 0.23827910, 0.75796538, 0.63373192, 0.77852707, 0.13147285, 0.39905918, 0.98074901, 0.67505513, 0.53726390, 0.29738812, 0.43486852, 0.37772844, 0.66651982, 0.59846935, 0.65808432, 0.75209822, 0.63925437, 0.55695771, 0.43820710, 0.61858674, 0.51274335, 0.47826917, 0.58277081, 0.57037206, 0.27480447, 0.21507891, 0.31928376, 0.24264734, 0.27603027, 0.30597543, 0.05130251, 0.16922754, 0.96421093, 0.31156402, 0.68282019, 0.68952485, 0.04260403, 0.55311981, 0.34666010, 0.02820792, 0.58097105, 0.03094771, 0.73916029, 0.96790360, 0.68735213, 0.29706159, 0.35237517, 0.32556654, 0.34507865, 0.71775189, 0.48004937, 0.08464617, 0.90295000, 0.89509077, 0.48900486, 0.85891582, 0.78559599, 0.70929274, 0.17588442, 0.98907009, 0.32978426, 0.78820522, 0.87447705, 0.33872695, 0.00621719, 0.14675062, 0.17750487, 0.59685984, 0.63547209, 0.00425963, 0.23090550, 0.96244983, 0.34157976, 0.11382939, 0.87948627, 0.31331161, 0.36878708, 0.00581891, 0.90011438, 0.48569161, 0.51841765, 0.77118893, 0.52467643, 0.39202666, 0.20858830, 0.87396695, 0.15565967, 0.43254322, 0.34562149, 0.86639746, 0.91036207, 0.02206924, 0.84579132, 0.54798554, 0.64647403, 0.82308719, 0.00250840, 0.71748825, 0.63908262, 0.79827802, 0.83448213, 0.22413254, 0.43744489, 0.20714656, 0.93100558, 0.61709875, 0.98877387, 0.68023638, 0.96291950, 0.64453665, 0.99467975, 0.32048655, 0.22497285, 0.21878946, 0.23361169, 0.63424833, 0.48893507, 0.55624310, 0.57561503, 0.33065869, 0.28598930, 0.02059915, 0.89955576, 0.91003985, 0.26868726, 0.97613304, 0.38723648, 0.66504190, 0.02092824, 0.41636886, 0.35077139, 0.15265648, 0.20790285, 0.20421888, 0.34162863, 0.39413524, 0.91310634, 0.81056322, 0.48583758, 0.53282213, 0.14793039, 0.86648513, 0.30037967, 0.13204684, 0.64860530, 0.86108906, 0.98664413, 0.08942630, 0.17791490, 0.19107823, 0.37702045, 0.72403257, 0.96539768, 0.69525971, 0.40577687, 0.37139153, 0.55812589, 0.59373464, 0.03421771, 0.78394764, 0.56237131, 0.69683049, 0.61979606, 0.12955550, 0.66382787, 0.59509876, 0.79766276, 0.08659076, 0.07288888, 0.64689550, 0.02016563, 0.86808399, 0.53495614, 0.22494508, 0.31779084, 0.27205262, 0.74975765, 0.60174621, 0.27383379, 0.83377514, 0.94198377, 0.47070628, 0.96111268, 0.63857051, 0.62490258, 0.88250860, 0.05129671, 0.73319113, 0.09881131, 0.88649673, 0.52707143, 0.70178227, 0.02416467, 0.85358190, 0.34640508, 0.79175930, 0.43554792, 0.93983171, 0.26700712, 0.54769506, 0.41191831, 0.43383408, 0.63333933, 0.00788010, 0.91803682, 0.13659728, 0.47918280, 0.72078780, 0.20186758, 0.98634244, 0.39079655, 0.62432433, 0.92814197, 0.42111281, 0.90462521, 0.51787318, 0.04000191, 0.82254138, 0.56604171, 0.84049756, 0.87863315, 0.44926471, 0.49165355, 0.59618969, 0.39500911, 0.08301515, 0.42440598, 0.07148232, 0.50067089, 0.63170103, 0.88784773, 0.93568234, 0.12767691, 0.51460267, 0.04551480, 0.29679326, 0.71869878, 0.66886604, 0.99559746, 0.21373819, 0.07705207, 0.90162303, 0.29944698, 0.76965061, 0.39307939, 0.58977358, 0.59955108, 0.88001699, 0.88839849, 0.79028170, 0.35853755, 0.38961951, 0.76400921, 0.04481058, 0.20498015, 0.25184305, 0.31290529, 0.09688802, 0.46950488, 0.28448810, 0.20749227, 0.21774246, 0.16754650, 0.84214893, 0.75998650, 0.59543810, 0.15768158, 0.82985541, 0.53741576, 0.62024092, 0.56164251, 0.84685099, 0.43875932, 0.14376269, 0.12191657, 0.74036581, 0.63042238, 0.39947516, 0.97869470, 0.03388022, 0.55623888, 0.00560876, 0.19804017, 0.35809862, 0.57770986, 0.20684322, 0.86952049, 0.05314201, 0.31115161, 0.75297924, 0.24038078, 0.25543901, 0.29558365, 0.04859761, 0.35811325, 0.98469545, 0.98575424, 0.85483618, 0.57789363, 0.23820230, 0.77587080, 0.63739416, 0.73807512, 0.08509698, 0.91990975, 0.56027216, 0.59227258, 0.89669956, 0.48393170, 0.78349119, 0.07688876, 0.49048711, 0.97676233, 0.64727299, 0.38584462, 0.28145301, 0.01550599, 0.18945752, 0.87379996, 0.02890444, 0.13732257, 0.21823246, 0.71756652, 0.56966958, 0.44550803, 0.69540274, 0.81009273, 0.71420855, 0.11768296, 0.40865700, 0.65500886, 0.50676682, 0.13591700, 0.22430768, 0.98437986, 0.11323729, 0.25948878, 0.90992219, 0.24566214, 0.44020692, 0.79119580, 0.40191868, 0.86418681, 0.96511463, 0.05257337, 0.42441068, 0.97284508, 0.78583947, 0.03145277, 0.13306677, 0.62284921, 0.06526968, 0.27227572, 0.02920410, 0.85618323, 0.88531784, 0.69550380, 0.91717720, 0.94659912, 0.74391481, 0.16259777, 0.94226300, 0.10532974, 0.91059056, 0.85529121, 0.63953821, 0.18559760, 0.17911454, 0.24281455, 0.87419743, 0.43099459, 0.91572761, 0.32962105, 0.05089396, 0.25399158, 0.49165522, 0.95659705, 0.67785446, 0.35475829, 0.74463888, 0.72561228, 0.25482160, 0.44891496, 0.07720984, 0.48395681, 0.74351843, 0.39979001, 0.00487332, 0.69655613, 0.33494366, 0.61969097, 0.70448508, 0.65012519, 0.32901089, 0.81829251, 0.44918533, 0.95604007, 0.00820664, 0.34594212, 0.04635539, 0.46375257, 0.83024265, 0.37547015, 0.91336615, 0.41038603, 0.65918687, 0.11727323, 0.30263102, 0.14217266, 0.99648433, 0.99743383, 0.02021849, 0.06917298, 0.82707160, 0.79692345, 0.01885254, 0.34061080, 0.61211031, 0.61339898, 0.61745751, 0.49587059, 0.79893049, 0.97833123, 0.98060653, 0.41235724, 0.87134599, 0.65061048, 0.91216122, 0.15553742, 0.75017715, 0.89782523, 0.00424658, 0.05994507, 0.18287370, 0.30758177, 0.10222843, 0.82329823, 0.32028853, 0.51689417, 0.70411537, 0.45353180, 0.08223335, 0.82436051, 0.80887412, 0.43933198, 0.08687836, 0.53211483, 0.18266968, 0.15658701, 0.72414266, 0.32735886, 0.15145334, 0.91787533, 0.54332984, 0.32279609, 0.42173936, 0.07588914, 0.30419505, 0.81017966, 0.96845370, 0.63627574, 0.84727451, 0.88742977, 0.44747925, 0.24776310, 0.05030551, 0.13016318, 0.62416476, 0.23559481, 0.24573308, 0.82449689, 0.40184810, 0.29491292, 0.97200511, 0.25879377, 0.60255217, 0.43286781, 0.16246353, 0.83972849, 0.57959594, 0.03197305, 0.24436894, 0.67692210, 0.55185838, 0.92005375, 0.25633985, 0.10481763, 0.67853816, 0.31928186, 0.75554830, 0.37089603, 0.60122019, 0.84765698, 0.00033093, 0.82914790, 0.35126384, 0.13373781, 0.22649988, 0.25832871, 0.00805221, 0.69034736, 0.09688938, 0.94542655, 0.69852256, 0.69562397, 0.96922480, 0.36608056, 0.11822842, 0.87258933, 0.98896530, 0.61255493, 0.42210611, 0.64365300, 0.23857627, 0.91837564, 0.14547014, 0.51612699, 0.64192328, 0.34246590, 0.14268754, 0.15859495, 0.77095702, 0.01080264, 0.87087159, 0.63060450, 0.69481937, 0.84240541, 0.95379007, 0.45310809, 0.51997102, 0.82978527, 0.67140555, 0.45856560, 0.48439090, 0.29327285, 0.36266237, 0.49221888, 0.98523206, 0.83644511, 0.98197702, 0.13521117, 0.59523541, 0.92477075, 0.51307875, 0.63397493, 0.77868858, 0.15233450, 0.37777192, 0.22528878, 0.13693927, 0.59983268, 0.08442964, 0.93192468, 0.12760373, 0.88325929, 0.83974645, 0.51676707, 0.34376976, 0.94219728, 0.98044638, 0.63594832, 0.65941087, 0.03715859, 0.43524771, 0.73237678, 0.20493458, 0.79839755, 0.74117581, 0.31915454, 0.84986064, 0.43777352, 0.54335319, 0.32167330, 0.31855880, 0.26673096, 0.65461456, 0.97878388, 0.42818357, 0.05243212, 0.84445490, 0.05629283, 0.67748546, 0.79044509, 0.25858006, 0.63659558, 0.19212188, 0.87702207, 0.00454776, 0.59516209, 0.36875898, 0.73059753, 0.45192937, 0.83777660, 0.33062473, 0.62286961, 0.76417643, 0.87551423, 0.95845652, 0.74296579, 0.86395090, 0.32583226, 0.92001191, 0.32171319, 0.84006563, 0.60971240, 0.79027957, 0.41323460, 0.46600458, 0.51279550, 0.97895957, 0.97138109, 0.66438339, 0.09826154, 0.45081157, 0.01368416, 0.17961563, 0.89936614, 0.53304857, 0.29234901, 0.18708516, 0.60935567, 0.28833607, 0.13783674, 0.49096809, 0.96374449, 0.20760292, 0.29729179, 0.18633984, 0.62029967, 0.57835982, 0.05922195, 0.76742521, 0.41023979, 0.71555097, 0.83481165, 0.88031880, 0.09863277, 0.71271637, 0.33321575, 0.03350630, 0.04950694, 0.11842818, 0.56167640, 0.66612105, 0.60076075, 0.42829282, 0.92528926, 0.55599765, 0.44648768, 0.62865139, 0.65400034, 0.95861368, 0.03078074, 0.48366601, 0.79292197, 0.11419146, 0.41982703, 0.15805725, 0.36365063, 0.57828509, 0.23531032, 0.66927232, 0.06579232, 0.34134493, 0.43320389, 0.81604946, 0.75374402, 0.59252676, 0.14314112, 0.08008821, 0.61607044, 0.47622726, 0.70278089, 0.82210241, 0.35791651, 0.28425965, 0.70573468, 0.84738383, 0.43737448, 0.79827193, 0.76220665, 0.55732352, 0.03427711, 0.92281258, 0.27413625, 0.58199877, 0.30013308, 0.87995056, 0.48320941, 0.37881629, 0.15332319, 0.73774346, 0.73654414, 0.66289244, 0.22828983, 0.01796034, 0.63758637, 0.76623816, 0.63569452, 0.68143683, 0.00839874, 0.93280417, 0.05507095, 0.62650092, 0.24592312, 0.71943274, 0.60509154, 0.33123011, 0.38506249, 0.39467195, 0.71827800, 0.97414449, 0.31963712, 0.95827787, 0.71162246, 0.25389547, 0.09090820, 0.33619408, 0.48412707, 0.28775361, 0.93853186, 0.77479483, 0.67790150, 0.95794532, 0.53957660, 0.57953073, 0.76021089, 0.39418710, 0.26653863, 0.05670721, 0.61318126, 0.67558325, 0.46325899, 0.97914211, 0.86432830, 0.42864641, 0.99048174, 0.29400621, 0.92266204, 0.04397024, 0.29926884, 0.24685589, 0.08042319, 0.25212710, 0.78726916, 0.04105533, 0.93783659, 0.37391839, 0.98121781, 0.72464585, 0.94671099, 0.70072935, 0.06362176, 0.32143080, 0.30587660, 0.01336253, 0.22886753, 0.95124328, 0.36812657, 0.53327065, 0.98800260, 0.14293064, 0.91433127, 0.17528358, 0.58460345, 0.79436018, 0.85536464, 0.19883063, 0.86772242, 0.90513821, 0.69579779, 0.16524102, 0.05741454, 0.17712384, 0.69604158, 0.32330351, 0.25526924, 0.16796039, 0.68508886, 0.23090268, 0.55306973, 0.75485248, 0.70351626, 0.15102021, 0.80210782, 0.43654393, 0.93555827, 0.12228843, 0.27130315, 0.10070153, 0.48069392, 0.60335391, 0.30162777, 0.90613764, 0.42626484, 0.16670167, 0.87120354, 0.34972825 }; }