#ifndef __FILE_VAR_MAIN_H_SEEN__
#define __FILE_VAR_MAIN_H_SEEN__

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

Copyright (C) 2002, 2006, 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 "prop_defs.h"
#include "var_usrmod.h"

namespace var_main {

  const INTEGER prop_def_spec = 4;  //Group move normal

  const REAL b1_range   = 0.0001;
  const REAL b2_range   = 0.0001;
  const REAL B11_range  = 0.001;
  const REAL B21_range  = 0.01;
  const REAL B12_range  = 0.02;
  const REAL B22_range  = 0.001;
  const REAL R11_range  = 0.0001;
  const REAL R12_range  = 0.0001;
  const REAL R22_range  = 0.0001;

  const REAL b1_start  = 9.9954984183242251e-02;
  const REAL b2_start  = 1.0001128385572358e-01;
  const REAL B11_start = 5.0004171603170977e-01;
  const REAL B21_start = 1.9593909758070538e-01;
  const REAL B12_start = 2.0404597457467594e-01;
  const REAL B22_start = 5.0156398756554943e-01;
  const REAL R11_start = 1.0238303908475348e-03;
  const REAL R12_start = 1.6994725445393879e-04;
  const REAL R22_start = 1.0212344683387820e-03;

  const REAL range_factor = (1.0/8.0);
  const REAL temperature  = 1.0;

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

  typedef libmcmc::group_move  proposal_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
