We need a framework to express certain mathematical optimizations in julia itself. These may be expressed as rules that are run after types have been inferred. Examples are:
A' * B, A' \ B: Can be computed without computing the transpose
A - B + C .* D: Can be computed without temporaries
A[m:n, p:q] + B, A[m:n, p:q] * B: Avoid computing the subsref. This may require implementation of views.
We need a framework to express certain mathematical optimizations in julia itself. These may be expressed as rules that are run after types have been inferred. Examples are:
A' * B, A' \ B: Can be computed without computing the transposeA - B + C .* D: Can be computed without temporariesA[m:n, p:q] + B, A[m:n, p:q] * B: Avoid computing the subsref. This may require implementation of views.