Tupling is a transformation tactic to obtain new functions, without redundant calls and/or multiple traversals of common inputs. It achieves this feat by allowing a set (tuple) of function calls tobe computed recursively from its previous set. In [Chi93c], a safe (terminating) unfold/fold transformation algorithm was proposed for a class of functions which has a single recursion parameter per function. In this paper, we propose two new classes of functions with multiple recursion parameters that could also be safely tupled. The first class of functions has a set of tightly-synchronised recursion parameters. This class of functions could be used to eliminate multiple traversals due to a common variable being shared by its multiple recursion arguments. The second class of functions has loosely-synchronised recursion parameters. The loose-synchronisation property is specified indirectly by the ability to convert (in an effective way) the multiple recursion parameters into a single recursion parameter. These two new classes of functions help to widen the applicability of the tupling tactic. In particular, they allow us to combine both the tupling and fusion tactics together to achieve new optimisations which were not possible from either tactic individually.
CITATION STYLE
Chin, W. N., & Khoo, S. C. (1993). Tupling functions with multiple recursion parameters. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 724 LNCS, pp. 124–140). Springer Verlag. https://doi.org/10.1007/3-540-57264-3_35
Mendeley helps you to discover research relevant for your work.