pgregory.net/rand@v1.0.3-0.20230808192358-a0b8ce02f4da/std_exp.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE-go file. 4 5 package rand 6 7 import ( 8 "math" 9 ) 10 11 /* 12 * Exponential distribution 13 * 14 * See "The Ziggurat Method for Generating Random Variables" 15 * (Marsaglia & Tsang, 2000) 16 * https://www.jstatsoft.org/v05/i08/paper [pdf] 17 * 18 * Fixed correlation and increased number of distinct results generated, 19 * see https://github.com/flyingmutant/rand/issues/3 20 */ 21 22 const ( 23 re = 7.69711747013104972 24 ) 25 26 // ExpFloat64 returns an exponentially distributed float64 in the range 27 // (0, +math.MaxFloat64] with an exponential distribution whose rate parameter 28 // (lambda) is 1 and whose mean is 1/lambda (1). 29 // To produce a distribution with a different rate parameter, 30 // callers can adjust the output using: 31 // 32 // sample = ExpFloat64() / desiredRateParameter 33 func (r *Rand) ExpFloat64() float64 { 34 for { 35 v := r.Uint64() 36 j := v >> 11 37 i := v & 0xFF 38 x := float64(j) * we[i] 39 if j < ke[i] { 40 return x 41 } 42 if i == 0 { 43 return re - math.Log(r.Float64()) 44 } 45 if fe[i]+r.Float64()*(fe[i-1]-fe[i]) < math.Exp(-x) { 46 return x 47 } 48 } 49 } 50 51 // ExpFloat64 returns an exponentially distributed float64 in the range 52 // (0, +math.MaxFloat64] with an exponential distribution whose rate parameter 53 // (lambda) is 1 and whose mean is 1/lambda (1). 54 // To produce a distribution with a different rate parameter, 55 // callers can adjust the output using: 56 // 57 // sample = ExpFloat64() / desiredRateParameter 58 func ExpFloat64() float64 { 59 for { 60 v := Uint64() 61 j := v >> 11 62 i := v & 0xFF 63 x := float64(j) * we[i] 64 if j < ke[i] { 65 return x 66 } 67 if i == 0 { 68 return re - math.Log(Float64()) 69 } 70 if fe[i]+Float64()*(fe[i-1]-fe[i]) < math.Exp(-x) { 71 return x 72 } 73 } 74 } 75 76 var ke = [256]uint64{ 77 0x1c5214272497c5, 0x0, 0x137d5bd79c3137, 0x186ef58e3f3bf4, 78 0x1a9bb7320eb0a2, 0x1bd127f7194473, 0x1c951d0f886514, 0x1d1bfe2d5c3970, 79 0x1d7e5bd56b18b1, 0x1dc934dd172c6f, 0x1e0409dfac9dc8, 0x1e337b71d47835, 80 0x1e5a8b177cb7a0, 0x1e7b42096f046d, 0x1e970daf08ae3c, 0x1eaef5b14ef09e, 81 0x1ec3bd07b46558, 0x1ed5f6f08799cd, 0x1ee614ae6e5688, 0x1ef46eca361cd0, 82 0x1f014b76ddd4a3, 0x1f0ce313a796b5, 0x1f176369f1f779, 0x1f20f20c452572, 83 0x1f29ae1951a876, 0x1f31b18fb95533, 0x1f39125157c107, 0x1f3fe2eb6e694c, 84 0x1f463332d788fd, 0x1f4c10bf1d3a0f, 0x1f51874c5c3323, 0x1f56a109c3ecc1, 85 0x1f5b66d9099997, 0x1f5fe08210d08c, 0x1f6414dd445770, 0x1f6809f685967a, 86 0x1f6bc52a2b02e7, 0x1f6f4b3d32e4f5, 0x1f72a07190f139, 0x1f75c8974d09da, 87 0x1f78c71b045cc0, 0x1f7b9f12413ff5, 0x1f7e5346079f8a, 0x1f80e63be21138, 88 0x1f835a3dad9163, 0x1f85b16056b913, 0x1f87ed89b24263, 0x1f8a10759374fb, 89 0x1f8c1bba3d39ad, 0x1f8e10cc45d04a, 0x1f8ff102013e17, 0x1f91bd968358e1, 90 0x1f9377ac47afda, 0x1f95204f8b64db, 0x1f96b878633893, 0x1f98410c968892, 91 0x1f99bae146ba81, 0x1f9b26bc697f00, 0x1f9c85561b717a, 0x1f9dd759cfd804, 92 0x1f9f1d6761a1cf, 0x1fa058140936c1, 0x1fa187eb3a333a, 0x1fa2ad6f6bc4fd, 93 0x1fa3c91ace0683, 0x1fa4db5fee6aa2, 0x1fa5e4aa4d097d, 0x1fa6e55ee46783, 94 0x1fa7dddca51ec5, 0x1fa8ce7ce6a876, 0x1fa9b793ce5ff1, 0x1faa9970adb858, 95 0x1fab745e588233, 0x1fac48a3740587, 0x1fad1682bf9feb, 0x1fadde3b5782c0, 96 0x1faea008f21d6c, 0x1faf5c2418b07d, 0x1fb012c25b7a13, 0x1fb0c41681dff3, 97 0x1fb17050b6f1fc, 0x1fb2179eb2963b, 0x1fb2ba2bdfa84b, 0x1fb358217f4e19, 98 0x1fb3f1a6c9be0d, 0x1fb486e10cacd7, 0x1fb517f3c793fe, 0x1fb5a500c5fdaa, 99 0x1fb62e2837fe5a, 0x1fb6b388c9010b, 0x1fb7353fb5079a, 0x1fb7b368dc7da9, 100 0x1fb82e1ed6ba0a, 0x1fb8a57b0347f6, 0x1fb919959a0f74, 0x1fb98a85ba7204, 101 0x1fb9f861796f26, 0x1fba633deee287, 0x1fbacb2f41ec17, 0x1fbb3048b49146, 102 0x1fbb929caea4e4, 0x1fbbf23cc8029d, 0x1fbc4f39d22996, 0x1fbca9a3e140d5, 103 0x1fbd018a548fa0, 0x1fbd56fbde729c, 0x1fbdaa068bd66c, 0x1fbdfab7cb3f42, 104 0x1fbe491c7364de, 0x1fbe9540c96960, 0x1fbedf3086b129, 0x1fbf26f6de6175, 105 0x1fbf6c9e828ae3, 0x1fbfb031a904c4, 0x1fbff1ba0ffdb1, 0x1fc03141024589, 106 0x1fc06ecf5b54b3, 0x1fc0aa6d8b1428, 0x1fc0e42399698b, 0x1fc11bf9298a65, 107 0x1fc151f57d1943, 0x1fc1861f770f4c, 0x1fc1b87d9e74b4, 0x1fc1e91620ea43, 108 0x1fc217eed505de, 0x1fc2450d3c8400, 0x1fc27076864fc2, 0x1fc29a2f906310, 109 0x1fc2c23ce98046, 0x1fc2e8a2d2c6b5, 0x1fc30d654122ee, 0x1fc33087de9c0e, 110 0x1fc3520e0b7ec8, 0x1fc371fadf66f9, 0x1fc390512a2888, 0x1fc3ad137497fa, 111 0x1fc3c844013349, 0x1fc3e1e4ccab40, 0x1fc3f9f78e4da8, 0x1fc4107db85062, 112 0x1fc4257877fd68, 0x1fc438e8b5bfc7, 0x1fc44acf15112b, 0x1fc45b2bf447e9, 113 0x1fc469ff6c4506, 0x1fc477495001b2, 0x1fc483092bfbb9, 0x1fc48d3e457ff7, 114 0x1fc495e799d21b, 0x1fc49d03dd30b1, 0x1fc4a29179b434, 0x1fc4a68e8e07fc, 115 0x1fc4a8f8ebfb8d, 0x1fc4a9ce16ea9f, 0x1fc4a90b41fa36, 0x1fc4a6ad4e28a1, 116 0x1fc4a2b0c82e76, 0x1fc49d11e62de3, 0x1fc495cc852df4, 0x1fc48cdc265ec1, 117 0x1fc4823bec237a, 0x1fc475e696dee7, 0x1fc467d6817e83, 0x1fc458059dc038, 118 0x1fc4466d702e22, 0x1fc433070bcb9a, 0x1fc41dcb0d6e0e, 0x1fc406b196bbf7, 119 0x1fc3edb248cb62, 0x1fc3d2c43e593e, 0x1fc3b5de0591b5, 0x1fc396f599614d, 120 0x1fc376005a4594, 0x1fc352f3069372, 0x1fc32dc1b2281b, 0x1fc3065fbd7888, 121 0x1fc2dcbfcbf264, 0x1fc2b0d3b99fa0, 0x1fc2828c8ffcf0, 0x1fc251da79f164, 122 0x1fc21eacb6d39e, 0x1fc1e8f18c6757, 0x1fc1b09637bb3d, 0x1fc17586dccd11, 123 0x1fc137ae74d6b8, 0x1fc0f6f6bb2416, 0x1fc0b348184da4, 0x1fc06c898baff1, 124 0x1fc022a092f365, 0x1fbfd5710f72b8, 0x1fbf84dd294890, 0x1fbf30c52fc60d, 125 0x1fbed907770cc6, 0x1fbe7d80327ddc, 0x1fbe1e094ba615, 0x1fbdba7a354408, 126 0x1fbd52a7b9f826, 0x1fbce663c6201b, 0x1fbc757d2c4de5, 0x1fbbffbf63b7aa, 127 0x1fbb84f23fe6a2, 0x1fbb04d9a0d18e, 0x1fba7f351a70ad, 0x1fb9f3bf92b61a, 128 0x1fb9622ed4abfc, 0x1fb8ca33174a18, 0x1fb82b76765b54, 0x1fb7859c5b895d, 129 0x1fb6d840d55594, 0x1fb622f7d96943, 0x1fb5654c6f37e2, 0x1fb49ebfbf69d2, 130 0x1fb3cec803e747, 0x1fb2f4cf539c40, 0x1fb21032442854, 0x1fb1203e5a9605, 131 0x1fb0243042e1c3, 0x1faf1b31c479a7, 0x1fae045767e106, 0x1facde9dbf2d73, 132 0x1faba8e640060b, 0x1faa61f399ff29, 0x1fa908656f66a2, 0x1fa79ab3508d3d, 133 0x1fa61726d1f215, 0x1fa47bd48bea00, 0x1fa2c693c5c095, 0x1fa0f4f47df316, 134 0x1f9f04336bbe0b, 0x1f9cf12b79f9bd, 0x1f9ab84415abc6, 0x1f98555b782fb9, 135 0x1f95c3abd03f7a, 0x1f92fda9cef1f3, 0x1f8ffcda9ae41d, 0x1f8cb99e7385f8, 136 0x1f892aec479608, 0x1f8545f904db90, 0x1f80fdc336039b, 0x1f7c427839e926, 137 0x1f7700a3582ace, 0x1f71200f1a241d, 0x1f6a8234b7352c, 0x1f630000a8e267, 138 0x1f5a66904fe3c6, 0x1f50724ece1173, 0x1f44c7665c6fdb, 0x1f36e5a38a59a4, 139 0x1f26143450340b, 0x1f113e047b0414, 0x1ef6aefa57cbe7, 0x1ed38ca188151e, 140 0x1ea2a61e122db1, 0x1e5961c78b267d, 0x1dddf62bac0bb1, 0x1cdb4dd9e4e8c0, 141 } 142 var we = [256]float64{ 143 9.655740063209187e-16, 7.08901424395524e-18, 1.1639412496691094e-17, 144 1.5243915123532052e-17, 1.833284885723734e-17, 2.1089651094644777e-17, 145 2.3611280778431305e-17, 2.5955957723108866e-17, 2.816173554197745e-17, 146 3.0255041303213756e-17, 3.2255082548363685e-17, 3.417632340185021e-17, 147 3.6029969787344476e-17, 3.7824907768696435e-17, 3.956832198097548e-17, 148 4.1266117781759415e-17, 4.29232180844252e-17, 4.4543777432823665e-17, 149 4.6131339814831816e-17, 4.768895725264631e-17, 4.9219280437279585e-17, 150 5.0724629045031433e-17, 5.220704702792669e-17, 5.36683466171819e-17, 151 5.5110143728350916e-17, 5.653388673239663e-17, 5.794088004852763e-17, 152 5.933230365208939e-17, 6.070922932847175e-17, 6.207263431163189e-17, 153 6.342341280303072e-17, 6.476238575956136e-17, 6.609030925769399e-17, 154 6.740788167872716e-17, 6.871574991183808e-17, 7.001451473403925e-17, 155 7.130473549660638e-17, 7.258693422414643e-17, 7.386159921381787e-17, 156 7.512918820723722e-17, 7.63901311955082e-17, 7.764483290797843e-17, 157 7.889367502729786e-17, 8.013701816675451e-17, 8.137520364041757e-17, 158 8.260855505210033e-17, 8.383737972539134e-17, 8.506196999385318e-17, 159 8.628260436784108e-17, 8.749954859216179e-17, 8.871305660690249e-17, 160 8.992337142215353e-17, 9.113072591597904e-17, 9.233534356381783e-17, 161 9.353743910649124e-17, 9.473721916312945e-17, 9.593488279457992e-17, 162 9.713062202221516e-17, 9.832462230649506e-17, 9.951706298915067e-17, 163 1.0070811770242944e-16, 1.0189795474846936e-16, 1.0308673745154215e-16, 164 1.0427462448561881e-16, 1.0546177017945759e-16, 1.0664832480119145e-16, 165 1.0783443482419484e-16, 1.0902024317583504e-16, 1.102058894705578e-16, 166 1.1139151022861973e-16, 1.125772390816567e-16, 1.1376320696616842e-16, 167 1.1494954230590088e-16, 1.1613637118402176e-16, 1.173238175059045e-16, 168 1.185120031532669e-16, 1.1970104813034647e-16, 1.2089107070273853e-16, 169 1.220821875294706e-16, 1.2327451378884152e-16, 1.2446816329851125e-16, 170 1.2566324863028985e-16, 1.2685988122003978e-16, 1.2805817147307496e-16, 171 1.2925822886541196e-16, 1.304601620412029e-16, 1.3166407890665726e-16, 172 1.3287008672073811e-16, 1.3407829218289994e-16, 1.3528880151811755e-16, 173 1.3650172055943978e-16, 1.377171548282881e-16, 1.3893520961270637e-16, 174 1.4015599004375713e-16, 1.413796011702485e-16, 1.4260614803196652e-16, 175 1.4383573573157902e-16, 1.4506846950536877e-16, 1.4630445479294757e-16, 176 1.4754379730609514e-16, 1.4878660309686256e-16, 1.5003297862507367e-16, 177 1.5128303082535392e-16, 1.5253686717381255e-16, 1.5379459575449967e-16, 178 1.5505632532575771e-16, 1.5632216538658375e-16, 1.5759222624311761e-16, 179 1.5886661907536842e-16, 1.6014545600429167e-16, 1.6142885015932787e-16, 180 1.6271691574651305e-16, 1.6400976811727182e-16, 1.6530752383800372e-16, 181 1.6661030076057423e-16, 1.679182180938229e-16, 1.6923139647620228e-16, 182 1.7054995804966303e-16, 1.7187402653490321e-16, 1.7320372730810089e-16, 183 1.7453918747925345e-16, 1.7588053597224919e-16, 1.772279036068007e-16, 184 1.785814231823733e-16, 1.7994122956424645e-16, 1.8130745977185023e-16, 185 1.826802530695253e-16, 1.8405975105985886e-16, 1.8544609777975702e-16, 186 1.8683943979941934e-16, 1.8823992632438928e-16, 1.8964770930086177e-16, 187 1.9106294352443775e-16, 1.9248578675252448e-16, 1.9391639982059002e-16, 188 1.9535494676249099e-16, 1.9680159493510384e-16, 1.98256515147502e-16, 189 1.997198817949343e-16, 2.0119187299787354e-16, 2.0267267074641993e-16, 190 2.0416246105035898e-16, 2.0566143409519186e-16, 2.0716978440447378e-16, 191 2.0868771100881602e-16, 2.1021541762192933e-16, 2.1175311282410767e-16, 192 2.1330101025357798e-16, 2.148593288061664e-16, 2.1642829284376057e-16, 193 2.1800813241207848e-16, 2.1959908346828715e-16, 2.2120138811904967e-16, 194 2.2281529486961815e-16, 2.244410588846309e-16, 2.260789422613174e-16, 195 2.2772921431586215e-16, 2.293921518837312e-16, 2.3106803963482143e-16, 196 2.3275717040435356e-16, 2.344598455404959e-16, 2.361763752697775e-16, 197 2.3790707908142777e-16, 2.3965228613186245e-16, 2.414123356706294e-16, 198 2.4318757748922564e-16, 2.449783723943071e-16, 2.4678509270692897e-16, 199 2.4860812278958527e-16, 2.5044785960295575e-16, 2.5230471329442175e-16, 200 2.5417910782058127e-16, 2.5607148160617713e-16, 2.5798228824205314e-16, 201 2.599119972249747e-16, 2.6186109474239247e-16, 2.638300845054943e-16, 202 2.658194886341845e-16, 2.6782984859795257e-16, 2.6986172621694894e-16, 203 2.719157047279819e-16, 2.7399238992058153e-16, 2.760924113487617e-16, 204 2.782164236246436e-16, 2.8036510780069835e-16, 2.825391728480253e-16, 205 2.847393572388174e-16, 2.8696643064198177e-16, 2.8922119574179956e-16, 206 2.9150449019052937e-16, 2.9381718870700286e-16, 2.9616020533454657e-16, 207 2.9853449587300453e-16, 3.009410605012618e-16, 3.033809466085003e-16, 208 3.0585525185448604e-16, 3.08365127481531e-16, 3.1091178190342663e-16, 209 3.1349648459966636e-16, 3.161205703467106e-16, 3.1878544382197136e-16, 210 3.214925846206798e-16, 3.242435527309452e-16, 3.270399945182241e-16, 211 3.2988364927722836e-16, 3.327763564171672e-16, 3.3572006335532446e-16, 212 3.387168342045505e-16, 3.417688593525637e-16, 3.4487846604534244e-16, 213 3.4804813010374423e-16, 3.51280488922298e-16, 3.5457835592247924e-16, 214 3.579447366604277e-16, 3.613828468219061e-16, 3.648961323764543e-16, 215 3.6848829220956213e-16, 3.721633036080208e-16, 3.7592545104162565e-16, 216 3.797793587668875e-16, 3.837300278789214e-16, 3.877828785607896e-16, 217 3.9194379843114294e-16, 3.9621919807867755e-16, 4.006160751056542e-16, 218 4.0514208829565737e-16, 4.098056438903063e-16, 4.146159964290905e-16, 219 4.1958336720733994e-16, 4.2471908418243855e-16, 4.3003574816674707e-16, 220 4.355474314693952e-16, 4.4126991690360704e-16, 4.472209874259932e-16, 221 4.534207798565834e-16, 4.598922204905932e-16, 4.666615664711476e-16, 222 4.737590853262492e-16, 4.812199172829238e-16, 4.89085182739221e-16, 223 4.97403423619194e-16, 5.06232507214416e-16, 5.156421828878083e-16, 224 5.257175802022275e-16, 5.365640977112021e-16, 5.483144034258703e-16, 225 5.611387454675159e-16, 5.752606481503331e-16, 5.909817641652101e-16, 226 6.087231416180907e-16, 6.290979034877556e-16, 6.53049205356404e-16, 227 6.821393079028929e-16, 7.192444966089362e-16, 7.706095350032097e-16, 228 8.545517038584027e-16, 229 } 230 var fe = [256]float64{ 231 1, 0.9381436808621761, 0.9004699299257475, 0.8717043323812045, 232 0.8477855006239904, 0.826993296643051, 0.8084216515230089, 233 0.7915276369724962, 0.7759568520401161, 0.7614633888498967, 234 0.7478686219851955, 0.7350380924314239, 0.7228676595935724, 235 0.7112747608050763, 0.7001926550827885, 0.6895664961170783, 236 0.6793505722647657, 0.6695063167319251, 0.660000841079, 237 0.6508058334145713, 0.6418967164272663, 0.6332519942143663, 238 0.6248527387036661, 0.6166821809152078, 0.6087253820796222, 239 0.6009689663652324, 0.5934009016917337, 0.5860103184772683, 240 0.5787873586028452, 0.571723048664826, 0.5648091929124005, 241 0.5580382822625878, 0.5514034165406416, 0.54489823767244, 242 0.5385168720028621, 0.5322538802630435, 0.52610421398362, 243 0.5200631773682338, 0.5141263938147488, 0.5082897764106431, 244 0.502549501841348, 0.49690198724154977, 0.49134386959403276, 245 0.48587198734188514, 0.48048336393045443, 0.4751751930373776, 246 0.4699448252839602, 0.4647897562504264, 0.45970761564213786, 247 0.45469615747461567, 0.44975325116275516, 0.4448768734145487, 248 0.44006510084235406, 0.4353161032156368, 0.43062813728845906, 249 0.42599954114303457, 0.4214287289976168, 0.4169141864330031, 250 0.41245446599716135, 0.40804818315203256, 0.40369401253053044, 251 0.39939068447523124, 0.3951369818332903, 0.3909317369847973, 252 0.3867738290841378, 0.38266218149600995, 0.3785957594095809, 253 0.3745735676159022, 0.37059464843514606, 0.3666580797815142, 254 0.3627629733548179, 0.3589084729487499, 0.35509375286678757, 255 0.3513180164374835, 0.3475804946216372, 0.34388044470450263, 256 0.3402171490667802, 0.33658991402867766, 0.33299806876180904, 257 0.3294409642641363, 0.3259179723935562, 0.3224284849560891, 258 0.3189719128449572, 0.3155476852271289, 0.31215524877417955, 259 0.30879406693456013, 0.3054636192445902, 0.30216340067569347, 260 0.29889292101558174, 0.2956517042812612, 0.2924392881618926, 261 0.28925522348967775, 0.2860990737370769, 0.2829704145387808, 262 0.2798688332369729, 0.27679392844851736, 0.27374530965280297, 263 0.27072259679906, 0.2677254199320448, 0.26475341883506226, 264 0.26180624268936303, 0.2588835497490163, 0.25598500703041543, 265 0.2531102900156295, 0.25025908236886235, 0.24743107566532765, 266 0.24462596913189213, 0.24184346939887724, 0.23908329026244915, 267 0.23634515245705962, 0.23362878343743335, 0.2309339171696274, 268 0.22826029393071667, 0.225607660116684, 0.22297576805812014, 269 0.22036437584335944, 0.21777324714870044, 0.2152021510753786, 270 0.2126508619929782, 0.21011915938898817, 0.20760682772422195, 271 0.20511365629383763, 0.2026394390937089, 0.20018397469191118, 272 0.19774706610509873, 0.1953285206795631, 0.1929281499767712, 273 0.19054576966319528, 0.18818119940425418, 0.185834262762197, 274 0.18350478709776735, 0.18119260347549615, 0.17889754657247814, 275 0.17661945459049475, 0.17435816917135336, 0.17211353531531992, 276 0.16988540130252752, 0.16767361861725005, 0.16547804187493587, 277 0.16329852875190168, 0.1611349399175919, 0.15898713896931407, 278 0.15685499236936512, 0.15473836938446797, 0.1526371420274428, 279 0.15055118500103984, 0.1484803756438667, 0.14642459387834483, 280 0.14438372216063466, 0.1423576454324721, 0.14034625107486234, 281 0.13834942886358012, 0.13636707092642877, 0.13439907170221355, 282 0.13244532790138744, 0.13050573846833072, 0.12858020454522814, 283 0.12666862943751062, 0.12477091858083088, 0.12288697950954505, 284 0.12101672182667474, 0.1191600571753276, 0.11731689921155547, 285 0.11548716357863345, 0.11367076788274424, 0.11186763167005624, 286 0.11007767640518532, 0.1083008254510337, 0.10653700405000158, 287 0.1047861393065701, 0.10304816017125766, 0.10132299742595359, 288 0.09961058367063709, 0.09791085331149216, 0.09622374255043278, 289 0.09454918937605583, 0.09288713355604353, 0.09123751663104016, 290 0.08960028191003284, 0.08797537446727019, 0.08636274114075689, 291 0.0847623305323681, 0.08317409300963235, 0.08159798070923742, 292 0.0800339475423199, 0.07848194920160644, 0.07694194317048052, 293 0.07541388873405841, 0.07389774699236475, 0.07239348087570872, 294 0.07090105516237181, 0.06942043649872875, 0.06795159342193662, 295 0.06649449638533979, 0.06504911778675376, 0.06361543199980735, 296 0.06219341540854101, 0.06078304644547963, 0.05938430563342025, 297 0.05799717563120063, 0.05662164128374284, 0.055257689676697, 298 0.05390531019604605, 0.052564494593071664, 0.051235237055126254, 299 0.04991753428270636, 0.048611385573379476, 0.04731679291318154, 300 0.046033761076175156, 0.04476229773294327, 0.043502413568888176, 301 0.04225412241331622, 0.041017441380414806, 0.039792391023374105, 302 0.03857899550307484, 0.03737728277295935, 0.03618728478193141, 303 0.035009037697397404, 0.03384258215087432, 0.03268796350895953, 304 0.031545232172893595, 0.030414443910466597, 0.029295660224637383, 305 0.028188948763978622, 0.02709438378095579, 0.026012046645134207, 306 0.024942026419731776, 0.023884420511558164, 0.02283933540638523, 307 0.02180688750428357, 0.020787204072578114, 0.01978042433800974, 308 0.018786700744696024, 0.017806200410911355, 0.01683910682603994, 309 0.015885621839973156, 0.014945968011691148, 0.014020391403181943, 310 0.013109164931254991, 0.012212592426255378, 0.0113310135978346, 311 0.01046481018102998, 0.009614413642502213, 0.008780314985808977, 312 0.007963077438017043, 0.007163353183634991, 0.006381905937319183, 313 0.005619642207205488, 0.0048776559835424, 0.0041572951208338005, 314 0.003460264777836907, 0.0027887987935740783, 0.002145967743718907, 315 0.0015362997803015726, 0.0009672692823271743, 0.0004541343538414966, 316 }