// ************************************************************************** // // // // 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 // // // // ************************************************************************** // int p0,p1,p2,p3,p4; int x,y; thread EvalPolynomial { int t0,t1,t2,t3,t4; t0 = +1; t1 = x; t2 = x; t3 = x; t4 = x; // up-level 0 t1 = t0 * t1; t3 = t2 * t3; // up-level 1 t3 = t1 * t3; // up-level 2 // down-level 3 // down-level 4 t2 = t1 * t2; t4 = t3 * t4; // multiply p[i] with x^i t0 = p0 * t0; t1 = p1 * t1; t2 = p2 * t2; t3 = p3 * t3; t4 = p4 * t4; // sum up p[i]*x^i by a binary tree // level 0 t0 = t0 + t1; t1 = t2 + t3; t2 = t4; // level 0 t0 = t0 + t1; t1 = t2; // level 0 t0 = t0 + t1; // final result y = t0; }