Figures A.10, A.11, and A.12 give simplification schemes for the three kinds of expression in the language that require conditional evaluation of some subexpressions. Temporaries introduced in these subexpressions must themselves be initialized conditionally. So we need more complex initialization code, involving if statements.
In Figure A.10 we choose to replace any
conditional expression returning a multiarray by an assignment to a temporary
within an if statement. As an optimization one may anticipate
this transformation, and arrange to have the simplify algorithm
treat
and
as if they were originally on the right-hand
sides of a top-level assignments. This will avoid the introduction of
unnecessary temporaries if either of these subexpressions is composite.