/*** * This code is a part of EvoApproxLib library (ehw.fit.vutbr.cz/approxlib) distributed under The MIT License. * When used, please cite the following article(s): V. Mrazek, Z. Vasicek, L. Sekanina, H. Jiang and J. Han, "Scalable Construction of Approximate Multipliers With Formally Guaranteed Worst Case Error" in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 26, no. 11, pp. 2572-2576, Nov. 2018. doi: 10.1109/TVLSI.2018.2856362 * This file contains a circuit from a sub-set of pareto optimal circuits with respect to the pwr and mre parameters ***/ // MAE% = 0.014 % // MAE = 2396 // WCE% = 0.073 % // WCE = 12279 // WCRE% = 1500.00 % // EP% = 93.71 % // MRE% = 1.17 % // MSE = 97867.163e2 // PDK45_PWR = 0.756 mW // PDK45_AREA = 1145.1 um2 // PDK45_DELAY = 1.91 ns #include #include uint32_t mul12s_34M(uint16_t A, uint16_t B) { uint32_t O; uint8_t n557,n563,n550,O8,n492,n551,n552,n538,n447,n536,n537,n534,n553,n532,n530,n531,n657,O21,n656,n569,n568,n441,O14,O4,n85,n84,n87,n86,n81,n80,n83,n82,n402,n400,n401,n89,n404,n405,n659,n658,n710,n392,n393,n390,n391,n396,n397,n394,n395,n398,n399,n711,n240,n241,n242,n243,n244,n245,n246,n247,n248,n249,n718,n719,n499,n498,n329,n328,n327,n326,n325,n324,n323,n322,n321,n320,n407,n602,n662,n663,n149,n148,n666,n667,n664,n665,n143,n142,n141,n669,n147,n146,n145,n144,n74,n75,n76,n77,n70,n71,n72,n73,n79,n338,n738,n339,n701,n700,n703,n565,n564,n567,n250,n561,n560,n448,n449,n446,n257,n444,n445,n442,n443,n440,n256,O1,n733,n734,n706,n735,n736,n708,n737,O15,n693,n692,n691,n690,n697,n696,n695,n694,n699,n698,n363,n362,n361,n360,n367,n366,n365,n364,n369,n368,O17,n598,n599,n591,n592,n593,n594,n595,n596,n597,n510,O13,n223,n511,n627,n624,n625,n622,n623,n189,n188,n187,n186,n185,n184,n183,n182,n628,n629,n749,n748,n219,n745,n744,n215,n214,n213,n212,n211,n210,O5,O2,n133,n130,n131,n136,n137,n134,n135,n138,n139,n720,n408,n529,n528,n409,n521,n520,n523,n522,n525,n524,n527,n526,n740,n661,n406,n88,n415,n414,n417,n416,n411,n410,n413,n412,n419,n418,n98,n99,n558,n559,n645,n92,n93,n90,n91,n96,n97,n94,n95,n742,n641,n389,n388,n385,n384,n387,n386,n381,n380,n383,n382,n173,n253,n252,n251,n702,n705,n704,n255,n254,n709,n648,n259,n258,n649,n318,n319,n312,n313,n310,n311,n316,n317,n314,n315,O9,n484,O22,n176,n177,n174,n175,n172,O6,n170,n178,n179,n679,n678,n675,n674,n676,n671,n670,n673,n672,n626,O19,n620,n621,n222,O23,n741,n459,n458,n512,n513,n514,n515,n516,n517,n518,n450,n453,n452,n455,n454,n457,n456,O12,n716,n717,n181,n714,n493,n217,n715,n216,n712,n747,n713,n428,n429,n358,n359,n356,n425,n354,n355,n352,n353,n422,n423,n589,n588,n743,n583,n582,n581,n580,n587,n586,n585,n584,n545,n631,n630,n633,n632,n635,n634,n637,n639,n487,n610,O11,n739,n228,n229,n730,n731,n220,n221,n226,n227,n224,n225,n279,n555,n278,n495,n494,n497,n496,n491,n490,n644,n378,n646,n647,n129,n128,n642,n379,n125,n124,n127,n126,n121,n120,n123,n122,n566,O16,n460,n461,n462,n463,n464,n465,n466,n467,n468,n469,n549,n548,n547,n546,O3,n544,n543,n542,n541,n540,n341,n481,n340,n343,n562,n342,n345,n344,n424,n346,n305,n304,n307,n306,n301,n300,n268,n269,n266,n267,n264,n265,n309,n308,n260,n261,n638,n284,n285,n286,n287,n280,n281,n282,n283,n288,n289,n161,n160,n163,n162,n165,n164,n167,n166,n169,n168,n427,n608,n609,n600,n601,n603,n604,n605,n606,n607,n58,n59,n56,n54,n55,n52,n53,n451,n519,n421,n660,n114,n115,n116,n117,n110,n111,n112,n113,n539,n118,n119,n503,n502,n501,n500,n507,n506,n505,n504,n509,n508,n668,n140,O7,n750,n349,n348,n439,n438,n437,n436,n435,n434,n433,n432,n431,n430,n535,n618,n554,n613,n612,n611,n235,n234,n237,n236,n231,n230,n233,n232,n617,n337,n239,n238,n616,n482,n483,n729,n728,n486,n615,n485,n334,n335,n488,n614,n330,n331,n332,n333,O20,O18,n480,O0,n158,n159,n655,n654,n653,n652,n651,n650,n150,n151,n152,n153,n154,n155,n156,n157,n67,n66,n64,n63,n62,n61,n60,n69,n68,n723,n722,n721,n489,n303,n727,n302,n726,n725,n724,O10,n262,n263,n473,n472,n470,n477,n476,n475,n474,n479,n478,n578,n579,n572,n573,n570,n571,n576,n577,n574,n575,n680,n681,n682,n683,n684,n685,n686,n687,n688,n689,n347,n370,n371,n372,n373,n374,n375,n376,n377,n271,n270,n272,n275,n274,n277,n276,n357,n426,n297,n296,n295,n294,n293,n292,n291,n290,n420,n299,n298,n350,n351,n198,n199,n194,n195,n196,n197,n190,n191,n192,n193,n752,n619,n751,n208,n209,n204,n205,n206,n207,n200,n201,n202,n203,n640,n180,n643,n107,n106,n105,n104,n103,n102,n100,n556,n109,n108; O0=0; O1=0; O2=0; O3=0; O4=((B >> 2)&1)&((A >> 2)&1); n100=((B >> 2)&1)&((A >> 6)&1); n125=((B >> 5)&1)&((A >> 4)&1); n127=((B >> 7)&1)&((A >> 2)&1); n128=((B >> 6)&1)&((A >> 3)&1); n129=((B >> 4)&1)&((A >> 5)&1); n130=((B >> 3)&1)&((A >> 6)&1); n131=((B >> 2)&1)&((A >> 7)&1); n163=((B >> 6)&1)&((A >> 4)&1); n165=((B >> 8)&1)&((A >> 2)&1); n166=((B >> 7)&1)&((A >> 3)&1); n167=((B >> 5)&1)&((A >> 5)&1); n168=((B >> 4)&1)&((A >> 6)&1); n169=((B >> 3)&1)&((A >> 7)&1); n170=((B >> 2)&1)&((A >> 8)&1); n209=((B >> 7)&1)&((A >> 4)&1); n211=((B >> 9)&1)&((A >> 2)&1); n212=((B >> 8)&1)&((A >> 3)&1); n213=((B >> 6)&1)&((A >> 5)&1); n214=((B >> 5)&1)&((A >> 6)&1); n215=((B >> 4)&1)&((A >> 7)&1); n216=((B >> 3)&1)&((A >> 8)&1); n217=((B >> 2)&1)&((A >> 9)&1); n263=((B >> 8)&1)&((A >> 4)&1); n265=((B >> 10)&1)&((A >> 2)&1); n266=((B >> 9)&1)&((A >> 3)&1); n267=((B >> 7)&1)&((A >> 5)&1); n268=((B >> 6)&1)&((A >> 6)&1); n269=((B >> 5)&1)&((A >> 7)&1); n270=((B >> 4)&1)&((A >> 8)&1); n271=((B >> 3)&1)&((A >> 9)&1); n272=((B >> 2)&1)&((A >> 10)&1); n280=((B >> 2)&1)&((A >> 11)&1); n326=((B >> 9)&1)&((A >> 4)&1); n328=((B >> 11)&1)&((A >> 2)&1); n329=((B >> 10)&1)&((A >> 3)&1); n330=((B >> 8)&1)&((A >> 5)&1); n331=((B >> 7)&1)&((A >> 6)&1); n332=((B >> 6)&1)&((A >> 7)&1); n333=((B >> 5)&1)&((A >> 8)&1); n334=((B >> 4)&1)&((A >> 9)&1); n335=((B >> 3)&1)&((A >> 10)&1); n349=((B >> 3)&1)&((A >> 11)&1); n395=((B >> 10)&1)&((A >> 4)&1); n396=((B >> 11)&1)&((A >> 3)&1); n397=((B >> 9)&1)&((A >> 5)&1); n398=((B >> 8)&1)&((A >> 6)&1); n399=((B >> 7)&1)&((A >> 7)&1); n400=((B >> 6)&1)&((A >> 8)&1); n401=((B >> 5)&1)&((A >> 9)&1); n402=((B >> 4)&1)&((A >> 10)&1); n418=((B >> 4)&1)&((A >> 11)&1); n454=((B >> 9)&1)&((A >> 6)&1); n462=((B >> 10)&1)&((A >> 5)&1); n465=~(((A >> 4)&1)|((A >> 3)&1)); n467=((B >> 8)&1)&((A >> 7)&1); n468=((B >> 7)&1)&((A >> 8)&1); n469=((B >> 6)&1)&((A >> 9)&1); n470=((B >> 5)&1)&((A >> 10)&1); n490=((B >> 5)&1)&((A >> 11)&1); n527=((B >> 11)&1)&((A >> 5)&1); n528=((B >> 10)&1)&((A >> 6)&1); n529=((B >> 9)&1)&((A >> 7)&1); n53=((B >> 3)&1)&((A >> 3)&1); n530=((B >> 8)&1)&((A >> 8)&1); n531=((B >> 7)&1)&((A >> 9)&1); n532=((B >> 6)&1)&((A >> 10)&1); n55=((B >> 3)&1)&((A >> 2)&1); n552=((B >> 6)&1)&((A >> 11)&1); n56=((B >> 2)&1)&((A >> 3)&1); n574=((B >> 9)&1)&((A >> 8)&1); n582=((B >> 10)&1)&((A >> 7)&1); n586=((B >> 11)&1)&((A >> 6)&1); n588=((B >> 8)&1)&((A >> 9)&1); n589=((B >> 7)&1)&((A >> 10)&1); n60=((B >> 4)&1)&((A >> 3)&1); n609=((B >> 7)&1)&((A >> 11)&1); n62=((B >> 4)&1)&((A >> 2)&1); n632=((B >> 11)&1)&((A >> 7)&1); n633=((B >> 10)&1)&((A >> 8)&1); n634=((B >> 9)&1)&((A >> 9)&1); n635=((B >> 8)&1)&((A >> 10)&1); n64=((B >> 2)&1)&((A >> 4)&1); n655=((B >> 8)&1)&((A >> 11)&1); n663=((B >> 9)&1)&((A >> 10)&1); n671=((B >> 10)&1)&((A >> 9)&1); n675=((B >> 11)&1)&((A >> 8)&1); n696=((B >> 9)&1)&((A >> 11)&1); n705=((B >> 11)&1)&((A >> 9)&1); n706=((B >> 10)&1)&((A >> 10)&1); n726=((B >> 10)&1)&((A >> 11)&1); n730=((B >> 11)&1)&((A >> 10)&1); n74=((B >> 3)&1)&((A >> 4)&1); n745=((B >> 11)&1)&((A >> 11)&1); n76=((B >> 5)&1)&((A >> 2)&1); n77=((B >> 2)&1)&((A >> 5)&1); n95=((B >> 4)&1)&((A >> 4)&1); n97=((B >> 6)&1)&((A >> 2)&1); n98=((B >> 5)&1)&((A >> 3)&1); n99=((B >> 3)&1)&((A >> 5)&1); n124=n98&n97; n126=n128^n127; n162=n128&n127; n164=n166^n165; n208=n166&n165; n210=n212^n211; n262=n212&n211; n264=n266^n265; n325=n266&n265; n327=~(n329^n328); n394=n329&~n328; n460=n395&n396; n464=((B >> 11)&1)&~n465; n466=((A >> 4)&1)&n396; n52=n53&O4; n54=~(n56|n55); n59=n60&n55; n61=~(n62|n53); n75=n76^n60; n94=n76&n60; n96=n98^n97; O5=~(n54|n52); n119=n95&n94; n120=n95&n96; n121=n96&n94; n123=~(n125^n124); n157=n125&n124; n158=n125&n126; n159=n126&n124; n161=~(n163^n162); n203=n163&n162; n204=n163&n164; n205=n164&n162; n207=~(n209^n208); n257=n209&n208; n258=n209&n210; n259=n210&n208; n261=~(n263^n262); n320=n263&n262; n321=n263&n264; n322=n264&n262; n324=~(n326^n325); n389=n326&n325; n390=n326&n327; n391=n327&n325; n393=~(n395^n394); n459=n395&n394; n461=n396&n394; n463=~n466&n464; n526=n527^n464; n58=~(n61|n59); n585=~(n527|n464); n63=~(n64^n52); n70=n64&n52; n73=~(n74^n59); n89=n74&n59; n90=n74&n75; n91=n75&n59; n93=~(n95^n94); O6=~(n63^n58); n118=~(n120|n119); n122=n126^n123; n156=~(n158|n157); n160=n164^n161; n202=~(n204|n203); n206=n210^n207; n256=~(n258|n257); n260=n264^n261; n319=~(n321|n320); n323=n327^n324; n388=~(n390|n389); n392=n396^n393; n458=~(n460|n459); n524=n462&n463; n580=n528&n526; n584=~n586&n585; n587=((A >> 6)&1)&~n585; n69=n64&n58; n71=n52&n58; n72=n75^n73; n88=~(n90|n89); n92=n96^n93; n113=n99&~n92; n117=~n121&n118; n151=n129&~n122; n155=~n159&n156; n197=n167&~n160; n201=~n205&n202; n251=n213&~n206; n255=~n259&n256; n314=n267&~n260; n318=~n322&n319; n383=n330&~n323; n387=~n391&n388; n452=n397&~n392; n457=~n461&n458; n583=~(n587|n584); n631=~(n632^n584); n674=~n632&n584; n68=~(n70|n69); n83=n77&~n72; n87=~n91&n88; n112=~(n92|n87); n114=n99&~n87; n116=~(n122^n117); n150=~(n122|n117); n152=n129&~n117; n154=~(n160^n155); n196=~(n160|n155); n198=n167&~n155; n200=~(n206^n201); n250=~(n206|n201); n252=n213&~n201; n254=~(n260^n255); n313=~(n260|n255); n315=n267&~n255; n317=~(n323^n318); n382=~(n323|n318); n384=n330&~n318; n386=~(n392^n387); n451=~(n392|n387); n453=n397&~n387; n456=n462^n457; n523=n462&~n457; n525=n463&~n457; n629=n582&n583; n669=n633&n631; n67=~n71&n68; n673=~n675&n674; n676=((A >> 8)&1)&~n674; n86=~(n92^n87); n111=~(n113|n112); n115=n129^n116; n149=~(n151|n150); n153=n167^n154; n195=~(n197|n196); n199=n213^n200; n249=~(n251|n250); n253=n267^n254; n312=~(n314|n313); n316=n330^n317; n381=~(n383|n382); n385=n397^n386; n450=~(n452|n451); n455=n463^n456; n522=~(n524|n523); n66=~(n72^n67); n672=~(n676|n673); n704=~(n705^n673); n729=~n705&n673; n82=~(n72|n67); n84=n77&~n67; n85=n99^n86; O7=~(n77^n66); n107=n100&~n85; n110=~n114&n111; n145=n130&~n115; n148=~n152&n149; n191=n168&~n153; n194=~n198&n195; n245=n214&~n199; n248=~n252&n249; n308=n268&~n253; n311=~n315&n312; n377=n331&~n316; n380=~n384&n381; n446=n398&~n385; n449=~n453&n450; n517=n454&~n455; n521=~n525&n522; n702=n671&n672; n724=n706&n704; n728=~n730&n729; n731=((A >> 10)&1)&~n729; n81=~(n83|n82); n109=~(n115^n110); n143=~(n115|n110); n144=n130&~n110; n147=~(n153^n148); n189=~(n153|n148); n190=n168&~n148; n193=~(n199^n194); n243=~(n199|n194); n244=n214&~n194; n247=~(n253^n248); n306=~(n253|n248); n307=n268&~n248; n310=~(n316^n311); n375=~(n316|n311); n376=n331&~n311; n379=~(n385^n380); n444=~(n385|n380); n445=n398&~n380; n448=n454^n449; n516=n454&~n449; n518=~(n455|n449); n520=n526^n521; n579=n526&~n521; n581=n528&~n521; n727=~(n731|n728); n744=~(n745^n728); n751=n745&n728; n80=~n84&n81; n105=~(n85|n80); n106=n100&~n80; n108=n130^n109; n142=~(n144|n143); n146=n168^n147; n188=~(n190|n189); n192=n214^n193; n242=~(n244|n243); n246=n268^n247; n305=~(n307|n306); n309=n331^n310; n374=~(n376|n375); n378=n398^n379; n443=~(n445|n444); n447=~(n455^n448); n515=~(n517|n516); n519=n528^n520; n578=~(n580|n579); n742=~n726&n727; n79=~(n85^n80); O8=~(n100^n79); n104=~(n106|n105); n138=n131&~n108; n141=~n145&n142; n184=n169&~n146; n187=~n191&n188; n238=n215&~n192; n241=~n245&n242; n301=n269&~n246; n304=~n308&n305; n370=n332&~n309; n373=~n377&n374; n439=n399&~n378; n442=~n446&n443; n510=n467&~n447; n514=~n518&n515; n572=n529&~n519; n577=~n581&n578; n103=~n107&n104; n140=~(n146^n141); n182=~(n146|n141); n183=n169&~n141; n186=~(n192^n187); n236=~(n192|n187); n237=n215&~n187; n240=~(n246^n241); n299=~(n246|n241); n300=n269&~n241; n303=~(n309^n304); n368=~(n309|n304); n369=n332&~n304; n372=~(n378^n373); n437=~(n378|n373); n438=n399&~n373; n441=~(n447^n442); n509=~(n447|n442); n511=n467&~n442; n513=~(n519^n514); n571=~(n519|n514); n573=n529&~n514; n576=n582^n577; n628=n582&~n577; n630=n583&~n577; n102=~(n108^n103); n136=~(n108|n103); n137=n131&~n103; n139=n169^n140; n181=~(n183|n182); n185=n215^n186; n235=~(n237|n236); n239=n269^n240; n298=~(n300|n299); n302=n332^n303; n367=~(n369|n368); n371=n399^n372; n436=~(n438|n437); n440=n467^n441; n508=~(n510|n509); n512=n529^n513; n570=~(n572|n571); n575=n583^n576; n627=~(n629|n628); O9=~(n131^n102); n135=~(n137|n136); n177=n170&~n139; n180=~n184&n181; n231=n216&~n185; n234=~n238&n235; n294=n270&~n239; n297=~n301&n298; n363=n333&~n302; n366=~n370&n367; n432=n400&~n371; n435=~n439&n436; n503=n468&~n440; n507=~n511&n508; n565=n530&~n512; n569=~n573&n570; n622=n574&~n575; n626=~n630&n627; n134=~n138&n135; n179=~(n185^n180); n229=~(n185|n180); n230=n216&~n180; n233=~(n239^n234); n292=~(n239|n234); n293=n270&~n234; n296=~(n302^n297); n361=~(n302|n297); n362=n333&~n297; n365=~(n371^n366); n430=~(n371|n366); n431=n400&~n366; n434=~(n440^n435); n502=~(n440|n435); n504=n468&~n435; n506=~(n512^n507); n564=~(n512|n507); n566=n530&~n507; n568=n574^n569; n621=n574&~n569; n623=~(n575|n569); n625=n631^n626; n668=n631&~n626; n670=n633&~n626; n133=~(n139^n134); n175=~(n139|n134); n176=n170&~n134; n178=n216^n179; n228=~(n230|n229); n232=n270^n233; n291=~(n293|n292); n295=n333^n296; n360=~(n362|n361); n364=n400^n365; n429=~(n431|n430); n433=n468^n434; n501=~(n503|n502); n505=n530^n506; n563=~(n565|n564); n567=~(n575^n568); n620=~(n622|n621); n624=n633^n625; n667=~(n669|n668); O10=~(n170^n133); n174=~(n176|n175); n224=n217&~n178; n227=~n231&n228; n287=n271&~n232; n290=~n294&n291; n356=n334&~n295; n359=~n363&n360; n425=n401&~n364; n428=~n432&n429; n496=n469&~n433; n500=~n504&n501; n558=n531&~n505; n562=~n566&n563; n615=n588&~n567; n619=~n623&n620; n661=n634&~n624; n666=~n670&n667; n173=~n177&n174; n226=~(n232^n227); n285=~(n232|n227); n286=n271&~n227; n289=~(n295^n290); n354=~(n295|n290); n355=n334&~n290; n358=~(n364^n359); n423=~(n364|n359); n424=n401&~n359; n427=~(n433^n428); n495=~(n433|n428); n497=n469&~n428; n499=~(n505^n500); n557=~(n505|n500); n559=n531&~n500; n561=~(n567^n562); n614=~(n567|n562); n616=n588&~n562; n618=~(n624^n619); n660=~(n624|n619); n662=n634&~n619; n665=n671^n666; n701=n671&~n666; n703=n672&~n666; n172=~(n178^n173); n222=~(n178|n173); n223=n217&~n173; n225=n271^n226; n284=~(n286|n285); n288=n334^n289; n353=~(n355|n354); n357=n401^n358; n422=~(n424|n423); n426=n469^n427; n494=~(n496|n495); n498=n531^n499; n556=~(n558|n557); n560=n588^n561; n613=~(n615|n614); n617=n634^n618; n659=~(n661|n660); n664=n672^n665; n700=~(n702|n701); O11=~(n217^n172); n221=~(n223|n222); n279=n272&~n225; n283=~n287&n284; n348=n335&~n288; n352=~n356&n353; n417=n402&~n357; n421=~n425&n422; n488=n470&~n426; n493=~n497&n494; n550=n532&~n498; n555=~n559&n556; n607=n589&~n560; n612=~n616&n613; n653=n635&~n617; n658=~n662&n659; n694=n663&~n664; n699=~n703&n700; n220=~n224&n221; n282=~(n288^n283); n346=~(n288|n283); n347=n335&~n283; n351=~(n357^n352); n415=~(n357|n352); n416=n402&~n352; n420=~(n426^n421); n487=~(n426|n421); n489=n470&~n421; n492=~(n498^n493); n549=~(n498|n493); n551=n532&~n493; n554=~(n560^n555); n606=~(n560|n555); n608=n589&~n555; n611=~(n617^n612); n652=~(n617|n612); n654=n635&~n612; n657=n663^n658; n693=n663&~n658; n695=~(n664|n658); n698=n704^n699; n723=n704&~n699; n725=n706&~n699; n219=~(n225^n220); n277=~(n225|n220); n278=n272&~n220; n281=n335^n282; n345=~(n347|n346); n350=n402^n351; n414=~(n416|n415); n419=n470^n420; n486=~(n488|n487); n491=n532^n492; n548=~(n550|n549); n553=n589^n554; n605=~(n607|n606); n610=n635^n611; n651=~(n653|n652); n656=~(n664^n657); n692=~(n694|n693); n697=n706^n698; n722=~(n724|n723); O12=~(n272^n219); n276=~(n278|n277); n340=~(n280|n281); n344=~n348&n345; n409=~(n349|n350); n413=~n417&n414; n481=~(n418|n419); n485=~n489&n486; n543=~(n490|n491); n547=~n551&n548; n600=~(n552|n553); n604=~n608&n605; n646=~(n609|n610); n650=~n654&n651; n687=~(n655|n656); n691=~n695&n692; n717=~(n696|n697); n721=~n725&n722; n275=~n279&n276; n343=~(n349^n344); n408=~(n349|n344); n410=~(n350|n344); n412=~(n418^n413); n480=~(n418|n413); n482=~(n419|n413); n484=~(n490^n485); n542=~(n490|n485); n544=~(n491|n485); n546=~(n552^n547); n599=~(n552|n547); n601=~(n553|n547); n603=~(n609^n604); n645=~(n609|n604); n647=~(n610|n604); n649=~(n655^n650); n686=~(n655|n650); n688=~(n656|n650); n690=~(n696^n691); n716=~(n696|n691); n718=~(n697|n691); n720=~(n726^n721); n741=~(n726|n721); n743=n727&~n721; n274=~(n280^n275); n339=~(n280|n275); n341=~(n281|n275); n342=~(n350^n343); n407=~(n409|n408); n411=~(n419^n412); n479=~(n481|n480); n483=~(n491^n484); n541=~(n543|n542); n545=~(n553^n546); n598=~(n600|n599); n602=~(n610^n603); n644=~(n646|n645); n648=~(n656^n649); n685=~(n687|n686); n689=~(n697^n690); n715=~(n717|n716); n719=n727^n720; n740=~(n742|n741); O13=n281^n274; n338=~(n340|n339); n406=~n410&n407; n478=~n482&n479; n540=~n544&n541; n597=~n601&n598; n643=~n647&n644; n684=~n688&n685; n714=~n718&n715; n739=~n743&n740; n337=~n341&n338; n405=~(n411^n406); n476=~(n411|n406); n538=~(n483|n478); n595=~(n545|n540); n641=~(n602|n597); n682=~(n648|n643); n712=~(n689|n684); n737=~(n719|n714); n750=~(n744|n739); O14=n342^n337; n404=~(n342|n337); n749=~(n751|n750); O15=~(n405^n404); n475=~n411&n404; n477=~n406&n404; n474=~(n476|n475); n473=~n477&n474; n472=~(n478^n473); n537=~(n478|n473); n539=~(n483|n473); O16=n483^n472; n536=~(n538|n537); n535=~n539&n536; n534=~(n540^n535); n594=~(n540|n535); n596=~(n545|n535); O17=n545^n534; n593=~(n595|n594); n592=~n596&n593; n591=~(n597^n592); n640=~(n597|n592); n642=~(n602|n592); O18=n602^n591; n639=~(n641|n640); n638=~n642&n639; n637=~(n643^n638); n681=~(n643|n638); n683=~(n648|n638); O19=n648^n637; n680=~(n682|n681); n679=~n683&n680; n678=~(n684^n679); n711=~(n684|n679); n713=~(n689|n679); O20=n689^n678; n710=~(n712|n711); n709=~n713&n710; n708=~(n714^n709); n736=~(n714|n709); n738=~(n719|n709); O21=n719^n708; n735=~(n737|n736); n734=~n738&n735; n733=~(n739^n734); n748=~(n739|n734); n752=~(n744|n734); O22=n744^n733; n747=n749&~n748; O23=~n752&n747; O = (O0 << 0)|(O1 << 1)|(O2 << 2)|(O3 << 3)|(O4 << 4)|(O5 << 5)|(O6 << 6)|(O7 << 7)|(O8 << 8)|(O9 << 9)|(O10 << 10)|(O11 << 11)|(O12 << 12)|(O13 << 13)|(O14 << 14)|(O15 << 15)|(O16 << 16)|(O17 << 17)|(O18 << 18)|(O19 << 19)|(O20 << 20)|(O21 << 21)|(O22 << 22)|(O23 << 23); return O; }