Differences between revisions 2 and 3
Revision 2 as of 2008-07-13 12:16:32
Size: 2452
Editor: email
Comment:
Revision 3 as of 2008-11-12 12:02:34
Size: 2161
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
== List of tests == == Status of testing program ==

The program performs the following tests:
Line 6: Line 8:
 1. Den Haan Marcet statistique  1. Den Haan Marcet statistics
Line 8: Line 10:
== SVN archive == For the time being, only the following solutions are implemented:
 * Krueger, Kubler and Malin (KKM)
 * Kim, Kim and Kollman (KKK)
Line 10: Line 14:
Archive name: http://www.cepremap.cnrs.fr/svn/JedcTestSuiteTestsA Others are coming soon.
Line 12: Line 16:
=== Content ===
 * Cuba-1.3: a mutlidimensional integration library http://www.feynarts.de/cuba/ (version 1.4 is available)
 * RandomLib: a random generator library using Mersenne Twister http://charles.karney.info/random/
 * SamplePack: low discrepancy sequences http://www.uni-kl.de/AG-Heinrich/SamplePack.html
 * burkardt: code for Niederreiter sequences http://people.scs.fsu.edu/~burkardt/cpp_src/niederreiter2/niederreiter2.html
 * [:KkK:kkk:]: the solutions computed by Kim, Kim, Kollmann
 * [:KkM:kkm:]: the solutions computed by Kubler, Krueger and Malin
 * libseq_beta_04.21.01: low dicrepancy sequence library http://www.multires.caltech.edu/software/libseq/
 * [:Parser.Src:parser.src:]: Dynare parser code + libraries from dynare++ + testing code
 * testing: beginning of testing code (code for transforming polar to Euclydian coordinates)
'''Note:''' tests for specification A2 with KKM solution give abnormally large errors on marginal labor equation, because KKM did not implement the right specification in that case (they use gamma=1 and eta=1 instead of gamma=0.25 and eta=0.1)
Line 23: Line 18:
=== Comments ===
 * My original idea was to use Dynare parser to generate the model to be tested. I think now it is unecessarily complicated. It is simpler to code the models directly in C++, providing for the changes in spefications and parameter values.
 * The model is made of forward looking, backward looking and static equations
   * for backward looking and static equations, it is sufficient to return the residual of the equation
   * for forward looking equations, we need both the conditional expectation of the residual (tests 1 and 2) and the residual for a given value of next period variables (den Haan Marcet statistic). It is therefore necessary to factorize all the elements of the equation that don't need to be integrated and write in another function the part of the equation that needs integration.
==== Example ====
== Installing and running the program ==

The testing program is designed to run on the two following platforms: GNU/Linux and Windows/Cygwin.

You need the following software to run the program:
 * GNU C++ compiler (g++)
 * GNU Fortran 95 compiler (gfortran); under Cygwin, you have to manually install it: the package is downloadable [http://quatramaran.ens.fr/~coudert/gfortran/gfortran-4.4-Cygwin-i686.tar.bz2 here], and installation instructions are [http://gcc.gnu.org/wiki/GFortranBinariesCygwin there]
 * development files for the GNU Scientific Library (GSL), which should be in a package called {{{libgsl0-dev}}}
 * GNU make
 * subversion
 * MATLAB

Download the source of the testing program with:
Line 30: Line 32:
void error(ytm1,yt,frwd_part,e,params,error)
{
  error[0] = yt[1] - params[0]*ytm1[1]-e[0];
  error[1] = yt[0] - params[1]*frwd_part[0];
}
svn checkout http://www.cepremap.cnrs.fr/svn/JedcTestSuiteTestsA
}}}
Line 36: Line 35:
void forward_part(ytm1,yt,ytp1,e,params,frwd)
{
  frwd_part[0] = ytp1[0]*ytp1[1];
}
Then go into the {{{JedcTestSuiteTestsA}}}, and configure the package.

Under GNU/Linux, type:
{{{
./configure --with-matlab=/usr/local/matlab75
Line 41: Line 41:
then {{{forward_part}}} can be integrated as needed over the distribution of {{{ytp1}}}
 * It is the solution function provide by each participant that permits to compute {{{yt}}} and {{{ytp1}}} from {{{ytm1}}} and {{{e}}}.
(where you should give the right MATLAB installation directory=

Under Windows/Cygwin, type:
{{{
export FC=/usr/local/gfortran/bin/gfortran
export FCLIBS=/usr/local/gfortran/lib/gcc/i686-pc-cygwin/4.4.0/libgfortran.a
./configure --with-matlab=/cygdrive/c/Progra~1/MATLAB
}}}
(note that you shoud use "Progra~1" instead of "Program Files" when giving the path to MATLAB directory, since spaces in pathnames are not supported)

Finally, compile the testing program by typing:
{{{
make
}}}

This should have created a program called {{{tester}}}.

Testing program for problem A

Status of testing program

The program performs the following tests:

  1. accuracy on a sphere in the state space
  2. accuracy on a stochastic simulation
  3. Den Haan Marcet statistics

For the time being, only the following solutions are implemented:

  • Krueger, Kubler and Malin (KKM)
  • Kim, Kim and Kollman (KKK)

Others are coming soon.

Note: tests for specification A2 with KKM solution give abnormally large errors on marginal labor equation, because KKM did not implement the right specification in that case (they use gamma=1 and eta=1 instead of gamma=0.25 and eta=0.1)

Installing and running the program

The testing program is designed to run on the two following platforms: GNU/Linux and Windows/Cygwin.

You need the following software to run the program:

Download the source of the testing program with:

svn checkout http://www.cepremap.cnrs.fr/svn/JedcTestSuiteTestsA

Then go into the JedcTestSuiteTestsA, and configure the package.

Under GNU/Linux, type:

./configure --with-matlab=/usr/local/matlab75

(where you should give the right MATLAB installation directory=

Under Windows/Cygwin, type:

export FC=/usr/local/gfortran/bin/gfortran
export FCLIBS=/usr/local/gfortran/lib/gcc/i686-pc-cygwin/4.4.0/libgfortran.a
./configure --with-matlab=/cygdrive/c/Progra~1/MATLAB

(note that you shoud use "Progra~1" instead of "Program Files" when giving the path to MATLAB directory, since spaces in pathnames are not supported)

Finally, compile the testing program by typing:

make

This should have created a program called tester.

JedcTestsuiteWiki: TestBenchProblemA (last edited 2010-08-18 10:57:35 by SébastienVillemot)