[ADMB Users] bug?
dave fournier
davef at otter-rsch.com
Wed Jul 13 15:00:48 PDT 2011
Its not really a bug. when you declare
dvar_vector y;
it creates an unallocated vector.
When you assign a vector to an unallocated vector it
does a shallow copy. But when you assign a number
(which is NOT a vector of size 1) it will depend on how the
assignment operator was written.
y=K/(1.0+(K/n0-1.0)*exp(-r*t)); // y is still unallocated.
If you had written your function as
dvar_vector logisticK( const dvector& t, const prevariable& K, const
prevariable& r, const dvar_vector& n0)
{
RETURN_ARRAYS_INCREMENT();
dvar_vector y=K/(1.0+(K/n0-1.0)*exp(-r*t)); // tries to invoke
a copy constructor but there isn't one
RETURN_ARRAYS_DECREMENT();
return (y);
}
you would have got an error message.
In this case it does nothing because there is no size information
so an unallocated vector is returned.
More information about the Users
mailing list