// ************************************************************************** // // // // 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 // // // // ************************************************************************** // // Horner's rule yields an efficient algorithm to decode radix-B or B-compl. // // numbers (viewed as polynomials). // // ************************************************************************** // macro B = 4; macro N = 4; macro M = 128; module Horner([N]nat{B} ?x) { [N+1]nat{M} z; z[N] = 0; for(i=0..N-1) { z[N-i-1] = z[N-i] * B + x[N-i-1]; } } drivenby { x[3] = 0; x[2] = 2; x[1] = 1; x[0] = 3; } drivenby { x[3] = 1; x[2] = 2; x[1] = 1; x[0] = 3; }