You are here: irt.org | FOLDOC | strength reduction

An optimisation where a function of some systematically changing variable is calculated more efficiently by using previous values of the function. In a procedural language this would apply to an expression involving a loop variable and in a declarative language it would apply to the argument of a recursive function. E.g.

f x = ... (2**x) ... (f (x+1)) ... ==> f x = f' x (2**x) where f ' x z = ... z ... (f' (x+1) 2*z) ...Here the expensive operation (2**x) has been replaced by the cheaper 2*z in the recursive function f'. This maintains the invariant that z = 2**x for any call to f'.

(1995-01-31)

Nearby terms: Streaming SIMD Extensions « stream-oriented « STREAMS « **strength reduction** » STRESS » stress testing » strict

FOLDOC, Topics, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, ?, ALL