This is an old version, view current version.
22.10 Aggregating Common Subexpressions
If an expression is calculated once, the value should be saved and reused wherever possible. That is, rather than using exp(theta)
in multiple places, declare a local variable to store its value and reuse the local variable.
Another case that may not be so obvious is with two multilevel parameters, say a[ii[n]] + b[jj[n]]
. If a
and b
are small (i.e., do not have many levels), then a table a_b
of their sums can be created, with
matrix[size(a), size(b)] a_b;
for (i in 1:size(a))
for (j in 1:size(b))
a_b[i, j] = a[i] + b[j];
Then the sum can be replaced with a_b[ii[n], jj[n]]
.