[ADMB Users] dvariable vs. prevariable
davef at otter-rsch.com
Wed May 23 16:09:30 PDT 2012
I had a quick coding question that I couldn't answer online. What is the
difference between dvariables and prevariables? They seem to be used
interchangably in calls to SEPARABLE_FUNCTIONS, and it appears that
dvariables are defined based on prevariables. Is one faster to use than
the other, or more appropriate for particular uses?
Seems like a useful question to have documented on the redmine (where I
understand, perhaps mistakenly, that any answers to this inquiry will be
prevariable is better for separable_functions.
The difference is between say x(i) when x is a dvar_vector. then x(i) is a prevariable.
If you pass x(i) to a function which takes a dvariable a constructor is invoked to change
it to a dvariable. This incurs a bit of overhead. Also if you changed the value of argument
corresponding to x(i) inside the function the original x(i) would not be changed
since you are actually changing a different object.
If this seems bizarre it was done so that
the access functions x(i) and x[i] which involve a copy
constructor would not incur extra overhead.
More information about the Users