[ADMB Users] adpool unit size error
    dave fournier 
    davef at otter-rsch.com
       
    Sat Jul  5 20:38:34 PDT 2014
    
    
  
this message got mixed up with the stupid google groups version.  a pox 
on all that stuff.
When the software was first being built the compiler and their class 
type matching rules were different fomr compiler to
compiler and from version to version.  this led to a lot of useless and 
boring complexity.  Anyway the rule
of thumb is for  conditional statements like
    if (a<b)
      ....
use
   if (value(a)<value(b))
      ...
and you can't go wrong.
For variable arithmetic where you are expecting derivative calculations  
like
       x = y+2.0*z;
*NEVER* use
   value(x) = value(y+2.0*z);
because even if it seems to work the derivatives will be wrong.
Otherwise, ADMB assumes that your objective function is differentiable.
when you use something like
       if (value(x)<a)
          y=f(x);
       else
          y=g(x);
the resulting calculation will generally not be differentiable at a even 
if f(a)=g(a)
My general approach to this is to paste the two functions together with 
say cubic splines over the
interval  (a-eps,a+eps) for small adjustable eps.
    
    
More information about the Users
mailing list