#ifndef __FILE_HABIT_MAIN_H_SEEN__
#define __FILE_HABIT_MAIN_H_SEEN__

/* ----------------------------------------------------------------------------

Copyright (C) 2002, 2008.

A. Ronald Gallant
Post Office Box 659
Chapel Hill NC 27514-0659
USA

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

-----------------------------------------------------------------------------*/

#include "libmcmc.h"
#include "habit_usrmod.h" 
#include "prop_defs.h"

namespace habit_main {

  const INTEGER prop_def_spec = 0;  //Single move normal

  REAL g_range     = 0.001;
  REAL R11_range   = 0.01;
  REAL R12_range   = 0.05;
  REAL R22_range   = 0.05;
  REAL phi_range   = 0.01;
  REAL delta_range = 0.006;
  REAL gamma_range = 1.10;

  REAL g_start     = 1.9214229438150074e-03;
  REAL R11_start   = 2.7937160042191293e-03;
  REAL R12_start   = 4.6475215561914509e-04;
  REAL R22_start   = 6.2137031970217489e-03;
  REAL phi_start   = 9.9235458461140347e-01;
  REAL delta_start = 9.9745668325124826e-01;
  REAL gamma_start = 8.7337843085779410e-01;

  const REAL range_factor = (1.0/16.0);
  const REAL temperature  = 5.0;

  const INTEGER simulation_size = 2000;
  const INTEGER simulation_reps = 5;

  typedef libmcmc::group_move   proposal_type;
  typedef habit_usrmod          usrmod_type;
  typedef libmcmc::gmm_objfun   objfun_type;

  void output
    (INTEGER i, const scl::realmat& theta_sim, const scl::realmat& stats_sim,
    const scl::realmat& pi_sim, REAL reject);
}

#endif
