| OCR Text |
Show Three heaps are required to evaluate arbitrary Boolean expressions. They are denoted as df, fp, and fxy (see Figure 4.16). For Boolean expressions with N inputs, total differentials (dF, dx, and dy in Equation (4.1)) are represented by heap df with 2*N-1 array elements. Elements df [N] to df [2*N-1] contain values of independent input variables. Intermediate total differentials are stored in elements df [2] to df [N-1]. 32 bits of element df [1] contain the final total differentials for all 32 Boolean expressions. The values of partial derivatives Fx and Fy for all operations are represented by the heap fp with 2*N-1 array elements. The values of a partial derivative Fxy for all operations are represented by the heap fxy with N - 1 elements. To evaluate a total differential for a Boolean expression that stays in the ith bit of the j th element in df [j], j = 1, 2, . . ., N-l, the values in Equation (4.1) are placed as follows: • dx is placed in the ith bit of df [2*j] ; • dy is placed in the ith bit of df [2*j + 1]; • Fx is placed-in the ith bit of fp[2*j]; • Fy is placed in the ith bit of f p [2* j + 1]; • Fxy is placed in the ith bit of fxy [j]; and • the result is placed in the ith bit of df [j]. /* N is the number of inputs */ array df[2*N-l]; /* total differentials */ array fp[2*N-l]; /* partial derivatives Fx and Fy */ array} fxy[N-l]; /* partial derivatives Fxy */ 104 Figure 4.16. Data Structures for the Unison Algorithm |