Precision-driven computation is a recursive scheme for the approximate evaluation of arithmetic expression-dags that allows for specifying the accuracy of evaluation results in advance. We illustrate and explain how current implementations of precision driven arithmetic may negate advantages from sharing common subexpressions by re-evaluating these subexpressions many times. Since the number of re-evaluations depends on seemingly minor details of expression structure and evaluation strategy, significant performance differences may arise between otherwise competitive implementations of precision driven arithmetic for the same user code and then again between otherwise equivalent user codes for the same evaluation strategy as well. We present a new evaluation strategy that separates precision propagation from expression evaluation and thereby avoids multiple evaluations of common subexpressions completely.
['Marc Mörig', 'Stefan Schirra']
Precision-Driven Computation in the Evaluation of Expression-Dags with Common Subexpressions: Problems and Solutions