This is an old version, view current version.
23.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]]
.