// // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program. If not, see . //!DESC NNEDI3 (double_y, nns32, win8x6) //!HOOK LUMA //!BIND HOOKED //!SAVE nnedi3_int //!WHEN HOOKED.h OUTPUT.h / 0.833333 < float nnedi3(vec4 samples[12]) { float sum = 0.0, sumsq = 0.0; for (int i = 0; i < 12; i++) { sum += dot(samples[i], vec4(1.0)); sumsq += dot(samples[i], samples[i]); } float mstd0 = sum / 48.0; float mstd1 = sumsq / 48.0 - mstd0 * mstd0; float mstd2 = mix(0.0, inversesqrt(mstd1), mstd1 >= 1.192092896e-7); mstd1 *= mstd2; float vsum = 0.0, wsum = 0.0, sum1, sum2; #define T(x) intBitsToFloat(x) #define W(i,w0,w1,w2,w3) dot(samples[i],vec4(T(w0),T(w1),T(w2),T(w3))) #define WS(w0,w1) sum1 = exp(sum1 * mstd2 + T(w0)); sum2 = sum2 * mstd2 + T(w1); wsum += sum1; vsum += sum1*(sum2/(1.0+abs(sum2))); sum1=W(0,994153301,1016607238,-1132374181,-1120567290)+W(1,1021572063,-1137843051,992947237,-1139074345)+W(2,-1119615974,1000210819,-1125619459,-1117468940)+W(3,-1122316900,-1146864427,-1125130389,-1132591953)+W(4,-1096186409,1056444330,1046512564,1053527378)+W(5,-1121684346,-1129869365,-1138699933,-1144213939)+W(6,1031756856,1024055745,-1119806663,-1117911182)+W(7,1051252577,-1109040755,-1112059294,-1093298645)+W(8,979248533,-1119537890,1033651817,1023905988)+W(9,1003125923,1029429758,-1126690796,-1121091407)+W(10,-1148456803,-1113641375,-1110173889,-1120338466)+W(11,-1141776739,-1127458445,1032546877,-1133630411);sum2=W(0,1022573468,-1114028928,-1119263575,-1126549409)+W(1,-1114833146,1024108770,-1119708173,-1140490164)+W(2,1003196031,-1113990054,-1146392599,1021805248)+W(3,-1116443736,-1099458226,-1124834267,1019494412)+W(4,1037187519,1055452063,1055169273,1032492771)+W(5,1006796332,-1126677517,-1095922228,1026983682)+W(6,1017309436,-1118444706,-1122284082,1007192676)+W(7,-1106256028,-1112035826,1039787167,1044169825)+W(8,1022777176,-1130573089,-1118290710,-1122158651)+W(9,-1121042004,-1109973330,1010488320,-1127647730)+W(10,-1125070906,-1121131548,1044065299,-1145097543)+W(11,-1123455912,1019346120,-1121253833,-1129575364);WS(1060265584,1063714812); sum1=W(0,-1128788280,1022311347,-1123065753,1021450242)+W(1,1039397963,-1108349889,999728711,-1111111528)+W(2,1011253684,974355898,1022720848,-1131322533)+W(3,1028928107,-1140362288,1021294882,-1137050988)+W(4,1026074151,-1102959280,-1137639751,-1119265827)+W(5,-1136338948,1025863841,1043907075,1019796282)+W(6,1024570351,1035626828,1009531192,-1118036885)+W(7,1041760911,1036057270,-1106406289,-1101623708)+W(8,-1136816500,1027651305,-1132552740,-1151514983)+W(9,1025121435,1029327365,992320459,-1118665549)+W(10,1017790822,1037788386,-1106167682,-1128138578)+W(11,-1139070668,1024478285,-1134343810,-1124857459);sum2=W(0,-1130878336,1017938673,-1124053764,1023758242)+W(1,1027498838,1027873020,-1145138723,-1120671625)+W(2,-1131041230,-1127336921,-1122179044,-1144315403)+W(3,1028583936,1031015106,-1122894214,1000956747)+W(4,1053869854,1073183850,-1104963408,1005174931)+W(5,1009416925,1033668418,-1074622268,-1093535895)+W(6,994031846,999096115,1004424067,999883691)+W(7,1053107786,1035733703,-1126082311,1001047899)+W(8,990806038,992895974,-1114468554,-1094361386)+W(9,-1134395125,1005722235,1009546537,-1150041590)+W(10,1022225293,1023923178,-1135618057,1002728051)+W(11,-1131337021,-1138321549,-1126165581,-1123867271);WS(1067199072,981674447); sum1=W(0,-1105288827,-1113372949,1018794771,-1113726457)+W(1,1032552483,1040483381,-1099180638,1040785760)+W(2,-1139898486,-1127069135,-1114167068,-1124907206)+W(3,-1095136821,-1102105679,1008735750,-1115871564)+W(4,1054762461,1065065389,1052734745,1050678235)+W(5,-1118671794,1035770473,-1097429016,-1107257499)+W(6,-1103744656,-1108798620,-1125149117,-1125817867)+W(7,1044820043,-1097094388,1033282170,1044281884)+W(8,-1122788302,-1125646899,1027211226,-1104994292)+W(9,-1137689902,-1099284685,1016463803,1001830321)+W(10,1010644366,-1124668651,1032013917,-1121192922)+W(11,-1123221796,-1114483455,1015961570,-1114303237);sum2=W(0,1021627528,989560618,-1139313841,-1124538541)+W(1,1027300307,1011050585,1028695072,-1127440395)+W(2,-1130074937,1015498074,999023778,1020622605)+W(3,1014774531,1026431506,1010830983,-1119374292)+W(4,1052523334,1053318756,-1087762234,-1102978428)+W(5,-1126569197,-1128231773,1038687085,-1119874204)+W(6,-1118520012,1018739126,-1125616841,1020827626)+W(7,-1113197028,1034265115,-1109480314,1027251929)+W(8,1018969905,-1123965604,-1125820221,1029469191)+W(9,1014458179,-1129452021,-1136528497,1008596323)+W(10,-1134832277,1022117249,-1132845253,1023848922)+W(11,1024095771,-1130502215,-1150305989,-1159659466);WS(-1082327904,-1101742629); sum1=W(0,994965062,-1124051394,1007179909,-1128942355)+W(1,1027052286,-1119991818,1022855203,-1116531225)+W(2,1021969515,-1129777663,1015495233,-1127603958)+W(3,1029361427,1047686461,-1115398989,-1172666584)+W(4,-1110346311,-1106285700,-1095192109,1044526075)+W(5,1017142675,-1113404469,1037065627,1026992677)+W(6,1028067431,1025118144,-1126910957,-1145393643)+W(7,1043850022,1030498357,-1116394763,-1123739865)+W(8,-1130059467,1016457699,1013662917,-1119388383)+W(9,-1121058723,1018201755,-1127439210,-1153678686)+W(10,1032721886,1034890279,-1120454737,-1123838961)+W(11,-1131255799,1017348651,1021249778,-1119902562);sum2=W(0,-1130890464,-1137235679,-1131491186,1014279427)+W(1,1014973315,-1130557096,1024729347,-1129394348)+W(2,1004833335,-1141673719,-1150339726,-1152876382)+W(3,-1097554196,-1073378768,1042930837,1026571161)+W(4,1014221291,-1105375875,1073588633,1048952496)+W(5,-1159625756,-1124590261,1035354953,1016692910)+W(6,-1092458255,-1130245298,993445038,1025279833)+W(7,1016092170,-1119905200,1029166823,1053816664)+W(8,989537980,-1138326931,1027382919,-1129170378)+W(9,-1120075373,-1135266971,1014707171,-1133457551)+W(10,-1147013927,-1161525308,-1151431678,1030737081)+W(11,1017200998,1009604643,979085751,-1124802440);WS(1067891072,-1132872541); sum1=W(0,-1122834636,1020114356,1014334757,1025237873)+W(1,-1114151507,976917621,-1118569017,-1117007553)+W(2,984935338,-1152616053,1039451348,1031366707)+W(3,-1105197551,-1121917372,1029025473,1030238795)+W(4,-1088419628,1051488823,-1114461425,1049984500)+W(5,-1123762161,-1145922699,1008484089,1049092386)+W(6,1038150728,1024596920,-1121222990,1007260181)+W(7,1053317187,987986858,1039495098,-1084792932)+W(8,1012164149,1000937675,-1131993235,-1122288663)+W(9,1024170379,1015271403,-1123834925,988616634)+W(10,1026119523,993078101,1027254009,-1124531763)+W(11,1011615629,1004174827,999667975,1022258228);sum2=W(0,-1116760996,1019759527,-1136232721,-1144599930)+W(1,1032901632,1027655943,-1125055029,1032730282)+W(2,-1129170670,-1131155477,1005941018,985378521)+W(3,-1111064134,1041961890,-1128645029,-1137221455)+W(4,-1115058011,-1130649513,1050767412,1047170030)+W(5,-1129924333,1022276751,1019394239,-1129460922)+W(6,1036336113,1033905549,-1156748756,-1151231836)+W(7,-1116185015,-1105887613,-1120368706,-1093680614)+W(8,-1148456898,1015791177,1024734935,-1115704458)+W(9,1022489781,-1122711401,1020235585,-1160295481)+W(10,1012694293,-1122854992,-1132924343,-1115425401)+W(11,-1140100033,1012472897,1018590227,-1147415538);WS(1059709408,1024973287); sum1=W(0,996494647,-1122880609,1004611460,-1126012593)+W(1,1028092109,-1114579692,1030391200,-1119189544)+W(2,1023428420,-1127475101,1016065247,-1124577204)+W(3,1020165829,1049657976,-1114032340,-1134152138)+W(4,-1111968183,-1106474499,-1094041084,1046947367)+W(5,1021721777,-1114564220,1040268033,1002304420)+W(6,1014735450,1032225804,-1126017195,-1131432537)+W(7,1044458845,1030371012,-1112475533,1018380112)+W(8,-1128430825,1019190017,1023640576,-1114168306)+W(9,-1115613273,1022764985,-1124178504,991561039)+W(10,1033263557,1034006830,-1122300512,-1123292160)+W(11,-1127717781,1017178441,1017080432,-1119951545);sum2=W(0,1024962708,-1143341847,1011909323,-1125800395)+W(1,-1122338700,1018807292,-1144213999,1023886172)+W(2,973576887,984068764,1000330119,-1171853367)+W(3,1052819438,1076690943,-1103527255,-1116511680)+W(4,-1115186882,-1098249874,-1072687587,-1097320166)+W(5,1001426319,1007326739,1023038428,-1140479659)+W(6,1057154431,990717342,-1148349175,-1120293374)+W(7,-1117298851,1010582795,1012280135,-1091630497)+W(8,-1135413483,1008233815,-1122270538,1029135274)+W(9,1025045202,1023577182,-1125483347,1015270352)+W(10,990164302,-1125194137,1016249338,-1118805022)+W(11,-1129534965,-1140102471,1003973863,1020995472);WS(1066253200,1009489111); sum1=W(0,-1102592607,-1107707469,1024085178,-1121073890)+W(1,1033075644,-1107162241,1026388586,1041243549)+W(2,-1130535196,-1145989825,1004872905,-1123366116)+W(3,-1106598971,-1116780301,1023275236,-1130104696)+W(4,1050587318,1057262167,1049328440,-1121496677)+W(5,-1120961954,1023066500,-1116780079,-1113976447)+W(6,-1111680448,1032050668,-1135799996,-1128214764)+W(7,1027096831,1040843700,-1096674093,1018012708)+W(8,-1121521086,1008378152,1015552212,-1113850464)+W(9,-1131519352,1028096678,-1121776782,-1141685621)+W(10,1028580820,-1117086438,-1101864235,-1122519370)+W(11,-1124335656,-1135644600,1040749648,-1123000331);sum2=W(0,-1106333857,-1121647283,-1117172679,1013104936)+W(1,-1143812784,-1098323478,1046293466,1041445982)+W(2,-1153458272,-1123006845,1025469214,-1111423698)+W(3,1031691189,1030458550,-1135146700,-1127525498)+W(4,1032669672,1016608418,1051999059,1054977467)+W(5,1018478818,-1111394764,1041509878,-1110723238)+W(6,-1111791784,1009508096,1027187072,-1122718205)+W(7,-1093831562,1044831040,-1099681845,1044523088)+W(8,-1127833490,-1140396324,-1110045970,1024902469)+W(9,-1127767754,1037784205,-1128814570,-1119344027)+W(10,-1117227205,-1118967703,-1107269301,-1185033988)+W(11,-1129041118,1021194206,-1121987113,-1129401382);WS(1055988095,1068562120); sum1=W(0,1041692938,1036197410,-1130996743,1025054956)+W(1,-1141880069,1043619883,1032351834,1040251631)+W(2,1011769695,1020511427,1002392085,-1113980711)+W(3,1042434277,1039706891,1026193148,1024941510)+W(4,1026325313,-1087193164,-1093055992,-1100356972)+W(5,-1124414423,-1163338101,1032223740,1040781794)+W(6,1036807045,1029783554,1028839961,1035977616)+W(7,-1087410536,-1097265155,1043491547,1047058383)+W(8,1015241743,-1129538215,1027612260,1047196369)+W(9,1019008523,1026886128,1025665319,1016648336)+W(10,-1104034167,-1099060796,1048991774,1044781893)+W(11,1018634427,-1180507092,-1113322870,1036828166);sum2=W(0,-1098330057,-1121926087,-1119308996,-1109623534)+W(1,-1105318233,-1111281216,1045894429,1051762285)+W(2,1036873688,-1152598618,1002875661,-1120494292)+W(3,1031129408,-1111457821,-1107757858,-1108667787)+W(4,-1116694436,-1103134861,1060518836,1029096148)+W(5,-1117793653,1023528108,-1104320409,1042501069)+W(6,-1091241820,-1092220222,-1144042093,-1126585969)+W(7,1017373783,1034184394,-1120268316,1065480819)+W(8,-1117516356,-1123122827,-1131983911,1041202422)+W(9,-1112242725,-1104308532,1024608852,1004201965)+W(10,-1129342463,-1134873838,-1105721536,1035423856)+W(11,-1131565835,1015347387,1017105251,1023586732);WS(-1073915832,-1098883962); sum1=W(0,1024626915,1032898976,-1131602112,1030932360)+W(1,-1130380922,-1103847418,-1117814224,-1098288699)+W(2,1021355752,-1120290302,1040490540,1033018229)+W(3,-1122370130,1011274315,1018154928,-1125999684)+W(4,-1096397881,-1105327485,-1106175819,1056014501)+W(5,-1131922448,-1139369119,1044317365,1031863906)+W(6,-1113904235,1029902191,-1122315861,-1122265980)+W(7,1059753579,1040451325,-1115232133,-1097956311)+W(8,-1121102372,1033247800,-1122968848,-1098424101)+W(9,-1115348785,-1111387910,-1120663220,1018577993)+W(10,1039068637,1042824131,1017122848,-1126206816)+W(11,-1121007738,-1143567007,1021433455,-1136273729);sum2=W(0,1046909717,1025514844,-1126395193,-1118315643)+W(1,-1129801877,1030594060,-1112473945,-1100980148)+W(2,1010610423,-1135186433,-1111527676,-1122172234)+W(3,1026986728,-1112879553,-1138413531,1014636591)+W(4,-1101816290,-1094641835,1027746798,1040985677)+W(5,1030475382,-1121095046,1027030278,1023795758)+W(6,-1122377333,-1114813410,-1129252552,1013622247)+W(7,1041324898,-1106485598,1057006779,1051150943)+W(8,1015864126,999966259,-1133454616,-1113671456)+W(9,-1144089687,-1140190295,-1131632742,-1122713894)+W(10,-1115757412,1016695560,1035155819,-1138866101)+W(11,-1127643580,-1124292419,-1139893847,1001347783);WS(1058139200,1067005003); sum1=W(0,-1103206155,-1112832909,-1128484819,-1131277347)+W(1,1048238354,1044526364,-1111332237,1015263811)+W(2,-1122297405,-1124214159,-1104751670,-1106607621)+W(3,-1108301118,-1111811582,-1112913457,1014594990)+W(4,1056580635,-1114379264,1031432468,1004409248)+W(5,1017238947,-1110162105,-1107787999,-1107635783)+W(6,-1113179152,-1100757638,-1118434446,1028891109)+W(7,1025802539,-1104236495,1053177162,1057408386)+W(8,1002560364,-1113724157,-1114959053,1020725062)+W(9,-1116265771,-1119227733,-1151139539,-1125459884)+W(10,-1124751623,-1121289813,1052437131,1035803645)+W(11,-1123244163,-1115210511,-1120069105,-1129296244);sum2=W(0,1023292260,-1124268922,1016432775,-1121057595)+W(1,1035766063,-1118389960,1029388268,-1111891368)+W(2,-1122161823,1028529468,-1122510207,1032208606)+W(3,-1116199054,-1110795130,1031151061,-1112629457)+W(4,1033023394,1054507013,1054055516,-1123843875)+W(5,-1118001871,1026811027,1019595258,-1113138713)+W(6,-1103006120,-1134369449,1021228732,-1126819952)+W(7,-1104664187,-1121918429,-1135412321,1020478730)+W(8,-1116707921,1018790016,1023542227,-1114598707)+W(9,-1120667087,1016333862,-1127402608,1009585899)+W(10,982538191,-1108029597,996548072,993043492)+W(11,-1146185904,-1152045912,-1129671373,993709924);WS(-1091835967,1038509097); sum1=W(0,1041562959,1038000620,1031236696,1002958335)+W(1,-1093861855,-1100002304,1029288008,-1124369824)+W(2,-1132073944,1032364667,1038306915,1039801017)+W(3,1042029266,1034473413,1034973544,-1122124314)+W(4,-1087002164,1052741396,1049571184,-1104824881)+W(5,-1122032128,1036587856,1041619283,1037725118)+W(6,1040514695,1042048878,1015820538,-1120202292)+W(7,1044570703,1042398171,-1089426268,-1089024373)+W(8,-1138629744,1010685600,1038671876,1031782758)+W(9,1029242778,1042898689,-1121967836,1033636218)+W(10,1023923250,1030369604,-1091407169,-1107643796)+W(11,1027566834,-1153060031,1043274836,1025678032);sum2=W(0,-1110538641,1023566599,1013192458,1016791821)+W(1,1045544748,1029704719,-1113846927,-1114409767)+W(2,-1127655665,1012727082,-1125617069,-1111278622)+W(3,1000152052,-1112636904,1015528749,-1123883287)+W(4,1034122997,1054056541,1054155729,-1109610416)+W(5,-1131212885,1000573476,-1108588248,-1110039103)+W(6,-1116367667,-1130121037,-1132736674,-1131825297)+W(7,1030522539,-1116026974,1016394661,-1109117303)+W(8,-1123699129,-1126704253,-1135451026,-1132906850)+W(9,-1114305335,1033496981,-1117749640,1019880949)+W(10,992430312,-1107824982,-1157815185,1030290683)+W(11,988228497,-1123545619,1016739853,-1134728538);WS(-1089794384,1053743764); sum1=W(0,-1124062435,-1123589329,1022034304,977181200)+W(1,-1096122984,-1100185218,1045687772,1045792382)+W(2,-1146772642,1022712508,1029423919,1035356461)+W(3,1008939465,967031199,-1173982736,999195154)+W(4,-1089534650,-1128424615,1051096635,1043214811)+W(5,986801416,1009586465,-1130937578,1037071922)+W(6,1031201254,1038421055,-1117753925,-1131079992)+W(7,1022835035,1033659882,-1104815387,-1106608558)+W(8,1012941585,1008485953,-1112564552,1033635179)+W(9,1023184516,1042888267,-1131210280,1011212627)+W(10,1025453978,-1114474998,-1113606040,975115280)+W(11,1023442138,1020831720,-1115626236,-1148354182);sum2=W(0,1038582018,-1136865390,-1152866061,1025756371)+W(1,-1097242729,-1108446917,1027392563,-1095235720)+W(2,-1145714840,1022755591,1009460859,1048188946)+W(3,1028991375,-1102180290,1021941035,1022411083)+W(4,-1092586393,1055770556,1062263751,-1094985700)+W(5,1033471029,1018658879,-1098658877,1013992713)+W(6,-1127151005,-1103213990,-1162131898,1018807869)+W(7,1024429444,1045256871,1032099771,1023141397)+W(8,1032105067,-1135748387,-1104388978,-1162587434)+W(9,-1148467374,-1101731450,-1117519259,1030478695)+W(10,-1115314196,1044538365,1050734432,-1139645537)+W(11,1008760659,1019361371,-1097902791,1033707193);WS(-1092258911,-1089815334); sum1=W(0,1045821685,1034203057,-1147044493,-1139634407)+W(1,1034361159,1051668019,1015718019,-1119357002)+W(2,-1130196683,1023465264,-1115826689,-1137425069)+W(3,1044613801,1035729090,-1130890003,1017866535)+W(4,1032636456,-1086460492,-1090722234,-1104936487)+W(5,1015877619,-1117806874,1010439579,1035725147)+W(6,1029847032,-1102281888,1016637069,1027130446)+W(7,-1094763749,-1095562645,1057948020,1052628837)+W(8,1025832214,-1123952546,-1114240161,1043916211)+W(9,-1131657511,-1121093118,1026913637,1016500860)+W(10,-1106362539,-1098187032,1053191568,1044884520)+W(11,1029577644,1011300119,-1102258214,1035145793);sum2=W(0,-1113670137,1024378351,1012757410,-1128703433)+W(1,1040684472,-1100043210,-1102109659,1038503213)+W(2,993905065,1003273444,1026887817,-1099552212)+W(3,-1111552612,-1131966925,1023396449,1007787634)+W(4,1041989415,1066879681,1061982310,1041322248)+W(5,-1144755940,1019447753,-1107386978,-1104965070)+W(6,-1114649634,1040107467,1012244530,1017560605)+W(7,-1101238360,-1089047102,-1098175974,-1104769108)+W(8,1019550873,1024790159,1016563929,-1104448348)+W(9,-1122758108,1032092801,1024938353,-1143125556)+W(10,1023979343,-1100231891,-1105089779,1026757617)+W(11,-1138003290,1014825186,1036400101,-1107880053);WS(-1086002512,-1084928660); sum1=W(0,-1115340892,-1113717074,1017039401,-1131929465)+W(1,-1103148388,1010821235,1042912513,1050776738)+W(2,-1130358353,-1122997746,-1128281895,-1143173743)+W(3,-1102662114,-1097984585,-1134499377,1020173741)+W(4,-1104889757,1049797700,1055825787,1053707114)+W(5,-1139775729,-1117617116,-1098746549,-1111952748)+W(6,999020755,-1114393442,-1138890277,-1129468257)+W(7,1042555580,1041826234,1033511359,-1108349590)+W(8,1014563169,1010736529,-1103706929,-1106170922)+W(9,1028151894,-1132982017,-1143488833,-1132813939)+W(10,1032548919,1041074464,-1138015505,-1108075378)+W(11,-1137959865,-1123442568,-1110410462,-1127274842);sum2=W(0,-1118205558,1029900308,-1126633986,1000102260)+W(1,1041999613,1037162912,1063980475,1051204856)+W(2,1019347314,-1137379540,-1134402620,-1135930364)+W(3,-1140439712,1041420529,-1119827470,-1144291760)+W(4,-1167793729,-1085093765,-1075398805,1066576503)+W(5,1012525172,-1123883092,-1133429672,1020225891)+W(6,979974721,1006017080,1023762781,1016232493)+W(7,1017117707,1033481679,-1114660078,-1098954833)+W(8,-1139078108,990744512,1018587503,1028764817)+W(9,-1137204884,1002898232,1025293286,-1141218312)+W(10,-1137323924,1002077480,-1117648930,1021034547)+W(11,-1137103964,1022792204,1026769102,-1132685152);WS(-1084377664,1027078466); sum1=W(0,1023875764,1032239673,-1129675619,1028609881)+W(1,1031700430,1026119482,-1114746833,-1113303893)+W(2,1025866053,1016759071,-1122216064,-1138486380)+W(3,1043647401,1024809124,1010908070,1022038247)+W(4,1051850662,-1104988345,-1156932707,-1084547118)+W(5,1032834541,1029398137,1033025459,-1132199979)+W(6,-1131519215,-1128260416,1030113110,1026611885)+W(7,-1083734174,1027361605,1047159719,1050946557)+W(8,1007914454,1021351811,1018468419,1043104191)+W(9,1026951667,-1115829469,1031201461,-1132403564)+W(10,-1111325382,1042797655,1037768177,1020650755)+W(11,1014779182,1018395723,-1108759836,1014159432);sum2=W(0,1034590473,-1139997869,-1139192721,-1123315648)+W(1,1030314237,-1112534256,969235347,1026150549)+W(2,1014056813,-1132289868,-1158492453,-1113579452)+W(3,-1115134908,1008365317,1030816333,-1123875414)+W(4,1037120039,1027803789,1046059603,1042477897)+W(5,1018097190,1032146261,1032895251,-1098184684)+W(6,-1110803030,1028786615,1016532474,-1123326315)+W(7,-1102080708,-1135183209,-1122978967,-1155992274)+W(8,-1114996104,1011346781,1047700729,-1126452160)+W(9,1004595129,1015409534,-1131093304,-1130303816)+W(10,-1120008811,-1109468455,-1111529432,-1119026545)+W(11,-1115756663,-1122411639,1047312851,999072441);WS(1043014014,-1087744322); sum1=W(0,-1123526530,-1138321214,1020523582,1027952711)+W(1,1035059438,-1120526792,1022379422,1008337244)+W(2,1026995059,-1156487121,1037330895,-1116610857)+W(3,-1110182129,1032339433,1021435438,1002118409)+W(4,-1086364127,-1118604170,-1110004232,1057818171)+W(5,1009757724,-1153254001,1040846837,1040407761)+W(6,1035386835,-1137297015,1003104545,-1138414444)+W(7,1057062103,1036507098,1007303460,-1083267015)+W(8,1021783366,1034169880,-1128420830,-1107059287)+W(9,-1119534945,-1108462406,1013303243,1021955143)+W(10,1038869533,1036993862,1036022088,-1115695919)+W(11,-1138765796,1027514579,-1142792885,1017909759);sum2=W(0,-1117738234,-1131091573,-1156092221,-1129567658)+W(1,1030957051,-1118479197,-1128107850,1034622765)+W(2,-1132249217,969559787,1005860107,1029443337)+W(3,-1115037144,-1115010115,1008715269,-1123579911)+W(4,1041246295,1054490255,1050631618,1017778197)+W(5,-1132354551,1024782459,-1157251077,-1110926783)+W(6,-1101087826,1015586863,1026524337,-1125160256)+W(7,-1117275788,1025836507,-1095615964,1045062017)+W(8,998415619,1012990901,1020928095,-1108959270)+W(9,-1113332277,1019720419,1017463077,-1137738801)+W(10,1027688491,-1120912313,-1101223712,1020345131)+W(11,-1161032699,1011300789,983922363,-1122972204);WS(1054959103,-1083836992); sum1=W(0,1023853723,-1118146184,-1132171248,-1144415487)+W(1,-1121737045,-1123041056,1018672592,-1123173616)+W(2,1017937944,-1131928876,-1120856711,-1124541667)+W(3,1039313221,-1107434917,980216825,-1133053416)+W(4,-1161038260,1053211380,1057912142,-1090265426)+W(5,1027902624,-1129566080,-1109871174,1034290206)+W(6,1027331294,-1111685883,1017404666,1018609320)+W(7,-1089253699,1036559366,1046306952,1044087220)+W(8,-1121689404,1010241568,-1113560292,1040602782)+W(9,-1129432820,-1126004808,-1154920122,-1127349353)+W(10,-1110305609,1035028498,1039769364,-1133031712)+W(11,-1124796708,-1127304152,-1109624712,-1148202051);sum2=W(0,-1110884586,-1129406227,-1139755941,1018338338)+W(1,1026570078,1021052542,-1118232763,-1136808221)+W(2,-1120452457,1004896115,1020321772,-1136194357)+W(3,-1108237236,1037408540,-1122001203,1025801614)+W(4,-1114736489,1041519115,-1113269344,-1115176435)+W(5,-1119060361,-1107310106,1046652366,1048907220)+W(6,1040327756,-1123391437,-1132321439,1010171613)+W(7,1047951095,-1115014721,-1110685464,-1105808410)+W(8,1033649944,-1126977687,-1111631696,1035402835)+W(9,-1129086463,-1132299663,1013259501,1016232007)+W(10,-1113536502,-1123780081,1021765462,-1168436052)+W(11,1026056519,1027695361,-1102273277,1026410761);WS(1057903600,1067139767); sum1=W(0,-1107061793,-1111029392,1012511358,-1130009103)+W(1,-1102099951,992918145,1028125200,1043136838)+W(2,-1123992244,-1145160172,-1117969679,-1115498357)+W(3,-1104154592,-1103367501,-1124300975,-1137761926)+W(4,-1106189879,1050079197,1060113955,1051222763)+W(5,-1125356943,-1117739880,-1108729546,-1104467697)+W(6,1009980758,-1113394087,-1117250069,1008012526)+W(7,1048697267,1034440698,1016245011,1024983063)+W(8,-1165450354,-1114615608,-1104780916,-1111781863)+W(9,1026647906,-1114684710,-1115259538,-1162310274)+W(10,1041096574,1041574755,1025498192,-1117690736)+W(11,-1139440358,-1118506516,-1120787335,-1117169584);sum2=W(0,1038855085,-1131692032,-1120699406,1011962608)+W(1,-1126451804,-1110442893,-1112627842,-1122245118)+W(2,1026864717,-1123527836,1008646548,-1106947014)+W(3,1038467393,-1112343444,1026799984,1007214128)+W(4,1042136464,1054959792,-1106597578,-1122221782)+W(5,999106843,1011333214,-1109079281,-1113116412)+W(6,-1113849522,-1138735380,1029224075,-1145867047)+W(7,1031831390,1046305460,-1114988845,1026356645)+W(8,-1117815384,1032922020,-1109725169,-1109881757)+W(9,-1120001434,-1118784264,1022659583,-1116434980)+W(10,1008343524,1047204017,-1123194990,1020413259)+W(11,-1119479700,1000599735,-1114571313,-1123390380);WS(-1101058110,1058505899); sum1=W(0,-1123852394,-1112299044,1015324303,1008909245)+W(1,1024016996,-1124723744,992056181,1037579744)+W(2,1022516663,-1130344395,-1131134189,-1121096497)+W(3,-1128516275,-1102217815,-1139701245,-1151491221)+W(4,1056678303,1021619781,1045087960,-1098678002)+W(5,1021039583,-1132041247,-1098726544,-1109419958)+W(6,-1104833467,-1113648843,1031005836,1009250957)+W(7,-1095085849,1041104615,1036986521,1058072040)+W(8,-1140161581,1026848535,-1121889031,-1109643932)+W(9,-1119585353,-1121962739,1009310828,-1131857944)+W(10,-1129179587,1025292595,1032839164,1024521495)+W(11,-1125244995,1005622747,1017031326,-1127292144);sum2=W(0,1023078017,-1140746852,1017011277,992821683)+W(1,-1112719649,1034266306,-1139829185,1023704638)+W(2,1021903376,1016759855,-1119668356,1027637582)+W(3,959773689,-1112338116,999390943,1011814063)+W(4,1032357888,1057654961,-1113377165,-1107874815)+W(5,1034398452,1051594315,-1086342498,-1113625790)+W(6,1035095219,1024063493,-1128713872,-1121326865)+W(7,1012152366,-1122811174,1033653422,-1108229047)+W(8,1035110699,1031049449,-1136544465,-1101720659)+W(9,1023948090,1032024680,-1138094133,-1144442308)+W(10,1020168485,-1113617432,-1140161389,-1133039950)+W(11,1018271190,1021410443,1019370668,-1121720102);WS(-1098338111,1023498750); sum1=W(0,-1121510465,-1112416999,1022617405,-1138701849)+W(1,1010706669,-1110248019,1041395124,1040383254)+W(2,1021863397,1016227961,1020223099,-1149170878)+W(3,-1180399652,1037491593,989875557,-1168316434)+W(4,1058209828,-1095385553,-1094988553,-1097293461)+W(5,1018489101,1021609037,984962665,-1106291545)+W(6,-1102495433,-1121884733,1028694643,1014043241)+W(7,-1097437690,1046085501,-1118903112,1059563452)+W(8,-1145092370,1026243438,-1122110350,-1119747464)+W(9,-1122132512,1036415429,-1123740578,1012653195)+W(10,-1130301425,-1128488725,-1126796061,1027507886)+W(11,992349061,-1164474953,989067449,-1123237039);sum2=W(0,1029420636,1036981221,-1120898035,-1164068108)+W(1,-1110964317,-1141413971,-1106651210,-1112077059)+W(2,-1148255859,-1129246253,1028557670,1028276360)+W(3,1035658823,1039879187,972583599,1013829433)+W(4,1035230257,1044568046,-1108370344,-1106432341)+W(5,-1131530425,-1126980980,1026800348,1017251513)+W(6,-1102894380,-1128781606,-1128855117,1016837545)+W(7,1041920264,-1110600858,1035930993,1027609202)+W(8,-1121785123,-1124361549,1023713154,-1124056839)+W(9,1013125305,1008550341,-1130000643,-1120505887)+W(10,-1125837008,1019426133,1017927697,1026372950)+W(11,1009116645,-1127748642,-1129712212,-1132458450);WS(1064075168,-1085260633); sum1=W(0,-1104011171,-1113516590,1004279127,1020097830)+W(1,1034297780,-1106861493,1036855277,1041894009)+W(2,-1138151419,-1151789197,1031661466,-1113914242)+W(3,-1103036207,-1102348791,1026532451,1028112237)+W(4,-1112331770,1058153819,1027716980,1045116105)+W(5,-1129921062,1026370483,-1100287056,1017072798)+W(6,-1120389361,1038928889,-1130706656,961537748)+W(7,1043898973,1048347472,-1096709211,-1096376936)+W(8,1025128111,-1140511211,1032287909,-1119328440)+W(9,-1129088474,1031068695,994604265,-1135275149)+W(10,-1164071066,-1118081687,-1102472071,996846509)+W(11,-1167790389,-1140610427,1040008649,1019059671);sum2=W(0,1033869831,-1133342724,-1138053524,1014633478)+W(1,-1111281510,-1128243618,-1126366588,-1114935893)+W(2,990649086,996067150,-1145483991,1016908923)+W(3,1003291347,1033872317,-1120104172,-1140130516)+W(4,-1107071420,-1084734921,-1086850225,1043822142)+W(5,1012165262,-1119271334,1045857736,1006526455)+W(6,1006625651,-1121932314,-1123853902,1012698026)+W(7,1067004758,1046081705,1040015383,1030145358)+W(8,-1129772456,-1144422823,-1118176982,1020093203)+W(9,1004319943,975983930,-1133638700,1013120742)+W(10,1002809783,1031930717,1028724356,-1150276254)+W(11,-1141799647,-1143148999,-1104669476,-1161820989);WS(-1102756414,-1120030182); sum1=W(0,-1102767115,-1115971707,1007304745,-1114857721)+W(1,-1124210446,1028311347,-1101676399,1043961809)+W(2,-1120413918,-1125847632,-1113057893,-1117667780)+W(3,-1095987354,-1101194087,-1135708169,-1113282502)+W(4,1046261656,1068133511,1065521342,1053600405)+W(5,-1114932345,1027169042,-1095174540,-1103902228)+W(6,-1099422340,-1109693396,-1115825727,-1130226572)+W(7,1042816511,-1098872988,997946179,1046696200)+W(8,-1125196828,-1114420141,1020822452,-1101926052)+W(9,-1122657804,-1100198174,-1136250680,-1142173365)+W(10,-1133742993,-1113205915,1025742970,-1112668237)+W(11,-1121096548,-1110338975,-1140085511,-1113901869);sum2=W(0,-1119384349,-1117046041,-1126993785,1022430051)+W(1,1011315171,-1106680506,1014745875,-1127804673)+W(2,1009328259,-1125156477,1009189211,-1121146859)+W(3,-1113440146,-1099757367,-1136699515,1027244407)+W(4,1020590601,1034863647,1065124465,-1129639049)+W(5,1000906166,1017063165,-1111752578,-1115604020)+W(6,1038214736,-1152620459,1024283610,-1115987625)+W(7,1035633573,-1116743921,-1130768777,-1113943514)+W(8,-1117062841,1024425511,-1120130033,-1124061319)+W(9,1013074835,1015902709,-1137060371,-1120680273)+W(10,-1127682237,1012706011,-1112590762,-1113854522)+W(11,-1119191933,1024105421,-1113078716,-1148961286);WS(-1077988040,-1098609713); sum1=W(0,1040202093,1027276515,1002836371,1020152245)+W(1,-1104283732,-1105856183,1037438449,-1114910389)+W(2,-1125387021,1013826369,1028081393,1039298438)+W(3,1049452385,1032875267,1010566313,-1132015209)+W(4,-1098108347,-1102427678,1030654167,-1100627367)+W(5,1018674229,1017725301,-1131705423,1024125142)+W(6,1036663212,1034908465,1020486319,1010053945)+W(7,-1104090280,1048934265,-1095852652,-1113362709)+W(8,-1141124531,1015682181,1019783717,1042947115)+W(9,-1114877050,1038229775,-1132252076,1030571159)+W(10,-1126406169,-1138504825,-1105166249,1025947458)+W(11,1006527587,1016700365,1035155325,1021770278);sum2=W(0,-1132626695,-1138132903,-1139598567,-1142267837)+W(1,1039691642,-1110747637,1033876712,1023852808)+W(2,-1147709133,-1155304986,-1127924867,-1114839167)+W(3,-1131100139,1032537913,1008554815,967895252)+W(4,1061640184,1037101696,-1095058264,1012220303)+W(5,-1121532798,992067354,1049832068,-1122160974)+W(6,-1112410791,1023361695,1024473654,-1145406733)+W(7,-1091888991,-1161200181,-1104029741,-1110252153)+W(8,-1128735955,1025251228,-1126050715,1027903240)+W(9,-1130141475,1015868043,1020245499,-1120792990)+W(10,-1119701362,977066218,-1196949327,1031843465)+W(11,-1157362170,1009680879,-1118663498,-1132864167);WS(1050097375,-1144620389); sum1=W(0,1044211901,1033637193,1011057731,-1128715377)+W(1,-1104047251,1028225817,1022227585,-1107032850)+W(2,-1128884681,1011579579,1008625791,1044522647)+W(3,1048874276,1034983634,1019193873,-1134438475)+W(4,-1092741994,1036584266,-1114392598,-1096643663)+W(5,1018667761,1025301657,-1113959235,1044273989)+W(6,1042543166,1017343103,1009602711,1022275225)+W(7,1025153498,1028276325,-1097617495,-1092702793)+W(8,1024565397,-1123355105,1041046056,1042105869)+W(9,-1149239594,1037918654,-1136253330,1032927683)+W(10,-1142331733,-1118553533,-1097624368,-1139445891)+W(11,1027058603,1015982985,1045159742,1025445761);sum2=W(0,1033296420,-1128383915,-1172679141,-1125113091)+W(1,-1102915066,1037338868,1016688407,1004274749)+W(2,1017918867,991135609,-1144981581,1028147108)+W(3,1019343075,1031861037,-1126905475,-1152889753)+W(4,-1089888071,-1090194983,-1097163724,-1103752812)+W(5,1022111055,-1117974458,-1121675098,1030353331)+W(6,1038268779,-1113645001,-1117488938,1006649294)+W(7,1041005261,-1118523722,1051715314,1062746712)+W(8,1026630548,-1115156997,1006661278,1019962267)+W(9,1028739248,-1120621430,-1172252645,1019337735)+W(10,1027501384,-1154227385,1035778038,-1124587947)+W(11,1018829507,-1136345798,1013440998,1023891692);WS(-1098112447,-1125216946); sum1=W(0,-1112042689,-1119953952,1006322176,1010417568)+W(1,1041397655,1018267345,-1112614584,1004161984)+W(2,1021110568,-1137912440,1024614191,-1114418485)+W(3,-1116450322,-1112784281,1017991280,-1140685064)+W(4,1058507679,1050855349,-1113885864,-1090400895)+W(5,-1127130192,1019594896,1027345269,-1104618697)+W(6,-1105219289,1023451023,-1146614696,-1126853432)+W(7,-1097135921,-1122997076,-1126136276,1051228911)+W(8,-1116355204,987030015,1039454784,1037685358)+W(9,-1153582112,-1110071894,1019294567,1004323364)+W(10,-1149231824,1012208560,983864831,1016683168)+W(11,988441407,-1149650752,1030420791,-1140802306);sum2=W(0,-1152950404,1010887850,-1134943159,1035141604)+W(1,-1104792229,-1119115361,1025641276,-1100547860)+W(2,-1138078871,1016878804,1021611837,1037875812)+W(3,-1122370025,-1101926585,-1120750640,1031353634)+W(4,-1100366049,1042205116,1057546844,-1101375945)+W(5,1015482099,-1140091328,-1109199537,1015511489)+W(6,-1104605825,1035852377,-1114509439,1025254666)+W(7,1042952063,1039483674,-1108641700,1048526282)+W(8,1032201266,-1132053601,-1109299079,-1105787312)+W(9,-1114959163,-1148680422,-1113538005,1028756554)+W(10,1030776026,1041006229,1037895648,1033576762)+W(11,1007578680,-1124574444,-1107406256,-1143994351);WS(1027823864,1049081066); sum1=W(0,1045092167,1032126573,-1130128499,1012131718)+W(1,1031292119,1050389010,-1127539283,-1108779609)+W(2,-1123848398,1017365039,-1113259988,-1168425160)+W(3,1043895467,1034108246,-1147020173,1020918007)+W(4,998802811,-1089568357,-1094495268,-1101697729)+W(5,1015583683,-1120941186,1026355631,1036534559)+W(6,1035993776,-1104998342,1020448605,1027080278)+W(7,-1096020979,-1097851474,1057437086,1047905888)+W(8,1024649726,-1123264842,-1112197645,1044370080)+W(9,-1129990263,-1123698278,1024273997,1012408472)+W(10,-1105719893,-1101687913,1052750589,1041161122)+W(11,1027345300,966350543,-1103284196,1035394325);sum2=W(0,-1115639872,-1150596845,982227227,1023788251)+W(1,1041100183,1053945290,1046665761,1042970848)+W(2,-1214633659,-1143798279,-1121383639,-1120506242)+W(3,1015277390,1006169559,-1119196045,1006064903)+W(4,-1128807740,-1078236510,-1080187678,1037025188)+W(5,1023282498,-1114831851,998104205,1017634434)+W(6,1034991246,-1110295858,-1139981943,1022374646)+W(7,1053440142,1058969577,1052132899,1047303977)+W(8,1023435593,-1124500500,-1112892146,1037533712)+W(9,-1148612007,-1131776900,-1130167410,1006364327)+W(10,1029728171,1005561207,1035867784,1033799186)+W(11,1015376522,1014287051,-1110685126,1033828190);WS(-1088189216,1043089281); sum1=W(0,1049770738,1041680407,-1121398410,-1140748743)+W(1,1042644994,1047024381,-1096476823,-1088213532)+W(2,1008330103,1031833588,-1107153702,1041481493)+W(3,1048806759,1043836791,-1149048846,1026065228)+W(4,1050638745,-1101872740,-1108723571,-1084369379)+W(5,1020682979,1026205458,1041455384,1035104215)+W(6,1034371336,1024770968,1036138263,1020127051)+W(7,-1094226627,-1096464492,1041309981,1036745881)+W(8,1006701623,-1120876186,1045395982,1040593116)+W(9,1037337862,-1137213911,1038047047,-1128555260)+W(10,-1106071481,-1102959693,1028379642,1011670631)+W(11,1024336228,1028740542,1016152290,1040128941);sum2=W(0,1028575755,-1114659435,1004169862,-1129618765)+W(1,-1109549862,1025826707,1020493837,1018469269)+W(2,-1123897489,-1153284395,-1116607191,1022763469)+W(3,1025093243,-1110197183,1012667011,-1163586391)+W(4,1018231561,1050121196,1045602812,-1120959857)+W(5,-1131222849,1019030581,-1110473213,1017295613)+W(6,-1140439179,-1110600679,1006867267,1004789414)+W(7,1009644755,1038682513,1007539419,-1119013866)+W(8,-1125130849,1009132883,-1107944702,-1143499366)+W(9,1019765437,-1106146141,1023888443,-1148564598)+W(10,1017107081,1040899502,1005311510,-1126956769)+W(11,1006886939,-1127991173,-1114206671,-1123266847);WS(-1082596160,1043517696); sum1=W(0,-1154689545,1032486047,-1153492953,1028909798)+W(1,1025985531,-1118729126,-1117361518,-1104169149)+W(2,1024711058,-1125485751,1034798166,1029418231)+W(3,-1128767583,1037703496,1019116907,967933898)+W(4,1031994846,-1089391227,-1087176649,1049441299)+W(5,1008177302,986175666,1046438773,1006099469)+W(6,-1115978788,1027446332,-1129844133,-1132218099)+W(7,1056185125,1032249225,1018413135,-1115448907)+W(8,-1125946755,1030151438,991686873,-1106352341)+W(9,-1146849277,-1114471573,999709323,1011144392)+W(10,1036574828,1042483386,-1130624603,-1154137305)+W(11,1006963806,1019997155,1022706506,-1131200252);sum2=W(0,-1103978637,-1138508200,1024001581,987806561)+W(1,1032745921,1036006171,-1109586411,1039699877)+W(2,1017765222,-1151113585,984628641,-1106709297)+W(3,-1113576691,1037869389,-1138298076,-1132313544)+W(4,1041044376,1057490671,1004783368,-1109697688)+W(5,-1128136972,-1126668402,-1123523352,-1135869680)+W(6,1041829747,-1102361734,-1131321664,1003342504)+W(7,-1120283284,-1118937466,1023850463,-1101655248)+W(8,-1142518888,-1119975873,-1133053924,1037905909)+W(9,995389041,-1103350916,1016585830,1015369606)+W(10,-1137071480,1023653113,1033013495,-1123567230)+W(11,1015435786,-1153724113,-1123775069,1008345900);WS(1066487464,-1081148228); sum1=W(0,1045622655,1039828621,-1115667101,-1156758047)+W(1,1016497454,1034243041,1016276052,-1121579186)+W(2,1025331662,1022570928,-1129971954,1026804003)+W(3,1043227835,1051174634,-1120457266,1032245054)+W(4,-1125065087,-1081200961,-1081882686,-1107379682)+W(5,1033790001,950141917,1050524446,1036683903)+W(6,1038187760,1035936180,1028999903,1025970038)+W(7,-1121918554,-1121754318,-1110627634,-1114502289)+W(8,1035886143,-1123227402,1045144826,1033938044)+W(9,1028125692,1038703027,1031685286,-1129094085)+W(10,-1138807120,-1128847308,-1130240468,1032926021)+W(11,1023360168,1033245399,1036935449,1028558202);sum2=W(0,1013162021,1040565489,-1109318105,990406129)+W(1,1031481662,1036428343,-1098989385,-1111903383)+W(2,1026146121,1020848344,-1111376696,-1112035485)+W(3,-1125670617,1041812300,-1108583903,1032976305)+W(4,1043786440,1039454897,1042303391,-1114873385)+W(5,993596601,-1114987237,1044627344,1007686716)+W(6,-1123723867,1031967357,1027268958,1009651516)+W(7,1032603577,-1097549253,-1113158574,1001920896)+W(8,1030752081,-1112152994,1043104932,-1107723593)+W(9,1033460548,-1113698315,1034160517,-1109295843)+W(10,-1117993943,-1119346601,1032025507,1015358203)+W(11,-1128311189,1024170945,-1111706149,-1142055788);WS(-1085700080,-1080808385); sum1=W(0,-1130852634,1020782261,-1122227946,1024296914)+W(1,1037784580,-1106441949,1011762792,-1113008209)+W(2,1011155704,1007950112,1023563097,-1128041639)+W(3,1018157624,1000516328,1023737634,-1137292464)+W(4,1034492712,-1096045179,-1126768286,-1132968658)+W(5,-1130475172,1027876850,1048917408,1002605936)+W(6,1007198528,1034334952,1017074878,-1114666035)+W(7,1044579508,1035021791,-1108931914,-1104353680)+W(8,-1148910448,1030237498,-1127030516,-1126595297)+W(9,1028012332,1030076118,998628462,-1116342907)+W(10,1016641544,1037317931,-1106440695,-1128335092)+W(11,-1178616327,1026212766,-1122557970,-1124799637);sum2=W(0,1009004191,-1136885460,1018138398,-1127545645)+W(1,-1131692274,-1125888003,-1151865619,1015771798)+W(2,996126556,1018938725,1023581282,1014637794)+W(3,-1141392422,1032831862,999025130,-1144042592)+W(4,-1091675886,-1072938398,-1097510643,-1107745249)+W(5,-1136255574,-1112160457,1076041086,1057331451)+W(6,1017820345,-1138954980,-1150259805,-1139402988)+W(7,-1091916978,-1117354278,1017078443,-1117369881)+W(8,-1150817344,-1138128772,1032772879,1056314077)+W(9,1013413304,-1164078621,-1133933532,985356315)+W(10,-1124163047,-1138824868,-1132951491,-1132039248)+W(11,1018397555,985080995,1026258229,1020965023);WS(1065410184,989310727); sum1=W(0,-1109321255,-1114916286,-1140125102,-1129262375)+W(1,1026154888,-1115626794,1039766830,1036945010)+W(2,-1125355007,1012320294,-1121887434,-1134197844)+W(3,-1113105487,-1103994248,-1133156750,-1116437485)+W(4,1060001058,1017259310,1046741097,1017194412)+W(5,-1137406030,-1133486286,-1114897776,-1094555822)+W(6,-1113291025,-1135877737,-1140436482,1013595422)+W(7,-1103200016,1018378495,-1110004779,1059311888)+W(8,-1124720479,-1115411390,-1113774366,1023750749)+W(9,1027066925,1020121135,-1120957855,1001232640)+W(10,-1131905035,-1127100975,-1115618446,-1131666807)+W(11,1004266540,-1123146591,-1116648163,-1124072268);sum2=W(0,1015903261,1014594226,994239369,-1134742142)+W(1,-1137672551,1023023759,-1150882457,1020154303)+W(2,1005131169,-1125421078,1017377705,1024853570)+W(3,-1129761964,1031995313,-1126643555,-1134258278)+W(4,1027518631,-1097618001,1040302074,1022217883)+W(5,1001175413,-1138047636,1026258033,-1148789809)+W(6,1009465920,1021296491,1015413679,-1124787402)+W(7,-1098762324,-1122992412,1029784509,1049285742)+W(8,-1148246653,1016986651,1015729459,-1132512970)+W(9,-1131866907,1022764367,1010959842,991423945)+W(10,-1126884057,-1118740892,-1122024941,-1135790753)+W(11,-1142203369,992745521,980872325,-1130065044);WS(1051937311,1019742014); sum1=W(0,-1110586220,1007594774,997229903,-1128733562)+W(1,1034449865,1040493967,-1115449474,1044317379)+W(2,-1126315858,-1118602611,-1122019556,-1129053661)+W(3,-1114376035,-1126695312,-1116159949,1023734487)+W(4,-1106892452,-1096043495,-1131615423,1058430122)+W(5,1007433460,-1115826781,-1114653189,-1137597924)+W(6,1032525373,-1154941499,-1139661928,-1132293538)+W(7,1048571437,-1110832404,1043036192,1028795565)+W(8,1027349977,1018237258,-1106286569,-1104742917)+W(9,1019369518,1026460481,1016780849,-1123545457)+W(10,1031893623,1016066306,-1122201669,-1111719346)+W(11,-1123671919,1018711058,-1121789868,-1118024837);sum2=W(0,-1127535498,-1127740478,1016157529,1008400273)+W(1,-1120718262,-1108362087,-1101104373,-1110432262)+W(2,1025653041,-1134925453,-1146032407,-1113670226)+W(3,1041994790,1049438349,-1138058389,-1144490357)+W(4,1042410198,-1105949033,1056816205,-1088501039)+W(5,1011207517,-1153231998,1045816390,-1132649478)+W(6,-1105215135,-1113276412,-1130565626,-1125392389)+W(7,-1108549667,1029274599,1025802623,1056199589)+W(8,-1127906971,1000306913,-1139374331,-1122823248)+W(9,-1135958083,-1114929610,-1135290574,965128306)+W(10,-1152613734,1031964529,1003318865,1003347845)+W(11,-1157554354,-1130500213,1019133207,-1123972337);WS(-1117640696,1034706864); return clamp(mstd0 + 5.0 * vsum / wsum * mstd1, 0.0, 1.0); } // nnedi3 vec4 hook() { vec4 ret = vec4(0.0); vec4 samples[12]; samples[0] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-3, -2), 0); samples[1] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-3, 0), 0); samples[2] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-3, 2), 0); samples[3] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-1, -2), 0); samples[4] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-1, 0), 0); samples[5] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-1, 2), 0); samples[6] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(1, -2), 0); samples[7] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(1, 0), 0); samples[8] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(1, 2), 0); samples[9] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(3, -2), 0); samples[10] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(3, 0), 0); samples[11] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(3, 2), 0); ret[0] = nnedi3(samples); return ret; } // hook //!DESC NNEDI3 (combine_y, nns32, win8x6) //!HOOK LUMA //!BIND HOOKED //!BIND nnedi3_int //!HEIGHT 2 HOOKED.h * //!OFFSET 0.000000 -0.500000 //!WHEN HOOKED.h OUTPUT.h / 0.833333 < vec4 hook() { vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5; if (dir.y < 0.0) { return HOOKED_texOff(-dir); } else { return nnedi3_int_texOff(-dir); } } //!DESC NNEDI3 (double_x, nns32, win8x6) //!HOOK LUMA //!BIND HOOKED //!SAVE nnedi3_int //!WHEN HOOKED.w OUTPUT.w / 0.833333 < float nnedi3(vec4 samples[12]) { float sum = 0.0, sumsq = 0.0; for (int i = 0; i < 12; i++) { sum += dot(samples[i], vec4(1.0)); sumsq += dot(samples[i], samples[i]); } float mstd0 = sum / 48.0; float mstd1 = sumsq / 48.0 - mstd0 * mstd0; float mstd2 = mix(0.0, inversesqrt(mstd1), mstd1 >= 1.192092896e-7); mstd1 *= mstd2; float vsum = 0.0, wsum = 0.0, sum1, sum2; #define T(x) intBitsToFloat(x) #define W(i,w0,w1,w2,w3) dot(samples[i],vec4(T(w0),T(w1),T(w2),T(w3))) #define WS(w0,w1) sum1 = exp(sum1 * mstd2 + T(w0)); sum2 = sum2 * mstd2 + T(w1); wsum += sum1; vsum += sum1*(sum2/(1.0+abs(sum2))); sum1=W(0,-1132374181,1016607238,994153301,-1120567290)+W(1,-1125130389,-1146864427,-1122316900,-1132591953)+W(2,-1119806663,1024055745,1031756856,-1117911182)+W(3,-1126690796,1029429758,1003125923,-1121091407)+W(4,992947237,-1137843051,1021572063,-1139074345)+W(5,1046512564,1056444330,-1096186409,1053527378)+W(6,-1112059294,-1109040755,1051252577,-1093298645)+W(7,-1110173889,-1113641375,-1148456803,-1120338466)+W(8,-1125619459,1000210819,-1119615974,-1117468940)+W(9,-1138699933,-1129869365,-1121684346,-1144213939)+W(10,1033651817,-1119537890,979248533,1023905988)+W(11,1032546877,-1127458445,-1141776739,-1133630411);sum2=W(0,-1119263575,-1114028928,1022573468,-1126549409)+W(1,-1124834267,-1099458226,-1116443736,1019494412)+W(2,-1122284082,-1118444706,1017309436,1007192676)+W(3,1010488320,-1109973330,-1121042004,-1127647730)+W(4,-1119708173,1024108770,-1114833146,-1140490164)+W(5,1055169273,1055452063,1037187519,1032492771)+W(6,1039787167,-1112035826,-1106256028,1044169825)+W(7,1044065299,-1121131548,-1125070906,-1145097543)+W(8,-1146392599,-1113990054,1003196031,1021805248)+W(9,-1095922228,-1126677517,1006796332,1026983682)+W(10,-1118290710,-1130573089,1022777176,-1122158651)+W(11,-1121253833,1019346120,-1123455912,-1129575364);WS(1060265584,1063714812); sum1=W(0,-1123065753,1022311347,-1128788280,1021450242)+W(1,1021294882,-1140362288,1028928107,-1137050988)+W(2,1009531192,1035626828,1024570351,-1118036885)+W(3,992320459,1029327365,1025121435,-1118665549)+W(4,999728711,-1108349889,1039397963,-1111111528)+W(5,-1137639751,-1102959280,1026074151,-1119265827)+W(6,-1106406289,1036057270,1041760911,-1101623708)+W(7,-1106167682,1037788386,1017790822,-1128138578)+W(8,1022720848,974355898,1011253684,-1131322533)+W(9,1043907075,1025863841,-1136338948,1019796282)+W(10,-1132552740,1027651305,-1136816500,-1151514983)+W(11,-1134343810,1024478285,-1139070668,-1124857459);sum2=W(0,-1124053764,1017938673,-1130878336,1023758242)+W(1,-1122894214,1031015106,1028583936,1000956747)+W(2,1004424067,999096115,994031846,999883691)+W(3,1009546537,1005722235,-1134395125,-1150041590)+W(4,-1145138723,1027873020,1027498838,-1120671625)+W(5,-1104963408,1073183850,1053869854,1005174931)+W(6,-1126082311,1035733703,1053107786,1001047899)+W(7,-1135618057,1023923178,1022225293,1002728051)+W(8,-1122179044,-1127336921,-1131041230,-1144315403)+W(9,-1074622268,1033668418,1009416925,-1093535895)+W(10,-1114468554,992895974,990806038,-1094361386)+W(11,-1126165581,-1138321549,-1131337021,-1123867271);WS(1067199072,981674447); sum1=W(0,1018794771,-1113372949,-1105288827,-1113726457)+W(1,1008735750,-1102105679,-1095136821,-1115871564)+W(2,-1125149117,-1108798620,-1103744656,-1125817867)+W(3,1016463803,-1099284685,-1137689902,1001830321)+W(4,-1099180638,1040483381,1032552483,1040785760)+W(5,1052734745,1065065389,1054762461,1050678235)+W(6,1033282170,-1097094388,1044820043,1044281884)+W(7,1032013917,-1124668651,1010644366,-1121192922)+W(8,-1114167068,-1127069135,-1139898486,-1124907206)+W(9,-1097429016,1035770473,-1118671794,-1107257499)+W(10,1027211226,-1125646899,-1122788302,-1104994292)+W(11,1015961570,-1114483455,-1123221796,-1114303237);sum2=W(0,-1139313841,989560618,1021627528,-1124538541)+W(1,1010830983,1026431506,1014774531,-1119374292)+W(2,-1125616841,1018739126,-1118520012,1020827626)+W(3,-1136528497,-1129452021,1014458179,1008596323)+W(4,1028695072,1011050585,1027300307,-1127440395)+W(5,-1087762234,1053318756,1052523334,-1102978428)+W(6,-1109480314,1034265115,-1113197028,1027251929)+W(7,-1132845253,1022117249,-1134832277,1023848922)+W(8,999023778,1015498074,-1130074937,1020622605)+W(9,1038687085,-1128231773,-1126569197,-1119874204)+W(10,-1125820221,-1123965604,1018969905,1029469191)+W(11,-1150305989,-1130502215,1024095771,-1159659466);WS(-1082327904,-1101742629); sum1=W(0,1007179909,-1124051394,994965062,-1128942355)+W(1,-1115398989,1047686461,1029361427,-1172666584)+W(2,-1126910957,1025118144,1028067431,-1145393643)+W(3,-1127439210,1018201755,-1121058723,-1153678686)+W(4,1022855203,-1119991818,1027052286,-1116531225)+W(5,-1095192109,-1106285700,-1110346311,1044526075)+W(6,-1116394763,1030498357,1043850022,-1123739865)+W(7,-1120454737,1034890279,1032721886,-1123838961)+W(8,1015495233,-1129777663,1021969515,-1127603958)+W(9,1037065627,-1113404469,1017142675,1026992677)+W(10,1013662917,1016457699,-1130059467,-1119388383)+W(11,1021249778,1017348651,-1131255799,-1119902562);sum2=W(0,-1131491186,-1137235679,-1130890464,1014279427)+W(1,1042930837,-1073378768,-1097554196,1026571161)+W(2,993445038,-1130245298,-1092458255,1025279833)+W(3,1014707171,-1135266971,-1120075373,-1133457551)+W(4,1024729347,-1130557096,1014973315,-1129394348)+W(5,1073588633,-1105375875,1014221291,1048952496)+W(6,1029166823,-1119905200,1016092170,1053816664)+W(7,-1151431678,-1161525308,-1147013927,1030737081)+W(8,-1150339726,-1141673719,1004833335,-1152876382)+W(9,1035354953,-1124590261,-1159625756,1016692910)+W(10,1027382919,-1138326931,989537980,-1129170378)+W(11,979085751,1009604643,1017200998,-1124802440);WS(1067891072,-1132872541); sum1=W(0,1014334757,1020114356,-1122834636,1025237873)+W(1,1029025473,-1121917372,-1105197551,1030238795)+W(2,-1121222990,1024596920,1038150728,1007260181)+W(3,-1123834925,1015271403,1024170379,988616634)+W(4,-1118569017,976917621,-1114151507,-1117007553)+W(5,-1114461425,1051488823,-1088419628,1049984500)+W(6,1039495098,987986858,1053317187,-1084792932)+W(7,1027254009,993078101,1026119523,-1124531763)+W(8,1039451348,-1152616053,984935338,1031366707)+W(9,1008484089,-1145922699,-1123762161,1049092386)+W(10,-1131993235,1000937675,1012164149,-1122288663)+W(11,999667975,1004174827,1011615629,1022258228);sum2=W(0,-1136232721,1019759527,-1116760996,-1144599930)+W(1,-1128645029,1041961890,-1111064134,-1137221455)+W(2,-1156748756,1033905549,1036336113,-1151231836)+W(3,1020235585,-1122711401,1022489781,-1160295481)+W(4,-1125055029,1027655943,1032901632,1032730282)+W(5,1050767412,-1130649513,-1115058011,1047170030)+W(6,-1120368706,-1105887613,-1116185015,-1093680614)+W(7,-1132924343,-1122854992,1012694293,-1115425401)+W(8,1005941018,-1131155477,-1129170670,985378521)+W(9,1019394239,1022276751,-1129924333,-1129460922)+W(10,1024734935,1015791177,-1148456898,-1115704458)+W(11,1018590227,1012472897,-1140100033,-1147415538);WS(1059709408,1024973287); sum1=W(0,1004611460,-1122880609,996494647,-1126012593)+W(1,-1114032340,1049657976,1020165829,-1134152138)+W(2,-1126017195,1032225804,1014735450,-1131432537)+W(3,-1124178504,1022764985,-1115613273,991561039)+W(4,1030391200,-1114579692,1028092109,-1119189544)+W(5,-1094041084,-1106474499,-1111968183,1046947367)+W(6,-1112475533,1030371012,1044458845,1018380112)+W(7,-1122300512,1034006830,1033263557,-1123292160)+W(8,1016065247,-1127475101,1023428420,-1124577204)+W(9,1040268033,-1114564220,1021721777,1002304420)+W(10,1023640576,1019190017,-1128430825,-1114168306)+W(11,1017080432,1017178441,-1127717781,-1119951545);sum2=W(0,1011909323,-1143341847,1024962708,-1125800395)+W(1,-1103527255,1076690943,1052819438,-1116511680)+W(2,-1148349175,990717342,1057154431,-1120293374)+W(3,-1125483347,1023577182,1025045202,1015270352)+W(4,-1144213999,1018807292,-1122338700,1023886172)+W(5,-1072687587,-1098249874,-1115186882,-1097320166)+W(6,1012280135,1010582795,-1117298851,-1091630497)+W(7,1016249338,-1125194137,990164302,-1118805022)+W(8,1000330119,984068764,973576887,-1171853367)+W(9,1023038428,1007326739,1001426319,-1140479659)+W(10,-1122270538,1008233815,-1135413483,1029135274)+W(11,1003973863,-1140102471,-1129534965,1020995472);WS(1066253200,1009489111); sum1=W(0,1024085178,-1107707469,-1102592607,-1121073890)+W(1,1023275236,-1116780301,-1106598971,-1130104696)+W(2,-1135799996,1032050668,-1111680448,-1128214764)+W(3,-1121776782,1028096678,-1131519352,-1141685621)+W(4,1026388586,-1107162241,1033075644,1041243549)+W(5,1049328440,1057262167,1050587318,-1121496677)+W(6,-1096674093,1040843700,1027096831,1018012708)+W(7,-1101864235,-1117086438,1028580820,-1122519370)+W(8,1004872905,-1145989825,-1130535196,-1123366116)+W(9,-1116780079,1023066500,-1120961954,-1113976447)+W(10,1015552212,1008378152,-1121521086,-1113850464)+W(11,1040749648,-1135644600,-1124335656,-1123000331);sum2=W(0,-1117172679,-1121647283,-1106333857,1013104936)+W(1,-1135146700,1030458550,1031691189,-1127525498)+W(2,1027187072,1009508096,-1111791784,-1122718205)+W(3,-1128814570,1037784205,-1127767754,-1119344027)+W(4,1046293466,-1098323478,-1143812784,1041445982)+W(5,1051999059,1016608418,1032669672,1054977467)+W(6,-1099681845,1044831040,-1093831562,1044523088)+W(7,-1107269301,-1118967703,-1117227205,-1185033988)+W(8,1025469214,-1123006845,-1153458272,-1111423698)+W(9,1041509878,-1111394764,1018478818,-1110723238)+W(10,-1110045970,-1140396324,-1127833490,1024902469)+W(11,-1121987113,1021194206,-1129041118,-1129401382);WS(1055988095,1068562120); sum1=W(0,-1130996743,1036197410,1041692938,1025054956)+W(1,1026193148,1039706891,1042434277,1024941510)+W(2,1028839961,1029783554,1036807045,1035977616)+W(3,1025665319,1026886128,1019008523,1016648336)+W(4,1032351834,1043619883,-1141880069,1040251631)+W(5,-1093055992,-1087193164,1026325313,-1100356972)+W(6,1043491547,-1097265155,-1087410536,1047058383)+W(7,1048991774,-1099060796,-1104034167,1044781893)+W(8,1002392085,1020511427,1011769695,-1113980711)+W(9,1032223740,-1163338101,-1124414423,1040781794)+W(10,1027612260,-1129538215,1015241743,1047196369)+W(11,-1113322870,-1180507092,1018634427,1036828166);sum2=W(0,-1119308996,-1121926087,-1098330057,-1109623534)+W(1,-1107757858,-1111457821,1031129408,-1108667787)+W(2,-1144042093,-1092220222,-1091241820,-1126585969)+W(3,1024608852,-1104308532,-1112242725,1004201965)+W(4,1045894429,-1111281216,-1105318233,1051762285)+W(5,1060518836,-1103134861,-1116694436,1029096148)+W(6,-1120268316,1034184394,1017373783,1065480819)+W(7,-1105721536,-1134873838,-1129342463,1035423856)+W(8,1002875661,-1152598618,1036873688,-1120494292)+W(9,-1104320409,1023528108,-1117793653,1042501069)+W(10,-1131983911,-1123122827,-1117516356,1041202422)+W(11,1017105251,1015347387,-1131565835,1023586732);WS(-1073915832,-1098883962); sum1=W(0,-1131602112,1032898976,1024626915,1030932360)+W(1,1018154928,1011274315,-1122370130,-1125999684)+W(2,-1122315861,1029902191,-1113904235,-1122265980)+W(3,-1120663220,-1111387910,-1115348785,1018577993)+W(4,-1117814224,-1103847418,-1130380922,-1098288699)+W(5,-1106175819,-1105327485,-1096397881,1056014501)+W(6,-1115232133,1040451325,1059753579,-1097956311)+W(7,1017122848,1042824131,1039068637,-1126206816)+W(8,1040490540,-1120290302,1021355752,1033018229)+W(9,1044317365,-1139369119,-1131922448,1031863906)+W(10,-1122968848,1033247800,-1121102372,-1098424101)+W(11,1021433455,-1143567007,-1121007738,-1136273729);sum2=W(0,-1126395193,1025514844,1046909717,-1118315643)+W(1,-1138413531,-1112879553,1026986728,1014636591)+W(2,-1129252552,-1114813410,-1122377333,1013622247)+W(3,-1131632742,-1140190295,-1144089687,-1122713894)+W(4,-1112473945,1030594060,-1129801877,-1100980148)+W(5,1027746798,-1094641835,-1101816290,1040985677)+W(6,1057006779,-1106485598,1041324898,1051150943)+W(7,1035155819,1016695560,-1115757412,-1138866101)+W(8,-1111527676,-1135186433,1010610423,-1122172234)+W(9,1027030278,-1121095046,1030475382,1023795758)+W(10,-1133454616,999966259,1015864126,-1113671456)+W(11,-1139893847,-1124292419,-1127643580,1001347783);WS(1058139200,1067005003); sum1=W(0,-1128484819,-1112832909,-1103206155,-1131277347)+W(1,-1112913457,-1111811582,-1108301118,1014594990)+W(2,-1118434446,-1100757638,-1113179152,1028891109)+W(3,-1151139539,-1119227733,-1116265771,-1125459884)+W(4,-1111332237,1044526364,1048238354,1015263811)+W(5,1031432468,-1114379264,1056580635,1004409248)+W(6,1053177162,-1104236495,1025802539,1057408386)+W(7,1052437131,-1121289813,-1124751623,1035803645)+W(8,-1104751670,-1124214159,-1122297405,-1106607621)+W(9,-1107787999,-1110162105,1017238947,-1107635783)+W(10,-1114959053,-1113724157,1002560364,1020725062)+W(11,-1120069105,-1115210511,-1123244163,-1129296244);sum2=W(0,1016432775,-1124268922,1023292260,-1121057595)+W(1,1031151061,-1110795130,-1116199054,-1112629457)+W(2,1021228732,-1134369449,-1103006120,-1126819952)+W(3,-1127402608,1016333862,-1120667087,1009585899)+W(4,1029388268,-1118389960,1035766063,-1111891368)+W(5,1054055516,1054507013,1033023394,-1123843875)+W(6,-1135412321,-1121918429,-1104664187,1020478730)+W(7,996548072,-1108029597,982538191,993043492)+W(8,-1122510207,1028529468,-1122161823,1032208606)+W(9,1019595258,1026811027,-1118001871,-1113138713)+W(10,1023542227,1018790016,-1116707921,-1114598707)+W(11,-1129671373,-1152045912,-1146185904,993709924);WS(-1091835967,1038509097); sum1=W(0,1031236696,1038000620,1041562959,1002958335)+W(1,1034973544,1034473413,1042029266,-1122124314)+W(2,1015820538,1042048878,1040514695,-1120202292)+W(3,-1121967836,1042898689,1029242778,1033636218)+W(4,1029288008,-1100002304,-1093861855,-1124369824)+W(5,1049571184,1052741396,-1087002164,-1104824881)+W(6,-1089426268,1042398171,1044570703,-1089024373)+W(7,-1091407169,1030369604,1023923250,-1107643796)+W(8,1038306915,1032364667,-1132073944,1039801017)+W(9,1041619283,1036587856,-1122032128,1037725118)+W(10,1038671876,1010685600,-1138629744,1031782758)+W(11,1043274836,-1153060031,1027566834,1025678032);sum2=W(0,1013192458,1023566599,-1110538641,1016791821)+W(1,1015528749,-1112636904,1000152052,-1123883287)+W(2,-1132736674,-1130121037,-1116367667,-1131825297)+W(3,-1117749640,1033496981,-1114305335,1019880949)+W(4,-1113846927,1029704719,1045544748,-1114409767)+W(5,1054155729,1054056541,1034122997,-1109610416)+W(6,1016394661,-1116026974,1030522539,-1109117303)+W(7,-1157815185,-1107824982,992430312,1030290683)+W(8,-1125617069,1012727082,-1127655665,-1111278622)+W(9,-1108588248,1000573476,-1131212885,-1110039103)+W(10,-1135451026,-1126704253,-1123699129,-1132906850)+W(11,1016739853,-1123545619,988228497,-1134728538);WS(-1089794384,1053743764); sum1=W(0,1022034304,-1123589329,-1124062435,977181200)+W(1,-1173982736,967031199,1008939465,999195154)+W(2,-1117753925,1038421055,1031201254,-1131079992)+W(3,-1131210280,1042888267,1023184516,1011212627)+W(4,1045687772,-1100185218,-1096122984,1045792382)+W(5,1051096635,-1128424615,-1089534650,1043214811)+W(6,-1104815387,1033659882,1022835035,-1106608558)+W(7,-1113606040,-1114474998,1025453978,975115280)+W(8,1029423919,1022712508,-1146772642,1035356461)+W(9,-1130937578,1009586465,986801416,1037071922)+W(10,-1112564552,1008485953,1012941585,1033635179)+W(11,-1115626236,1020831720,1023442138,-1148354182);sum2=W(0,-1152866061,-1136865390,1038582018,1025756371)+W(1,1021941035,-1102180290,1028991375,1022411083)+W(2,-1162131898,-1103213990,-1127151005,1018807869)+W(3,-1117519259,-1101731450,-1148467374,1030478695)+W(4,1027392563,-1108446917,-1097242729,-1095235720)+W(5,1062263751,1055770556,-1092586393,-1094985700)+W(6,1032099771,1045256871,1024429444,1023141397)+W(7,1050734432,1044538365,-1115314196,-1139645537)+W(8,1009460859,1022755591,-1145714840,1048188946)+W(9,-1098658877,1018658879,1033471029,1013992713)+W(10,-1104388978,-1135748387,1032105067,-1162587434)+W(11,-1097902791,1019361371,1008760659,1033707193);WS(-1092258911,-1089815334); sum1=W(0,-1147044493,1034203057,1045821685,-1139634407)+W(1,-1130890003,1035729090,1044613801,1017866535)+W(2,1016637069,-1102281888,1029847032,1027130446)+W(3,1026913637,-1121093118,-1131657511,1016500860)+W(4,1015718019,1051668019,1034361159,-1119357002)+W(5,-1090722234,-1086460492,1032636456,-1104936487)+W(6,1057948020,-1095562645,-1094763749,1052628837)+W(7,1053191568,-1098187032,-1106362539,1044884520)+W(8,-1115826689,1023465264,-1130196683,-1137425069)+W(9,1010439579,-1117806874,1015877619,1035725147)+W(10,-1114240161,-1123952546,1025832214,1043916211)+W(11,-1102258214,1011300119,1029577644,1035145793);sum2=W(0,1012757410,1024378351,-1113670137,-1128703433)+W(1,1023396449,-1131966925,-1111552612,1007787634)+W(2,1012244530,1040107467,-1114649634,1017560605)+W(3,1024938353,1032092801,-1122758108,-1143125556)+W(4,-1102109659,-1100043210,1040684472,1038503213)+W(5,1061982310,1066879681,1041989415,1041322248)+W(6,-1098175974,-1089047102,-1101238360,-1104769108)+W(7,-1105089779,-1100231891,1023979343,1026757617)+W(8,1026887817,1003273444,993905065,-1099552212)+W(9,-1107386978,1019447753,-1144755940,-1104965070)+W(10,1016563929,1024790159,1019550873,-1104448348)+W(11,1036400101,1014825186,-1138003290,-1107880053);WS(-1086002512,-1084928660); sum1=W(0,1017039401,-1113717074,-1115340892,-1131929465)+W(1,-1134499377,-1097984585,-1102662114,1020173741)+W(2,-1138890277,-1114393442,999020755,-1129468257)+W(3,-1143488833,-1132982017,1028151894,-1132813939)+W(4,1042912513,1010821235,-1103148388,1050776738)+W(5,1055825787,1049797700,-1104889757,1053707114)+W(6,1033511359,1041826234,1042555580,-1108349590)+W(7,-1138015505,1041074464,1032548919,-1108075378)+W(8,-1128281895,-1122997746,-1130358353,-1143173743)+W(9,-1098746549,-1117617116,-1139775729,-1111952748)+W(10,-1103706929,1010736529,1014563169,-1106170922)+W(11,-1110410462,-1123442568,-1137959865,-1127274842);sum2=W(0,-1126633986,1029900308,-1118205558,1000102260)+W(1,-1119827470,1041420529,-1140439712,-1144291760)+W(2,1023762781,1006017080,979974721,1016232493)+W(3,1025293286,1002898232,-1137204884,-1141218312)+W(4,1063980475,1037162912,1041999613,1051204856)+W(5,-1075398805,-1085093765,-1167793729,1066576503)+W(6,-1114660078,1033481679,1017117707,-1098954833)+W(7,-1117648930,1002077480,-1137323924,1021034547)+W(8,-1134402620,-1137379540,1019347314,-1135930364)+W(9,-1133429672,-1123883092,1012525172,1020225891)+W(10,1018587503,990744512,-1139078108,1028764817)+W(11,1026769102,1022792204,-1137103964,-1132685152);WS(-1084377664,1027078466); sum1=W(0,-1129675619,1032239673,1023875764,1028609881)+W(1,1010908070,1024809124,1043647401,1022038247)+W(2,1030113110,-1128260416,-1131519215,1026611885)+W(3,1031201461,-1115829469,1026951667,-1132403564)+W(4,-1114746833,1026119482,1031700430,-1113303893)+W(5,-1156932707,-1104988345,1051850662,-1084547118)+W(6,1047159719,1027361605,-1083734174,1050946557)+W(7,1037768177,1042797655,-1111325382,1020650755)+W(8,-1122216064,1016759071,1025866053,-1138486380)+W(9,1033025459,1029398137,1032834541,-1132199979)+W(10,1018468419,1021351811,1007914454,1043104191)+W(11,-1108759836,1018395723,1014779182,1014159432);sum2=W(0,-1139192721,-1139997869,1034590473,-1123315648)+W(1,1030816333,1008365317,-1115134908,-1123875414)+W(2,1016532474,1028786615,-1110803030,-1123326315)+W(3,-1131093304,1015409534,1004595129,-1130303816)+W(4,969235347,-1112534256,1030314237,1026150549)+W(5,1046059603,1027803789,1037120039,1042477897)+W(6,-1122978967,-1135183209,-1102080708,-1155992274)+W(7,-1111529432,-1109468455,-1120008811,-1119026545)+W(8,-1158492453,-1132289868,1014056813,-1113579452)+W(9,1032895251,1032146261,1018097190,-1098184684)+W(10,1047700729,1011346781,-1114996104,-1126452160)+W(11,1047312851,-1122411639,-1115756663,999072441);WS(1043014014,-1087744322); sum1=W(0,1020523582,-1138321214,-1123526530,1027952711)+W(1,1021435438,1032339433,-1110182129,1002118409)+W(2,1003104545,-1137297015,1035386835,-1138414444)+W(3,1013303243,-1108462406,-1119534945,1021955143)+W(4,1022379422,-1120526792,1035059438,1008337244)+W(5,-1110004232,-1118604170,-1086364127,1057818171)+W(6,1007303460,1036507098,1057062103,-1083267015)+W(7,1036022088,1036993862,1038869533,-1115695919)+W(8,1037330895,-1156487121,1026995059,-1116610857)+W(9,1040846837,-1153254001,1009757724,1040407761)+W(10,-1128420830,1034169880,1021783366,-1107059287)+W(11,-1142792885,1027514579,-1138765796,1017909759);sum2=W(0,-1156092221,-1131091573,-1117738234,-1129567658)+W(1,1008715269,-1115010115,-1115037144,-1123579911)+W(2,1026524337,1015586863,-1101087826,-1125160256)+W(3,1017463077,1019720419,-1113332277,-1137738801)+W(4,-1128107850,-1118479197,1030957051,1034622765)+W(5,1050631618,1054490255,1041246295,1017778197)+W(6,-1095615964,1025836507,-1117275788,1045062017)+W(7,-1101223712,-1120912313,1027688491,1020345131)+W(8,1005860107,969559787,-1132249217,1029443337)+W(9,-1157251077,1024782459,-1132354551,-1110926783)+W(10,1020928095,1012990901,998415619,-1108959270)+W(11,983922363,1011300789,-1161032699,-1122972204);WS(1054959103,-1083836992); sum1=W(0,-1132171248,-1118146184,1023853723,-1144415487)+W(1,980216825,-1107434917,1039313221,-1133053416)+W(2,1017404666,-1111685883,1027331294,1018609320)+W(3,-1154920122,-1126004808,-1129432820,-1127349353)+W(4,1018672592,-1123041056,-1121737045,-1123173616)+W(5,1057912142,1053211380,-1161038260,-1090265426)+W(6,1046306952,1036559366,-1089253699,1044087220)+W(7,1039769364,1035028498,-1110305609,-1133031712)+W(8,-1120856711,-1131928876,1017937944,-1124541667)+W(9,-1109871174,-1129566080,1027902624,1034290206)+W(10,-1113560292,1010241568,-1121689404,1040602782)+W(11,-1109624712,-1127304152,-1124796708,-1148202051);sum2=W(0,-1139755941,-1129406227,-1110884586,1018338338)+W(1,-1122001203,1037408540,-1108237236,1025801614)+W(2,-1132321439,-1123391437,1040327756,1010171613)+W(3,1013259501,-1132299663,-1129086463,1016232007)+W(4,-1118232763,1021052542,1026570078,-1136808221)+W(5,-1113269344,1041519115,-1114736489,-1115176435)+W(6,-1110685464,-1115014721,1047951095,-1105808410)+W(7,1021765462,-1123780081,-1113536502,-1168436052)+W(8,1020321772,1004896115,-1120452457,-1136194357)+W(9,1046652366,-1107310106,-1119060361,1048907220)+W(10,-1111631696,-1126977687,1033649944,1035402835)+W(11,-1102273277,1027695361,1026056519,1026410761);WS(1057903600,1067139767); sum1=W(0,1012511358,-1111029392,-1107061793,-1130009103)+W(1,-1124300975,-1103367501,-1104154592,-1137761926)+W(2,-1117250069,-1113394087,1009980758,1008012526)+W(3,-1115259538,-1114684710,1026647906,-1162310274)+W(4,1028125200,992918145,-1102099951,1043136838)+W(5,1060113955,1050079197,-1106189879,1051222763)+W(6,1016245011,1034440698,1048697267,1024983063)+W(7,1025498192,1041574755,1041096574,-1117690736)+W(8,-1117969679,-1145160172,-1123992244,-1115498357)+W(9,-1108729546,-1117739880,-1125356943,-1104467697)+W(10,-1104780916,-1114615608,-1165450354,-1111781863)+W(11,-1120787335,-1118506516,-1139440358,-1117169584);sum2=W(0,-1120699406,-1131692032,1038855085,1011962608)+W(1,1026799984,-1112343444,1038467393,1007214128)+W(2,1029224075,-1138735380,-1113849522,-1145867047)+W(3,1022659583,-1118784264,-1120001434,-1116434980)+W(4,-1112627842,-1110442893,-1126451804,-1122245118)+W(5,-1106597578,1054959792,1042136464,-1122221782)+W(6,-1114988845,1046305460,1031831390,1026356645)+W(7,-1123194990,1047204017,1008343524,1020413259)+W(8,1008646548,-1123527836,1026864717,-1106947014)+W(9,-1109079281,1011333214,999106843,-1113116412)+W(10,-1109725169,1032922020,-1117815384,-1109881757)+W(11,-1114571313,1000599735,-1119479700,-1123390380);WS(-1101058110,1058505899); sum1=W(0,1015324303,-1112299044,-1123852394,1008909245)+W(1,-1139701245,-1102217815,-1128516275,-1151491221)+W(2,1031005836,-1113648843,-1104833467,1009250957)+W(3,1009310828,-1121962739,-1119585353,-1131857944)+W(4,992056181,-1124723744,1024016996,1037579744)+W(5,1045087960,1021619781,1056678303,-1098678002)+W(6,1036986521,1041104615,-1095085849,1058072040)+W(7,1032839164,1025292595,-1129179587,1024521495)+W(8,-1131134189,-1130344395,1022516663,-1121096497)+W(9,-1098726544,-1132041247,1021039583,-1109419958)+W(10,-1121889031,1026848535,-1140161581,-1109643932)+W(11,1017031326,1005622747,-1125244995,-1127292144);sum2=W(0,1017011277,-1140746852,1023078017,992821683)+W(1,999390943,-1112338116,959773689,1011814063)+W(2,-1128713872,1024063493,1035095219,-1121326865)+W(3,-1138094133,1032024680,1023948090,-1144442308)+W(4,-1139829185,1034266306,-1112719649,1023704638)+W(5,-1113377165,1057654961,1032357888,-1107874815)+W(6,1033653422,-1122811174,1012152366,-1108229047)+W(7,-1140161389,-1113617432,1020168485,-1133039950)+W(8,-1119668356,1016759855,1021903376,1027637582)+W(9,-1086342498,1051594315,1034398452,-1113625790)+W(10,-1136544465,1031049449,1035110699,-1101720659)+W(11,1019370668,1021410443,1018271190,-1121720102);WS(-1098338111,1023498750); sum1=W(0,1022617405,-1112416999,-1121510465,-1138701849)+W(1,989875557,1037491593,-1180399652,-1168316434)+W(2,1028694643,-1121884733,-1102495433,1014043241)+W(3,-1123740578,1036415429,-1122132512,1012653195)+W(4,1041395124,-1110248019,1010706669,1040383254)+W(5,-1094988553,-1095385553,1058209828,-1097293461)+W(6,-1118903112,1046085501,-1097437690,1059563452)+W(7,-1126796061,-1128488725,-1130301425,1027507886)+W(8,1020223099,1016227961,1021863397,-1149170878)+W(9,984962665,1021609037,1018489101,-1106291545)+W(10,-1122110350,1026243438,-1145092370,-1119747464)+W(11,989067449,-1164474953,992349061,-1123237039);sum2=W(0,-1120898035,1036981221,1029420636,-1164068108)+W(1,972583599,1039879187,1035658823,1013829433)+W(2,-1128855117,-1128781606,-1102894380,1016837545)+W(3,-1130000643,1008550341,1013125305,-1120505887)+W(4,-1106651210,-1141413971,-1110964317,-1112077059)+W(5,-1108370344,1044568046,1035230257,-1106432341)+W(6,1035930993,-1110600858,1041920264,1027609202)+W(7,1017927697,1019426133,-1125837008,1026372950)+W(8,1028557670,-1129246253,-1148255859,1028276360)+W(9,1026800348,-1126980980,-1131530425,1017251513)+W(10,1023713154,-1124361549,-1121785123,-1124056839)+W(11,-1129712212,-1127748642,1009116645,-1132458450);WS(1064075168,-1085260633); sum1=W(0,1004279127,-1113516590,-1104011171,1020097830)+W(1,1026532451,-1102348791,-1103036207,1028112237)+W(2,-1130706656,1038928889,-1120389361,961537748)+W(3,994604265,1031068695,-1129088474,-1135275149)+W(4,1036855277,-1106861493,1034297780,1041894009)+W(5,1027716980,1058153819,-1112331770,1045116105)+W(6,-1096709211,1048347472,1043898973,-1096376936)+W(7,-1102472071,-1118081687,-1164071066,996846509)+W(8,1031661466,-1151789197,-1138151419,-1113914242)+W(9,-1100287056,1026370483,-1129921062,1017072798)+W(10,1032287909,-1140511211,1025128111,-1119328440)+W(11,1040008649,-1140610427,-1167790389,1019059671);sum2=W(0,-1138053524,-1133342724,1033869831,1014633478)+W(1,-1120104172,1033872317,1003291347,-1140130516)+W(2,-1123853902,-1121932314,1006625651,1012698026)+W(3,-1133638700,975983930,1004319943,1013120742)+W(4,-1126366588,-1128243618,-1111281510,-1114935893)+W(5,-1086850225,-1084734921,-1107071420,1043822142)+W(6,1040015383,1046081705,1067004758,1030145358)+W(7,1028724356,1031930717,1002809783,-1150276254)+W(8,-1145483991,996067150,990649086,1016908923)+W(9,1045857736,-1119271334,1012165262,1006526455)+W(10,-1118176982,-1144422823,-1129772456,1020093203)+W(11,-1104669476,-1143148999,-1141799647,-1161820989);WS(-1102756414,-1120030182); sum1=W(0,1007304745,-1115971707,-1102767115,-1114857721)+W(1,-1135708169,-1101194087,-1095987354,-1113282502)+W(2,-1115825727,-1109693396,-1099422340,-1130226572)+W(3,-1136250680,-1100198174,-1122657804,-1142173365)+W(4,-1101676399,1028311347,-1124210446,1043961809)+W(5,1065521342,1068133511,1046261656,1053600405)+W(6,997946179,-1098872988,1042816511,1046696200)+W(7,1025742970,-1113205915,-1133742993,-1112668237)+W(8,-1113057893,-1125847632,-1120413918,-1117667780)+W(9,-1095174540,1027169042,-1114932345,-1103902228)+W(10,1020822452,-1114420141,-1125196828,-1101926052)+W(11,-1140085511,-1110338975,-1121096548,-1113901869);sum2=W(0,-1126993785,-1117046041,-1119384349,1022430051)+W(1,-1136699515,-1099757367,-1113440146,1027244407)+W(2,1024283610,-1152620459,1038214736,-1115987625)+W(3,-1137060371,1015902709,1013074835,-1120680273)+W(4,1014745875,-1106680506,1011315171,-1127804673)+W(5,1065124465,1034863647,1020590601,-1129639049)+W(6,-1130768777,-1116743921,1035633573,-1113943514)+W(7,-1112590762,1012706011,-1127682237,-1113854522)+W(8,1009189211,-1125156477,1009328259,-1121146859)+W(9,-1111752578,1017063165,1000906166,-1115604020)+W(10,-1120130033,1024425511,-1117062841,-1124061319)+W(11,-1113078716,1024105421,-1119191933,-1148961286);WS(-1077988040,-1098609713); sum1=W(0,1002836371,1027276515,1040202093,1020152245)+W(1,1010566313,1032875267,1049452385,-1132015209)+W(2,1020486319,1034908465,1036663212,1010053945)+W(3,-1132252076,1038229775,-1114877050,1030571159)+W(4,1037438449,-1105856183,-1104283732,-1114910389)+W(5,1030654167,-1102427678,-1098108347,-1100627367)+W(6,-1095852652,1048934265,-1104090280,-1113362709)+W(7,-1105166249,-1138504825,-1126406169,1025947458)+W(8,1028081393,1013826369,-1125387021,1039298438)+W(9,-1131705423,1017725301,1018674229,1024125142)+W(10,1019783717,1015682181,-1141124531,1042947115)+W(11,1035155325,1016700365,1006527587,1021770278);sum2=W(0,-1139598567,-1138132903,-1132626695,-1142267837)+W(1,1008554815,1032537913,-1131100139,967895252)+W(2,1024473654,1023361695,-1112410791,-1145406733)+W(3,1020245499,1015868043,-1130141475,-1120792990)+W(4,1033876712,-1110747637,1039691642,1023852808)+W(5,-1095058264,1037101696,1061640184,1012220303)+W(6,-1104029741,-1161200181,-1091888991,-1110252153)+W(7,-1196949327,977066218,-1119701362,1031843465)+W(8,-1127924867,-1155304986,-1147709133,-1114839167)+W(9,1049832068,992067354,-1121532798,-1122160974)+W(10,-1126050715,1025251228,-1128735955,1027903240)+W(11,-1118663498,1009680879,-1157362170,-1132864167);WS(1050097375,-1144620389); sum1=W(0,1011057731,1033637193,1044211901,-1128715377)+W(1,1019193873,1034983634,1048874276,-1134438475)+W(2,1009602711,1017343103,1042543166,1022275225)+W(3,-1136253330,1037918654,-1149239594,1032927683)+W(4,1022227585,1028225817,-1104047251,-1107032850)+W(5,-1114392598,1036584266,-1092741994,-1096643663)+W(6,-1097617495,1028276325,1025153498,-1092702793)+W(7,-1097624368,-1118553533,-1142331733,-1139445891)+W(8,1008625791,1011579579,-1128884681,1044522647)+W(9,-1113959235,1025301657,1018667761,1044273989)+W(10,1041046056,-1123355105,1024565397,1042105869)+W(11,1045159742,1015982985,1027058603,1025445761);sum2=W(0,-1172679141,-1128383915,1033296420,-1125113091)+W(1,-1126905475,1031861037,1019343075,-1152889753)+W(2,-1117488938,-1113645001,1038268779,1006649294)+W(3,-1172252645,-1120621430,1028739248,1019337735)+W(4,1016688407,1037338868,-1102915066,1004274749)+W(5,-1097163724,-1090194983,-1089888071,-1103752812)+W(6,1051715314,-1118523722,1041005261,1062746712)+W(7,1035778038,-1154227385,1027501384,-1124587947)+W(8,-1144981581,991135609,1017918867,1028147108)+W(9,-1121675098,-1117974458,1022111055,1030353331)+W(10,1006661278,-1115156997,1026630548,1019962267)+W(11,1013440998,-1136345798,1018829507,1023891692);WS(-1098112447,-1125216946); sum1=W(0,1006322176,-1119953952,-1112042689,1010417568)+W(1,1017991280,-1112784281,-1116450322,-1140685064)+W(2,-1146614696,1023451023,-1105219289,-1126853432)+W(3,1019294567,-1110071894,-1153582112,1004323364)+W(4,-1112614584,1018267345,1041397655,1004161984)+W(5,-1113885864,1050855349,1058507679,-1090400895)+W(6,-1126136276,-1122997076,-1097135921,1051228911)+W(7,983864831,1012208560,-1149231824,1016683168)+W(8,1024614191,-1137912440,1021110568,-1114418485)+W(9,1027345269,1019594896,-1127130192,-1104618697)+W(10,1039454784,987030015,-1116355204,1037685358)+W(11,1030420791,-1149650752,988441407,-1140802306);sum2=W(0,-1134943159,1010887850,-1152950404,1035141604)+W(1,-1120750640,-1101926585,-1122370025,1031353634)+W(2,-1114509439,1035852377,-1104605825,1025254666)+W(3,-1113538005,-1148680422,-1114959163,1028756554)+W(4,1025641276,-1119115361,-1104792229,-1100547860)+W(5,1057546844,1042205116,-1100366049,-1101375945)+W(6,-1108641700,1039483674,1042952063,1048526282)+W(7,1037895648,1041006229,1030776026,1033576762)+W(8,1021611837,1016878804,-1138078871,1037875812)+W(9,-1109199537,-1140091328,1015482099,1015511489)+W(10,-1109299079,-1132053601,1032201266,-1105787312)+W(11,-1107406256,-1124574444,1007578680,-1143994351);WS(1027823864,1049081066); sum1=W(0,-1130128499,1032126573,1045092167,1012131718)+W(1,-1147020173,1034108246,1043895467,1020918007)+W(2,1020448605,-1104998342,1035993776,1027080278)+W(3,1024273997,-1123698278,-1129990263,1012408472)+W(4,-1127539283,1050389010,1031292119,-1108779609)+W(5,-1094495268,-1089568357,998802811,-1101697729)+W(6,1057437086,-1097851474,-1096020979,1047905888)+W(7,1052750589,-1101687913,-1105719893,1041161122)+W(8,-1113259988,1017365039,-1123848398,-1168425160)+W(9,1026355631,-1120941186,1015583683,1036534559)+W(10,-1112197645,-1123264842,1024649726,1044370080)+W(11,-1103284196,966350543,1027345300,1035394325);sum2=W(0,982227227,-1150596845,-1115639872,1023788251)+W(1,-1119196045,1006169559,1015277390,1006064903)+W(2,-1139981943,-1110295858,1034991246,1022374646)+W(3,-1130167410,-1131776900,-1148612007,1006364327)+W(4,1046665761,1053945290,1041100183,1042970848)+W(5,-1080187678,-1078236510,-1128807740,1037025188)+W(6,1052132899,1058969577,1053440142,1047303977)+W(7,1035867784,1005561207,1029728171,1033799186)+W(8,-1121383639,-1143798279,-1214633659,-1120506242)+W(9,998104205,-1114831851,1023282498,1017634434)+W(10,-1112892146,-1124500500,1023435593,1037533712)+W(11,-1110685126,1014287051,1015376522,1033828190);WS(-1088189216,1043089281); sum1=W(0,-1121398410,1041680407,1049770738,-1140748743)+W(1,-1149048846,1043836791,1048806759,1026065228)+W(2,1036138263,1024770968,1034371336,1020127051)+W(3,1038047047,-1137213911,1037337862,-1128555260)+W(4,-1096476823,1047024381,1042644994,-1088213532)+W(5,-1108723571,-1101872740,1050638745,-1084369379)+W(6,1041309981,-1096464492,-1094226627,1036745881)+W(7,1028379642,-1102959693,-1106071481,1011670631)+W(8,-1107153702,1031833588,1008330103,1041481493)+W(9,1041455384,1026205458,1020682979,1035104215)+W(10,1045395982,-1120876186,1006701623,1040593116)+W(11,1016152290,1028740542,1024336228,1040128941);sum2=W(0,1004169862,-1114659435,1028575755,-1129618765)+W(1,1012667011,-1110197183,1025093243,-1163586391)+W(2,1006867267,-1110600679,-1140439179,1004789414)+W(3,1023888443,-1106146141,1019765437,-1148564598)+W(4,1020493837,1025826707,-1109549862,1018469269)+W(5,1045602812,1050121196,1018231561,-1120959857)+W(6,1007539419,1038682513,1009644755,-1119013866)+W(7,1005311510,1040899502,1017107081,-1126956769)+W(8,-1116607191,-1153284395,-1123897489,1022763469)+W(9,-1110473213,1019030581,-1131222849,1017295613)+W(10,-1107944702,1009132883,-1125130849,-1143499366)+W(11,-1114206671,-1127991173,1006886939,-1123266847);WS(-1082596160,1043517696); sum1=W(0,-1153492953,1032486047,-1154689545,1028909798)+W(1,1019116907,1037703496,-1128767583,967933898)+W(2,-1129844133,1027446332,-1115978788,-1132218099)+W(3,999709323,-1114471573,-1146849277,1011144392)+W(4,-1117361518,-1118729126,1025985531,-1104169149)+W(5,-1087176649,-1089391227,1031994846,1049441299)+W(6,1018413135,1032249225,1056185125,-1115448907)+W(7,-1130624603,1042483386,1036574828,-1154137305)+W(8,1034798166,-1125485751,1024711058,1029418231)+W(9,1046438773,986175666,1008177302,1006099469)+W(10,991686873,1030151438,-1125946755,-1106352341)+W(11,1022706506,1019997155,1006963806,-1131200252);sum2=W(0,1024001581,-1138508200,-1103978637,987806561)+W(1,-1138298076,1037869389,-1113576691,-1132313544)+W(2,-1131321664,-1102361734,1041829747,1003342504)+W(3,1016585830,-1103350916,995389041,1015369606)+W(4,-1109586411,1036006171,1032745921,1039699877)+W(5,1004783368,1057490671,1041044376,-1109697688)+W(6,1023850463,-1118937466,-1120283284,-1101655248)+W(7,1033013495,1023653113,-1137071480,-1123567230)+W(8,984628641,-1151113585,1017765222,-1106709297)+W(9,-1123523352,-1126668402,-1128136972,-1135869680)+W(10,-1133053924,-1119975873,-1142518888,1037905909)+W(11,-1123775069,-1153724113,1015435786,1008345900);WS(1066487464,-1081148228); sum1=W(0,-1115667101,1039828621,1045622655,-1156758047)+W(1,-1120457266,1051174634,1043227835,1032245054)+W(2,1028999903,1035936180,1038187760,1025970038)+W(3,1031685286,1038703027,1028125692,-1129094085)+W(4,1016276052,1034243041,1016497454,-1121579186)+W(5,-1081882686,-1081200961,-1125065087,-1107379682)+W(6,-1110627634,-1121754318,-1121918554,-1114502289)+W(7,-1130240468,-1128847308,-1138807120,1032926021)+W(8,-1129971954,1022570928,1025331662,1026804003)+W(9,1050524446,950141917,1033790001,1036683903)+W(10,1045144826,-1123227402,1035886143,1033938044)+W(11,1036935449,1033245399,1023360168,1028558202);sum2=W(0,-1109318105,1040565489,1013162021,990406129)+W(1,-1108583903,1041812300,-1125670617,1032976305)+W(2,1027268958,1031967357,-1123723867,1009651516)+W(3,1034160517,-1113698315,1033460548,-1109295843)+W(4,-1098989385,1036428343,1031481662,-1111903383)+W(5,1042303391,1039454897,1043786440,-1114873385)+W(6,-1113158574,-1097549253,1032603577,1001920896)+W(7,1032025507,-1119346601,-1117993943,1015358203)+W(8,-1111376696,1020848344,1026146121,-1112035485)+W(9,1044627344,-1114987237,993596601,1007686716)+W(10,1043104932,-1112152994,1030752081,-1107723593)+W(11,-1111706149,1024170945,-1128311189,-1142055788);WS(-1085700080,-1080808385); sum1=W(0,-1122227946,1020782261,-1130852634,1024296914)+W(1,1023737634,1000516328,1018157624,-1137292464)+W(2,1017074878,1034334952,1007198528,-1114666035)+W(3,998628462,1030076118,1028012332,-1116342907)+W(4,1011762792,-1106441949,1037784580,-1113008209)+W(5,-1126768286,-1096045179,1034492712,-1132968658)+W(6,-1108931914,1035021791,1044579508,-1104353680)+W(7,-1106440695,1037317931,1016641544,-1128335092)+W(8,1023563097,1007950112,1011155704,-1128041639)+W(9,1048917408,1027876850,-1130475172,1002605936)+W(10,-1127030516,1030237498,-1148910448,-1126595297)+W(11,-1122557970,1026212766,-1178616327,-1124799637);sum2=W(0,1018138398,-1136885460,1009004191,-1127545645)+W(1,999025130,1032831862,-1141392422,-1144042592)+W(2,-1150259805,-1138954980,1017820345,-1139402988)+W(3,-1133933532,-1164078621,1013413304,985356315)+W(4,-1151865619,-1125888003,-1131692274,1015771798)+W(5,-1097510643,-1072938398,-1091675886,-1107745249)+W(6,1017078443,-1117354278,-1091916978,-1117369881)+W(7,-1132951491,-1138824868,-1124163047,-1132039248)+W(8,1023581282,1018938725,996126556,1014637794)+W(9,1076041086,-1112160457,-1136255574,1057331451)+W(10,1032772879,-1138128772,-1150817344,1056314077)+W(11,1026258229,985080995,1018397555,1020965023);WS(1065410184,989310727); sum1=W(0,-1140125102,-1114916286,-1109321255,-1129262375)+W(1,-1133156750,-1103994248,-1113105487,-1116437485)+W(2,-1140436482,-1135877737,-1113291025,1013595422)+W(3,-1120957855,1020121135,1027066925,1001232640)+W(4,1039766830,-1115626794,1026154888,1036945010)+W(5,1046741097,1017259310,1060001058,1017194412)+W(6,-1110004779,1018378495,-1103200016,1059311888)+W(7,-1115618446,-1127100975,-1131905035,-1131666807)+W(8,-1121887434,1012320294,-1125355007,-1134197844)+W(9,-1114897776,-1133486286,-1137406030,-1094555822)+W(10,-1113774366,-1115411390,-1124720479,1023750749)+W(11,-1116648163,-1123146591,1004266540,-1124072268);sum2=W(0,994239369,1014594226,1015903261,-1134742142)+W(1,-1126643555,1031995313,-1129761964,-1134258278)+W(2,1015413679,1021296491,1009465920,-1124787402)+W(3,1010959842,1022764367,-1131866907,991423945)+W(4,-1150882457,1023023759,-1137672551,1020154303)+W(5,1040302074,-1097618001,1027518631,1022217883)+W(6,1029784509,-1122992412,-1098762324,1049285742)+W(7,-1122024941,-1118740892,-1126884057,-1135790753)+W(8,1017377705,-1125421078,1005131169,1024853570)+W(9,1026258033,-1138047636,1001175413,-1148789809)+W(10,1015729459,1016986651,-1148246653,-1132512970)+W(11,980872325,992745521,-1142203369,-1130065044);WS(1051937311,1019742014); sum1=W(0,997229903,1007594774,-1110586220,-1128733562)+W(1,-1116159949,-1126695312,-1114376035,1023734487)+W(2,-1139661928,-1154941499,1032525373,-1132293538)+W(3,1016780849,1026460481,1019369518,-1123545457)+W(4,-1115449474,1040493967,1034449865,1044317379)+W(5,-1131615423,-1096043495,-1106892452,1058430122)+W(6,1043036192,-1110832404,1048571437,1028795565)+W(7,-1122201669,1016066306,1031893623,-1111719346)+W(8,-1122019556,-1118602611,-1126315858,-1129053661)+W(9,-1114653189,-1115826781,1007433460,-1137597924)+W(10,-1106286569,1018237258,1027349977,-1104742917)+W(11,-1121789868,1018711058,-1123671919,-1118024837);sum2=W(0,1016157529,-1127740478,-1127535498,1008400273)+W(1,-1138058389,1049438349,1041994790,-1144490357)+W(2,-1130565626,-1113276412,-1105215135,-1125392389)+W(3,-1135290574,-1114929610,-1135958083,965128306)+W(4,-1101104373,-1108362087,-1120718262,-1110432262)+W(5,1056816205,-1105949033,1042410198,-1088501039)+W(6,1025802623,1029274599,-1108549667,1056199589)+W(7,1003318865,1031964529,-1152613734,1003347845)+W(8,-1146032407,-1134925453,1025653041,-1113670226)+W(9,1045816390,-1153231998,1011207517,-1132649478)+W(10,-1139374331,1000306913,-1127906971,-1122823248)+W(11,1019133207,-1130500213,-1157554354,-1123972337);WS(-1117640696,1034706864); return clamp(mstd0 + 5.0 * vsum / wsum * mstd1, 0.0, 1.0); } // nnedi3 vec4 hook() { vec4 ret = vec4(0.0); vec4 samples[12]; samples[0] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-2, -3), 0); samples[1] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-2, -1), 0); samples[2] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-2, 1), 0); samples[3] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(-2, 3), 0); samples[4] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(0, -3), 0); samples[5] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(0, -1), 0); samples[6] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(0, 1), 0); samples[7] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(0, 3), 0); samples[8] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(2, -3), 0); samples[9] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(2, -1), 0); samples[10] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(2, 1), 0); samples[11] = HOOKED_mul * textureGatherOffset(HOOKED_raw, HOOKED_pos, ivec2(2, 3), 0); ret[0] = nnedi3(samples); return ret; } // hook //!DESC NNEDI3 (combine_x, nns32, win8x6) //!HOOK LUMA //!BIND HOOKED //!BIND nnedi3_int //!WIDTH 2 HOOKED.w * //!OFFSET -0.500000 0.000000 //!WHEN HOOKED.w OUTPUT.w / 0.833333 < vec4 hook() { vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5; if (dir.x < 0.0) { return HOOKED_texOff(-dir); } else { return nnedi3_int_texOff(-dir); } }