[Pkg-octave-devel] Dynare

Sébastien Villemot sebastien.villemot at ens.fr
Thu Mar 26 17:33:15 UTC 2009


"Rafael Laboissiere" <rafael at debian.org> a écrit :

> I would prefer that the files are put in a place were Octave can find
> them without loadpath manipulations.
>
> I have not checked in detail, but it seems that some of the functions
> provided by dynare will have name clashes with the functions in the
> octave package (betarnd, for instance).  I still have to think how to
> cope with this.

In order to make the right decision for the directory structure of the  
package, I must detail somewhat the structure of Dynare as we use for  
the moment.

First you have:

(1) the main M-scripts (including the entry point dynare.m), stored  
under /usr/lib/dynare/matlab. These probably don't clash with Octave  
function names.
(2) the preprocessor, an executable written in C++, stored under  
/usr/lib/dynare/matlab, and run from dynare.m through a system() call
(3) the MEX files for Octave, stored under /usr/lib/dynare/mex/octave

These three are enough for a fully function Debian+Octave installation.

For Matlab users, we also provide the following:

(4) the MEX files for Matlab, stored under  
/usr/lib/dynare/mex/{2007a,2007b}. Since we can't provide them inside  
a Debian package, my idea is to create a helper for users who want to  
compile them on their own Matlab installation
(5) M-scripts under /usr/lib/dynare/matlab/{qz,gensylv,kronecker},  
which provide the same functionality than the MEX files, aimed at  
people who can't recompile the MEX files on their Matlab for whatever  
reason
(6) M-scripts under /usr/lib/dynare/matlab/distributions, which  
provide a subset of the Matlab Statistics Toolbox, for people who  
don't have it. These are essentially modified versions of their  
counterparts in the official Octave distribution, hence the name  
clashes.

A first solution is to keep everything as it is, installed under  
/usr/lib/dynare.

A second solution is the following:
* a "dynare" package, providing a full Octave installation, installing  
(1) in /usr/share/octave/packages, (2) in /usr/bin and (3) in  
/usr/lib/octave/packages. The idea would therefore be to create a  
clean Octave package.
* a "dynare-matlab" package, providing a full Matlab installation in  
/usr/lib/dynare, with (4)+(5)+(6) installed there. It would depend on  
the "dynare" package, and would provide (1) in /usr/lib/dynare through  
a symlink.

A third solution is to provide two totally independent "dynare" and  
"dynare-matlab" packages, the first containing a clean Octave package,  
the second installing itself under /usr/lib/dynare.

-- 
Sébastien Villemot



More information about the Pkg-octave-devel mailing list