any FVIM incidence, say in function f, with a variable index defined by a range with upper limit offset from U. decoupling will not hold for that function index. The reason is that, for iz=Li the first pass through the "ii loop," the function f will require values of x for all values of ii. This being the case these values must be supplied by tearing x, hence decoupling could not hold. An analogous condition holds for the function index being decremented rather than incremented. Another "shortcut" is to note that, if for some variable type all variable indices depending upon a particular function index are the same, decoupling cannot occur for that function index. Figure 4-1 presents an example problem to which the decoupling algorithm will be applied. The first step is to produce the FVIM, which is at the top of the figure. No assignments need be broken as none have been made. Choose ascending order for both indices initially. The function and variable types are untagged. Now the algorithm begins in earnest. The FVIM does not fully precedence order, so the algorithm skips to step IV.A. The following steps are then carried out: IV. A. Choose x. Tag x. IV. B. Choose f. Tag f. IV. C. Legal output; continue. V. A. Choose ii. VI. A. No decoupling (all variable indices are j1). Tag i V. B. Choose i2. VI. A. No decoupling (U. =U. ). Tag i . 34 12 V. B. No more function indices. IV. B. Choose g. Tag g. IV. C. Legal output; continue. 1