// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // [65]int p; int x,y; thread EvalPolynomial { int t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40,t41,t42,t43,t44,t45,t46,t47,t48,t49,t50,t51,t52,t53,t54,t55,t56,t57,t58,t59,t60,t61,t62,t63,t64,t65,t66,t67,t68,t69,t70,t71,t72,t73,t74,t75,t76,t77,t78,t79,t80,t81,t82,t83,t84,t85,t86,t87,t88,t89,t90,t91,t92,t93,t94,t95,t96,t97,t98,t99,t100,t101,t102,t103,t104,t105,t106,t107,t108,t109,t110,t111,t112,t113,t114,t115,t116,t117,t118,t119,t120,t121,t122,t123,t124,t125,t126,t127,t128,t129; t0 = p[0]; t1 = p[1]; t2 = p[2]; t3 = p[3]; t4 = p[4]; t5 = p[5]; t6 = p[6]; t7 = p[7]; t8 = p[8]; t9 = p[9]; t10 = p[10]; t11 = p[11]; t12 = p[12]; t13 = p[13]; t14 = p[14]; t15 = p[15]; t16 = p[16]; t17 = p[17]; t18 = p[18]; t19 = p[19]; t20 = p[20]; t21 = p[21]; t22 = p[22]; t23 = p[23]; t24 = p[24]; t25 = p[25]; t26 = p[26]; t27 = p[27]; t28 = p[28]; t29 = p[29]; t30 = p[30]; t31 = p[31]; t32 = p[32]; t33 = p[33]; t34 = p[34]; t35 = p[35]; t36 = p[36]; t37 = p[37]; t38 = p[38]; t39 = p[39]; t40 = p[40]; t41 = p[41]; t42 = p[42]; t43 = p[43]; t44 = p[44]; t45 = p[45]; t46 = p[46]; t47 = p[47]; t48 = p[48]; t49 = p[49]; t50 = p[50]; t51 = p[51]; t52 = p[52]; t53 = p[53]; t54 = p[54]; t55 = p[55]; t56 = p[56]; t57 = p[57]; t58 = p[58]; t59 = p[59]; t60 = p[60]; t61 = p[61]; t62 = p[62]; t63 = p[63]; t64 = p[64]; t65 = +1; t66 = x; t67 = x; t68 = x; t69 = x; t70 = x; t71 = x; t72 = x; t73 = x; t74 = x; t75 = x; t76 = x; t77 = x; t78 = x; t79 = x; t80 = x; t81 = x; t82 = x; t83 = x; t84 = x; t85 = x; t86 = x; t87 = x; t88 = x; t89 = x; t90 = x; t91 = x; t92 = x; t93 = x; t94 = x; t95 = x; t96 = x; t97 = x; t98 = x; t99 = x; t100 = x; t101 = x; t102 = x; t103 = x; t104 = x; t105 = x; t106 = x; t107 = x; t108 = x; t109 = x; t110 = x; t111 = x; t112 = x; t113 = x; t114 = x; t115 = x; t116 = x; t117 = x; t118 = x; t119 = x; t120 = x; t121 = x; t122 = x; t123 = x; t124 = x; t125 = x; t126 = x; t127 = x; t128 = x; t129 = x; // up-level 0 t66 = t65 * t66; t68 = t67 * t68; t70 = t69 * t70; t72 = t71 * t72; t74 = t73 * t74; t76 = t75 * t76; t78 = t77 * t78; t80 = t79 * t80; t82 = t81 * t82; t84 = t83 * t84; t86 = t85 * t86; t88 = t87 * t88; t90 = t89 * t90; t92 = t91 * t92; t94 = t93 * t94; t96 = t95 * t96; t98 = t97 * t98; t100 = t99 * t100; t102 = t101 * t102; t104 = t103 * t104; t106 = t105 * t106; t108 = t107 * t108; t110 = t109 * t110; t112 = t111 * t112; t114 = t113 * t114; t116 = t115 * t116; t118 = t117 * t118; t120 = t119 * t120; t122 = t121 * t122; t124 = t123 * t124; t126 = t125 * t126; t128 = t127 * t128; // up-level 1 t68 = t66 * t68; t72 = t70 * t72; t76 = t74 * t76; t80 = t78 * t80; t84 = t82 * t84; t88 = t86 * t88; t92 = t90 * t92; t96 = t94 * t96; t100 = t98 * t100; t104 = t102 * t104; t108 = t106 * t108; t112 = t110 * t112; t116 = t114 * t116; t120 = t118 * t120; t124 = t122 * t124; t128 = t126 * t128; // up-level 2 t72 = t68 * t72; t80 = t76 * t80; t88 = t84 * t88; t96 = t92 * t96; t104 = t100 * t104; t112 = t108 * t112; t120 = t116 * t120; t128 = t124 * t128; // up-level 3 t80 = t72 * t80; t96 = t88 * t96; t112 = t104 * t112; t128 = t120 * t128; // up-level 4 t96 = t80 * t96; t128 = t112 * t128; // up-level 5 t128 = t96 * t128; // up-level 6 // down-level 7 // down-level 8 t112 = t96 * t112; // down-level 9 t88 = t80 * t88; t104 = t96 * t104; t120 = t112 * t120; // down-level 10 t76 = t72 * t76; t84 = t80 * t84; t92 = t88 * t92; t100 = t96 * t100; t108 = t104 * t108; t116 = t112 * t116; t124 = t120 * t124; // down-level 11 t70 = t68 * t70; t74 = t72 * t74; t78 = t76 * t78; t82 = t80 * t82; t86 = t84 * t86; t90 = t88 * t90; t94 = t92 * t94; t98 = t96 * t98; t102 = t100 * t102; t106 = t104 * t106; t110 = t108 * t110; t114 = t112 * t114; t118 = t116 * t118; t122 = t120 * t122; t126 = t124 * t126; // down-level 12 t67 = t66 * t67; t69 = t68 * t69; t71 = t70 * t71; t73 = t72 * t73; t75 = t74 * t75; t77 = t76 * t77; t79 = t78 * t79; t81 = t80 * t81; t83 = t82 * t83; t85 = t84 * t85; t87 = t86 * t87; t89 = t88 * t89; t91 = t90 * t91; t93 = t92 * t93; t95 = t94 * t95; t97 = t96 * t97; t99 = t98 * t99; t101 = t100 * t101; t103 = t102 * t103; t105 = t104 * t105; t107 = t106 * t107; t109 = t108 * t109; t111 = t110 * t111; t113 = t112 * t113; t115 = t114 * t115; t117 = t116 * t117; t119 = t118 * t119; t121 = t120 * t121; t123 = t122 * t123; t125 = t124 * t125; t127 = t126 * t127; t129 = t128 * t129; // multiply p[i] with x^i t65 = t0 * t65; t66 = t1 * t66; t67 = t2 * t67; t68 = t3 * t68; t69 = t4 * t69; t70 = t5 * t70; t71 = t6 * t71; t72 = t7 * t72; t73 = t8 * t73; t74 = t9 * t74; t75 = t10 * t75; t76 = t11 * t76; t77 = t12 * t77; t78 = t13 * t78; t79 = t14 * t79; t80 = t15 * t80; t81 = t16 * t81; t82 = t17 * t82; t83 = t18 * t83; t84 = t19 * t84; t85 = t20 * t85; t86 = t21 * t86; t87 = t22 * t87; t88 = t23 * t88; t89 = t24 * t89; t90 = t25 * t90; t91 = t26 * t91; t92 = t27 * t92; t93 = t28 * t93; t94 = t29 * t94; t95 = t30 * t95; t96 = t31 * t96; t97 = t32 * t97; t98 = t33 * t98; t99 = t34 * t99; t100 = t35 * t100; t101 = t36 * t101; t102 = t37 * t102; t103 = t38 * t103; t104 = t39 * t104; t105 = t40 * t105; t106 = t41 * t106; t107 = t42 * t107; t108 = t43 * t108; t109 = t44 * t109; t110 = t45 * t110; t111 = t46 * t111; t112 = t47 * t112; t113 = t48 * t113; t114 = t49 * t114; t115 = t50 * t115; t116 = t51 * t116; t117 = t52 * t117; t118 = t53 * t118; t119 = t54 * t119; t120 = t55 * t120; t121 = t56 * t121; t122 = t57 * t122; t123 = t58 * t123; t124 = t59 * t124; t125 = t60 * t125; t126 = t61 * t126; t127 = t62 * t127; t128 = t63 * t128; t129 = t64 * t129; // sum up p[i]*x^i by a binary tree // level 0 t65 = t65 + t66; t66 = t67 + t68; t67 = t69 + t70; t68 = t71 + t72; t69 = t73 + t74; t70 = t75 + t76; t71 = t77 + t78; t72 = t79 + t80; t73 = t81 + t82; t74 = t83 + t84; t75 = t85 + t86; t76 = t87 + t88; t77 = t89 + t90; t78 = t91 + t92; t79 = t93 + t94; t80 = t95 + t96; t81 = t97 + t98; t82 = t99 + t100; t83 = t101 + t102; t84 = t103 + t104; t85 = t105 + t106; t86 = t107 + t108; t87 = t109 + t110; t88 = t111 + t112; t89 = t113 + t114; t90 = t115 + t116; t91 = t117 + t118; t92 = t119 + t120; t93 = t121 + t122; t94 = t123 + t124; t95 = t125 + t126; t96 = t127 + t128; t97 = t129; // level 0 t65 = t65 + t66; t66 = t67 + t68; t67 = t69 + t70; t68 = t71 + t72; t69 = t73 + t74; t70 = t75 + t76; t71 = t77 + t78; t72 = t79 + t80; t73 = t81 + t82; t74 = t83 + t84; t75 = t85 + t86; t76 = t87 + t88; t77 = t89 + t90; t78 = t91 + t92; t79 = t93 + t94; t80 = t95 + t96; t81 = t97; // level 0 t65 = t65 + t66; t66 = t67 + t68; t67 = t69 + t70; t68 = t71 + t72; t69 = t73 + t74; t70 = t75 + t76; t71 = t77 + t78; t72 = t79 + t80; t73 = t81; // level 0 t65 = t65 + t66; t66 = t67 + t68; t67 = t69 + t70; t68 = t71 + t72; t69 = t73; // level 0 t65 = t65 + t66; t66 = t67 + t68; t67 = t69; // level 0 t65 = t65 + t66; t66 = t67; // level 0 t65 = t65 + t66; // final result y = t65; }