template<class Type>
Type objective_function<Type>::operator() ()
{
  int i,j;
  Type res=0;
  vector<Type> eta(n); 
  eta = X*b + exp(log_sigma)*u;
  
  for (i=0;i<n;i++)
  {
    cov(i,i)=Type(1);
    for ( j=0;j<i;j++)
    {
      cov(i,j)=exp(-a*dd(i,j));                 
      cov(j,i)=cov(i,j);
    }
  }
  res+=neg_log_density(u);
  
  for(i=0;i<n;i++) res -= y[i]*eta[i]-exp(eta[i]);
  return res;
}
   
License: