2024-03-03 13:44:04 +08:00
|
|
|
|
|
|
|
const MODULE: [f64; 989] = [
|
|
|
|
1.950620413256, 0.686047371475, 37.078806981531, -56.350182111228,
|
|
|
|
-86.245538958342, -70.141561618677, -15.705012389623, 72.501018127843,
|
|
|
|
-33.702622017009, -10.578427274580, -41.918786497097, -14.319650283843,
|
|
|
|
-33.392078588817, -38.191147918006, -10.809076902675, -33.807124772749,
|
|
|
|
-21.116423022245, -20.733167567407, -36.166017959307, 17.686015055598,
|
|
|
|
-13.333844495773, -1.382769848072, -21.035024270961, -23.329182612127,
|
|
|
|
-5.601802089714, -4.089879184916, -32.623499273312, 5.412998926765,
|
|
|
|
-6.926216584115, 76.088938578011, 15.172664342720, 38.764104717252,
|
|
|
|
30.786058425809, 3.811095882771, 7.032399235986, -17.795957866920,
|
|
|
|
8.106663713431, -26.030257039986, -12.592402722820, 8.735178591009,
|
|
|
|
-8.282449611019, 9.435398534886, -35.962796961199, -0.017072080826,
|
|
|
|
0.092842987372, -0.125223181517, 0.117867823429, 0.069337828290,
|
|
|
|
0.110582912939, -0.098537752979, 0.041686156083, 0.025032874748,
|
|
|
|
-0.008033810105, 0.031921576069, 0.006499147544, 0.015651157911,
|
|
|
|
0.029422894750, 0.025319106237, 0.031610567410, 0.013576566758,
|
|
|
|
-0.001538744074, 0.033972672188, 0.007354506982, 0.006888857456,
|
|
|
|
0.002360490562, 0.012195464271, 0.014023599644, 0.021974196237,
|
|
|
|
0.024141285754, -0.042473314562, 0.008437345803, 0.040913404735,
|
|
|
|
-0.001477073691, 0.023277320259, 0.070273102847, 0.010411775062,
|
|
|
|
-0.030366668677, 0.053633760255, 0.000417457994, -0.036552196101,
|
|
|
|
-0.001827120822, 0.010624376666, 0.005374719146, 0.021572231497,
|
|
|
|
0.007695603454, -0.032051066673, 0.022163108422, 0.236922733675,
|
|
|
|
-0.090691069015, 0.130451908042, -0.284777001204, 0.281178340927,
|
|
|
|
-0.370189568015, -0.132256138312, -0.118325811628, -0.111037458148,
|
|
|
|
-0.149325311559, -0.018874760055, -0.103128068239, 0.184880267353,
|
|
|
|
0.167233497412, -0.025594729705, 0.087945487194, -0.111550780856,
|
|
|
|
-0.125867358856, -0.057154884198, -0.073419542395, -0.083728018013,
|
|
|
|
-0.029475459693, -0.036997271688, -0.130706147894, 0.251220876851,
|
|
|
|
-0.108034375915, -0.092592236193, -0.416150092511, -0.200030954323,
|
|
|
|
-0.335672099883, -0.166032644719, 0.061565184689, -0.143114252112,
|
|
|
|
0.117354414638, 0.077197217568, -0.005011675580, 0.147412423938,
|
|
|
|
-0.087680127423, -0.026221206178, 0.029798553374, 0.223770405298,
|
|
|
|
-0.258646161634, 0.328601917614, 0.138436437563, 0.143798560018,
|
|
|
|
-0.205842587608, 0.065962618070, 0.098415994416, 0.031884214640,
|
|
|
|
0.078796294448, 0.066447210364, -0.007842834092, 0.073540704438,
|
|
|
|
0.041048740278, 0.077513460327, -0.021192357484, -0.160291135892,
|
|
|
|
0.098243065220, 0.018918954681, 0.026108842874, -0.071786077568,
|
|
|
|
0.028933526504, 0.044701514728, 0.127608655804, 0.142934869247,
|
|
|
|
-0.272205511976, 0.055157822970, 0.186288794754, 0.197043041367,
|
|
|
|
0.218373232333, 0.174530702788, 0.070406880413, -0.058171052443,
|
|
|
|
0.195882743478, -0.107106470947, -0.083638055945, 0.050610606994,
|
|
|
|
-0.039237357934, 0.102356417358, 0.117101801530, -0.017312125815,
|
|
|
|
-0.195041016353, -0.060605215358, 0.110902812581, -0.006101685426,
|
|
|
|
0.414533038290, -0.092949938951, 0.004694096297, 0.054970318173,
|
|
|
|
0.030494956830, -0.062755810070, 0.066840872180, -0.007448548514,
|
|
|
|
-0.053161479236, -0.022380595889, -0.021870487779, 0.102964462871,
|
|
|
|
0.024399194551, 0.045011464481, 0.026959176620, 0.047768522943,
|
|
|
|
0.088833929337, -0.030391901480, -0.042344648612, -0.021700020685,
|
|
|
|
0.288526041304, -0.004928292352, -0.069596560216, -0.204870021567,
|
|
|
|
-0.219207768688, -0.345584402686, -0.063707006600, 0.020361077221,
|
|
|
|
-0.170847181719, 0.094028133319, 0.023539894888, 0.013409305715,
|
|
|
|
0.023856847248, -0.067876967153, -0.137727672560, -0.005541909944,
|
|
|
|
0.273277074386, 0.130327785323, 0.075705563013, 0.265801150948,
|
|
|
|
0.040811489949, 0.012086519491, 0.064685654879, 0.056547010781,
|
|
|
|
0.068382559504, 0.053972263401, 0.061533519745, 0.041652300204,
|
|
|
|
0.081098498803, -0.025366811878, 0.048168978340, 0.038088019968,
|
|
|
|
-0.090290776245, 0.015893631609, 0.003670368232, 0.089512073742,
|
|
|
|
-0.031128042122, -0.035675351967, -0.044942864507, 0.133486431326,
|
|
|
|
-0.013405091817, 0.001754281342, -0.199220214463, -0.093665806440,
|
|
|
|
-0.256760424456, -0.068088646739, 0.071100061793, -0.084022073730,
|
|
|
|
0.008296586660, 0.060611404482, 0.034391933692, 0.016280568232,
|
|
|
|
-0.006163274726, -0.008288146483, 0.021330713655, 0.100206899202,
|
|
|
|
0.098614154012, 0.274063679202, 0.148531450008, 0.277826193435,
|
|
|
|
0.153822345391, 0.192259450692, 0.254713028517, 0.250724360211,
|
|
|
|
0.255723580793, -0.131816302737, -0.093091061135, 0.330539674073,
|
|
|
|
0.124475381854, 0.189381964996, -0.032363814789, -0.011865772657,
|
|
|
|
0.073296703158, 0.163853541482, 0.075654991185, -0.057293610317,
|
|
|
|
0.111618096345, 0.274168963139, -0.045823459290, -0.160288340573,
|
|
|
|
-0.107296022844, -0.135831496334, -0.224615266600, -0.154340286526,
|
|
|
|
0.084224877232, -0.141072804518, 0.120833054294, 0.090974089020,
|
|
|
|
0.074649812082, 0.036490667754, -0.052933835759, -0.039421413124,
|
|
|
|
0.006135797482, 0.248750673897, -0.212029563376, 0.146591910640,
|
|
|
|
0.070442405144, 0.031836318606, 0.106784783589, 0.104753708909,
|
|
|
|
-0.012372317073, 0.088507508232, 0.054798106532, 0.085299294738,
|
|
|
|
0.016044969467, -0.112402954915, 0.111900251973, 0.013371724428,
|
|
|
|
0.034078840415, 0.042227867898, 0.030851903266, 0.127685870108,
|
|
|
|
0.076211910992, 0.029672933991, -0.240925299587, 0.165732848748,
|
|
|
|
0.203749251923, 0.210871626145, 0.287987603485, 0.207171081643,
|
|
|
|
0.121039088549, -0.044189113015, 0.231618529025, -0.023255941877,
|
|
|
|
-0.041856135446, 0.070405803829, -0.017319244110, 0.106434918183,
|
|
|
|
0.171343160663, -0.015075460490, -0.112775455174, -0.372670996695,
|
|
|
|
0.086704666131, 0.076496746557, 0.127526592877, -0.012260110098,
|
|
|
|
0.102565117459, 0.076270079702, 0.003371890099, 0.083478220541,
|
|
|
|
0.086270239561, 0.240755219878, 0.055716737997, 0.083974100250,
|
|
|
|
0.176529769692, 0.094940290530, 0.050874389917, 0.142108132900,
|
|
|
|
0.004139679133, 0.078178987014, 0.224829413216, -0.005670729553,
|
|
|
|
0.039605176446, -0.091278138630, -0.003883078689, 0.064533127177,
|
|
|
|
0.025282380290, -0.004705028142, -0.129132996259, 0.089989403828,
|
|
|
|
0.003366345478, 0.069543574410, 0.024091011112, -0.012003135849,
|
|
|
|
0.020826735487, -0.044259804423, 0.167984222568, 0.043792715810,
|
|
|
|
-0.080810496219, -0.086977347241, -0.107831346727, -0.099520588934,
|
|
|
|
-0.129528708604, 0.008095793219, -0.092163397529, -0.041638793132,
|
|
|
|
-0.007103760522, -0.067022046779, -0.086952285942, -0.077147633687,
|
|
|
|
-0.045730738100, -0.073942616695, -0.079935964809, 0.033310797636,
|
|
|
|
-0.096470960788, -0.054600767427, -0.036653425876, -0.023164598228,
|
|
|
|
-0.154826667725, -0.069999127373, -0.116473513882, -0.135592647105,
|
|
|
|
0.017475255709, 0.024126716370, -0.006620648295, -0.010342626640,
|
|
|
|
-0.048219570992, 0.028562691365, 0.002585969344, 0.036319735390,
|
|
|
|
-0.058642818260, 0.029467208856, 0.020938526296, -0.078122627603,
|
|
|
|
-0.116327962720, -0.043032082942, -0.067333347384, -0.046107429052,
|
|
|
|
-0.069539536139, -0.060080493114, -0.019356328396, -0.101305799377,
|
|
|
|
-0.042149854661, -0.069700501812, -0.023428614188, -0.053343066707,
|
|
|
|
-0.002695820213, 0.013519155186, -0.088431387441, -0.057766410383,
|
|
|
|
-0.122639219906, -0.066978402817, -0.161076714656, 0.002614383333,
|
|
|
|
0.031601492207, -0.055178630585, -0.015690512204, 0.023832482878,
|
|
|
|
-0.052418790287, -0.002011238366, 0.001505485029, 0.010242003951,
|
|
|
|
-0.010147518066, -0.033197882930, -0.019369071234, 0.017054414572,
|
|
|
|
0.034369944882, -0.055316037392, -0.059452531915, -0.111609536255,
|
|
|
|
-0.105959491664, -0.031894456199, -0.107358448129, 0.026093026587,
|
|
|
|
-0.023211922001, -0.037207763482, -0.057240989053, -0.007450363111,
|
|
|
|
-0.032940635320, -0.011011247851, 0.031688028283, -0.078487502245,
|
|
|
|
-0.043123723991, -0.001217863847, 0.022753832241, -0.156667554878,
|
|
|
|
-0.090410446171, 0.054812636778, -0.070289401278, 0.019307995665,
|
|
|
|
0.004169186054, -0.013867997717, -0.024734884025, -0.005801782214,
|
|
|
|
0.000126928741, 0.002262509579, -0.015851708319, 0.004113930494,
|
|
|
|
0.044421311025, 0.017748424708, -0.073534043660, -0.021131286276,
|
|
|
|
-0.083469623583, -0.084264022938, -0.057237584686, -0.068991208521,
|
|
|
|
-0.117663576133, -0.063884024830, -0.076097190446, -0.033535011829,
|
|
|
|
-0.081899353210, -0.031993336034, -0.001533735338, -0.120878957445,
|
|
|
|
0.002321414453, 0.008411560288, -0.001992214658, -0.177646843698,
|
|
|
|
0.000096160020, 0.032527391370, -0.104029732834, 0.017672107177,
|
|
|
|
-0.033825447055, 0.023152474904, 0.021848950289, -0.082615374631,
|
|
|
|
0.004229588893, -0.006252784956, 0.017804283859, 0.028831822603,
|
|
|
|
0.031516721560, 0.016148213510, -0.049360216968, -0.013066076204,
|
|
|
|
-0.064898201280, -0.078278264716, 0.016124765085, -0.053233851613,
|
|
|
|
-0.027059020039, -0.020218799933, -0.009050349394, -0.033569587196,
|
|
|
|
-0.042132015083, 0.000251197438, -0.053811865213, -0.039640214804,
|
|
|
|
0.023742972405, 0.023879197114, -0.118986800208, 0.039744853889,
|
|
|
|
-0.045265252571, 0.013168535188, -0.043820356299, -0.053525866676,
|
|
|
|
-0.010265946777, -0.011998203812, 0.036288912027, 0.002226328972,
|
|
|
|
0.038497478633, -0.018763787859, 0.018957051244, 0.047391681914,
|
|
|
|
0.033036730807, -0.082520390445, -0.074737248993, 0.012900421600,
|
|
|
|
0.028011611543, -0.041147517580, -0.094557012083, -0.070467310522,
|
|
|
|
-0.032350832458, -0.076083203264, 0.020344550900, -0.020073994561,
|
|
|
|
-0.105017114758, 0.005867652209, -0.048793158718, -0.045146293387,
|
|
|
|
-0.147806860705, -0.074039457679, -0.033949909024, -0.040118614411,
|
|
|
|
0.000770958192, 0.013855320722, -0.039607573304, 0.012498005512,
|
|
|
|
-0.006939340550, -0.007676876403, 0.017517467668, 0.025592362828,
|
|
|
|
-0.012876866768, 0.009012106697, -0.003325525307, -0.112945873134,
|
|
|
|
-0.096422462973, -0.016652526311, -0.027736961169, -0.097349792340,
|
|
|
|
-0.077344398908, -0.029444554003, -0.063144970299, -0.086112352963,
|
|
|
|
-0.037448279910, -0.081315033259, -0.056791429110, -0.010513051658,
|
|
|
|
-0.025575503893, -0.144508702026, -0.010663316073, -0.138925485323,
|
|
|
|
-0.085438889188, 0.021722897852, 0.035862835029, 0.027305567412,
|
|
|
|
0.015802250815, -0.084047102823, -0.036080683633, -0.072366115018,
|
|
|
|
-0.016489751149, 0.051195145070, 0.055596299374, 0.020721114696,
|
|
|
|
-0.074548858098, 0.015403465853, -0.028242572587, -0.061773150577,
|
|
|
|
0.008106071927, -0.045318487343, -0.072665986891, -0.039966131325,
|
|
|
|
0.046040594721, -0.048258013725, 0.018410098746, -0.011863940852,
|
|
|
|
0.004584252051, -0.174520547599, -0.046844101092, -0.126586175679,
|
|
|
|
-0.034129399731, -0.031862770863, 0.054300104094, -0.001207761279,
|
|
|
|
0.032582755464, 0.019720165339, 0.010909255480, -0.004294094553,
|
|
|
|
0.049161057941, -0.046629565228, 0.076675888506, -0.013905877106,
|
|
|
|
-0.068089983229, -0.034061588389, -0.030172648394, -0.045642555317,
|
|
|
|
-0.118287038999, -0.062835505789, -0.023000239293, 0.011670953926,
|
|
|
|
-0.114637955498, -0.049646458595, -0.031950203442, -0.100465627522,
|
|
|
|
-0.171144479310, -0.086456974325, 0.005187521028, -0.136724768858,
|
|
|
|
-0.006498474101, 0.104832433675, -0.013982731977, -0.009865169866,
|
|
|
|
-0.012308138596, -0.009259533193, -0.070090974300, -0.060135565555,
|
|
|
|
-0.008762920234, -0.017947562880, -0.008528248421, 0.016949338529,
|
|
|
|
-0.080045847612, -0.048199433852, 0.001151565315, -0.074554255431,
|
|
|
|
-0.003890588686, 0.180852777286, -0.033539407430, 0.030997566757,
|
|
|
|
0.031564605351, -0.036482591854, -0.080778175212, -0.149497735215,
|
|
|
|
0.201726261554, -0.051683467647, -0.010443240902, 0.049294071546,
|
|
|
|
-0.033631234141, 0.020930366639, 0.126257920978, -0.056636247562,
|
|
|
|
-0.008344450472, 0.093984023302, 0.060661781322, 0.001037366826,
|
|
|
|
0.025987019933, -0.104023239344, -0.030765776252, -0.066813748509,
|
|
|
|
-0.061760826686, -0.028151959372, 0.050643283828, -0.091476240751,
|
|
|
|
-0.021674289605, -0.012634923913, -0.057388008033, -0.127424095951,
|
|
|
|
-0.029311259297, -0.193633611365, -0.104603998849, 0.000392766036,
|
|
|
|
0.024054848967, -0.007730734800, -0.054411222446, -0.013372284452,
|
|
|
|
0.051652414019, -0.104272875526, -0.003170100981, 0.016385920170,
|
|
|
|
0.016157115952, 0.013401544933, -0.054558721496, -0.031782948351,
|
|
|
|
-0.097178250079, -0.040177337249, -0.006973538093, -0.064894000503,
|
|
|
|
-0.091341313860, -0.061170298368, -0.156608499653, -0.151261151107,
|
|
|
|
-0.064884240687, 0.178537508632, -0.108705687120, 0.003524304424,
|
|
|
|
-0.026938409322, 0.001751256110, 0.041003258290, -0.025367484612,
|
|
|
|
-0.005758421555, -0.087636153640, 0.003412004612, 0.014258788615,
|
|
|
|
-0.026574512015, 0.065100412835, 0.033114818387, -0.085128793699,
|
|
|
|
0.033834283989, -0.007307222382, -0.060262320907, -0.071021286830,
|
|
|
|
0.001553537663, -0.095208937254, -0.072717138812, -0.008095069994,
|
|
|
|
0.058992186260, 0.045300898293, 0.028111216733, 0.027733461346,
|
|
|
|
0.016883748700, 0.068534228905, 0.029051008074, 0.009568239785,
|
|
|
|
0.000951876245, -0.132517927694, -0.099951120813, 0.065130516865,
|
|
|
|
0.028701429533, -0.037605115499, 0.054201981662, 0.046251261300,
|
|
|
|
-0.054669824609, -0.041092087601, -0.161630656400, -0.103247311366,
|
|
|
|
-0.092132235763, 0.104494323063, 0.031369139118, -0.018441849253,
|
|
|
|
0.013159013263, 0.033017142162, -0.029751089274, -0.075874522084,
|
|
|
|
-0.018845381437, 0.013430361839, -0.067897165390, -0.073925924278,
|
|
|
|
-0.004501306631, 0.015306682849, -0.010098321739, -0.020321668764,
|
|
|
|
0.008407148473, -0.081682918831, -0.080692593418, -0.146994395110,
|
|
|
|
-0.082263977261, -0.168858893072, -0.064305106660, 0.005570719161,
|
|
|
|
-0.120565725934, 0.020801229776, 0.000952984479, -0.012695372644,
|
|
|
|
-0.040614948302, -0.019076926527, -0.000847676020, -0.023816721127,
|
|
|
|
-0.030737724221, -0.004551647167, 0.044721425895, 0.019894236634,
|
|
|
|
-0.031361530866, -0.005232302905, -0.041164745538, -0.077838095267,
|
|
|
|
0.026930086863, -0.086655099049, 0.047476787322, -0.012475036019,
|
|
|
|
-0.031821077418, 0.026801424962, -0.055203572301, 0.041224767276,
|
|
|
|
0.032241885267, -0.006881223703, 0.031465317805, 0.025327885583,
|
|
|
|
-0.107080718803, 0.032738798059, 0.041568036022, -0.018316787886,
|
|
|
|
0.034496648411, 0.093577775109, 0.012315336352, 0.012340133019,
|
|
|
|
-0.016037108414, -0.010201866245, 0.140630216760, 0.038073422711,
|
|
|
|
-0.045214015193, -0.012977453281, 0.027983694630, 0.009281741462,
|
|
|
|
0.070488137218, -0.054207442557, 0.029109486775, 0.054366064949,
|
|
|
|
-0.065254858837, 0.003205447585, -0.014330047914, -0.053989851192,
|
|
|
|
-0.100072479458, -0.057296669891, -0.169017710982, -0.075142982274,
|
|
|
|
-0.010992948401, -0.108967608514, 0.001595832047, 0.005204456245,
|
|
|
|
-0.006685476322, -0.014756992190, -0.009686263343, -0.004352954115,
|
|
|
|
-0.015522457066, 0.000179678964, -0.003989813028, 0.049785609216,
|
|
|
|
-0.036249107585, -0.003190580762, -0.067559995328, -0.113835906985,
|
|
|
|
-0.001649982396, 0.102498411295, -0.109275479710, -0.036655929029,
|
|
|
|
0.108810809138, -0.016820933613, -0.001625877159, 0.153036271967,
|
|
|
|
0.000271941090, 0.035327171961, 0.035980684636, 0.011238991165,
|
|
|
|
-0.019171168387, -0.021456961038, -0.087812945005, -0.100018592361,
|
|
|
|
-0.109065849603, 0.062029247441, -0.219136591898, -0.010692652949,
|
|
|
|
0.015056480429, -0.021507999684, 0.024755880313, -0.009440778801,
|
|
|
|
0.012423044125, -0.095945531533, 0.009020644349, -0.035355496473,
|
|
|
|
0.031827480685, -0.070860703486, -0.206637247393, -0.155403501830,
|
|
|
|
-0.179485839688, -0.187548612314, 0.003886995886, -0.013703150806,
|
|
|
|
0.000803974794, 0.002365524203, 0.080127679063, 0.030755526719,
|
|
|
|
0.048964118305, 0.026749257198, 0.016396989744, 0.088475720851,
|
|
|
|
-0.053913788203, -0.199728700757, -0.051725224519, -0.128257790360,
|
|
|
|
-0.028830383614, -0.159500962075, -0.013640779585, -0.016977746021,
|
|
|
|
0.007040711634, -0.035107408327, -0.029244230216, 0.005583554526,
|
|
|
|
-0.028170178519, -0.006038904525, -0.018647591281, -0.052244808004,
|
|
|
|
-0.015988862066, -0.016767711750, 0.047179147680, -0.031613465314,
|
|
|
|
0.082236758453, -0.010335508060, 0.008537534076, -0.031751024873,
|
|
|
|
-0.002069329496, 0.077650266221, 0.012608880222, 0.070251114609,
|
|
|
|
0.075002102822, -0.002995261915, -0.078942741615, 0.057856878787,
|
|
|
|
0.153430484567, 0.051558042113, -0.069189571793, -0.006914046025,
|
|
|
|
-0.215680623689, 0.025256394453, 0.043859782606, 0.001750740500,
|
|
|
|
0.029230558113, -0.046125890268, -0.025134970671, -0.020862016864,
|
|
|
|
0.010929066832, 0.007863683449, -0.083981330388, 0.041963402277,
|
|
|
|
-0.022412307272, 0.090580474781, 0.020051228823, 0.062968213032,
|
|
|
|
0.005707266912, 0.047467475139, 0.097563068857, 0.083167019386,
|
|
|
|
0.026752952531, 0.079635850095, -0.068390318576, -0.029565371105,
|
|
|
|
0.014255052975, 0.069262154841, 0.087730379014, 0.123778986279,
|
|
|
|
0.010099119378, -0.007654739242, -0.005542174957, 0.053077753355,
|
|
|
|
0.075026262765, -0.003774940341, -0.040023462142, 0.021045418641,
|
|
|
|
-0.026786136833, -0.013287394176, 0.040506083517, 0.013198475516,
|
|
|
|
-0.077731681385, -0.008523656573, -0.031691572766, -0.038457031052,
|
|
|
|
0.028666688385, 0.052397362325, 0.022568832943, -0.052426050966,
|
|
|
|
0.079952066788, 0.051294023843, -0.081081839206, 0.179119007880,
|
|
|
|
-0.018137760286, -0.007661618767, 0.002945755070, 0.048597405630,
|
|
|
|
0.031179691213, 0.030436816708, -0.042557440634, -0.003084028063,
|
|
|
|
-0.111980160770, -0.002839888114, 0.062186999524, -0.046313493804,
|
|
|
|
-0.036207354442, 0.058055631445, -0.051073587305, -0.021191938491,
|
|
|
|
-0.238232953617];
|
|
|
|
|
|
|
|
const INTERCEPT: f64 = 743.345708241252;
|
|
|
|
|
|
|
|
/// 虚评 1.3.1
|
|
|
|
|
|
|
|
#[cfg(feature = "simd")]
|
|
|
|
use std::simd::f64x64;
|
2024-03-03 13:47:42 +08:00
|
|
|
#[cfg(feature = "simd")]
|
|
|
|
use std::simd::num::SimdFloat;
|
2024-03-03 13:44:04 +08:00
|
|
|
|
|
|
|
use crate::name::Namer;
|
|
|
|
|
|
|
|
pub fn predict(name: &Namer) -> f64 {
|
|
|
|
let mut sum = INTERCEPT;
|
|
|
|
/*
|
|
|
|
memset(st + 8, 0, 35 * sizeof(int));
|
|
|
|
for (int i = 0; i < 16; i++)
|
|
|
|
if (context::freq[i]) st[context::skill[i] + 8] = context::freq[i]; */
|
|
|
|
// 长度取 64, 方便simd填充
|
|
|
|
let mut st: [f64; 64] = [0.0; 64];
|
|
|
|
for i in 0..7 {
|
|
|
|
st[i] = name.name_prop[i] as f64;
|
|
|
|
}
|
|
|
|
for i in 0..16 {
|
|
|
|
if name.skl_freq[i] != 0 {
|
|
|
|
st[name.skl_id[i] as usize + 8] = name.skl_freq[i] as f64;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
int cnt = 0;
|
|
|
|
|
|
|
|
for (int i = 0; i < 43; i++) {
|
|
|
|
pred += st[i] * model[cnt++];
|
|
|
|
}
|
|
|
|
|
|
|
|
for (int i = 0; i < 43; i++) {
|
|
|
|
for (int j = i; j < 43; j++) {
|
|
|
|
pred += st[i] * st[j] * model[cnt++];
|
|
|
|
}
|
|
|
|
} */
|
|
|
|
// use simd
|
|
|
|
#[cfg(feature = "simd")]
|
|
|
|
{
|
|
|
|
// 先准备数据
|
|
|
|
let mut target = [0_f64; 989];
|
|
|
|
target[0..43].copy_from_slice(&st[0..43]);
|
|
|
|
let mut k = 43;
|
|
|
|
// 43 * 43
|
|
|
|
for i in 0..43 {
|
|
|
|
for j in i..43 {
|
|
|
|
target[k] = st[i] * st[j];
|
|
|
|
k += 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 准备模型数据
|
|
|
|
let mut simds = MODULE.clone();
|
|
|
|
let simd_module = simds.as_simd_mut::<64>();
|
|
|
|
let simd_target = target.as_simd_mut::<64>();
|
|
|
|
// 前面多出来的
|
|
|
|
for i in 0..simd_module.0.len() {
|
|
|
|
sum += simd_module.0[i] * simd_target.0[i];
|
|
|
|
}
|
|
|
|
// 主! 体!
|
2024-03-03 13:47:42 +08:00
|
|
|
let mut tmp = f64x64::splat(0.0);
|
|
|
|
for i in 0..simd_module.1.len() {
|
|
|
|
tmp += simd_module.1[i] * simd_target.1[i];
|
|
|
|
}
|
|
|
|
sum += tmp.reduce_sum();
|
|
|
|
// 后面多出来的
|
|
|
|
for i in 0..simd_module.2.len() {
|
|
|
|
sum += simd_module.2[i] * simd_target.2[i];
|
|
|
|
}
|
2024-03-03 13:44:04 +08:00
|
|
|
}
|
|
|
|
#[cfg(not(feature = "simd"))]
|
|
|
|
{
|
|
|
|
let mut cnt = 0;
|
|
|
|
for i in 0..43 {
|
|
|
|
sum += st[i] * MODEL[cnt];
|
|
|
|
cnt += 1;
|
|
|
|
for j in i..43 {
|
|
|
|
sum += st[i] * st[j] * MODEL[cnt];
|
|
|
|
cnt += 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sum
|
|
|
|
}
|
|
|
|
|