Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
Background: #fff
Foreground: #333
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #069
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryMid2: #ca3
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Jaromir Benes
Economic Modelling Unit
Research Department, IMF
@@color:#069;jaromir@@ dot @@color:#069;benes@@ at @@color:#069;gmail@@ dot @@color:#069;com@@
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};
//--
//-- Crypto functions and associated conversion routines
//--
// Crypto "namespace"
function Crypto() {}
// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
var be = Array();
var len = Math.floor(str.length/4);
var i, j;
for(i=0, j=0; i<len; i++, j+=4) {
be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
}
while (j<str.length) {
be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
j++;
}
return be;
};
// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
var str = "";
for(var i=0;i<be.length*32;i+=8)
str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
return str;
};
// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
var hex = "0123456789ABCDEF";
var str = "";
for(var i=0;i<be.length*4;i++)
str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
return str;
};
// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
return Crypto.be32sToHex(Crypto.sha1Str(str));
};
// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};
// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
// Add 32-bit integers, wrapping at 32 bits
add32 = function(a,b)
{
var lsw = (a&0xFFFF)+(b&0xFFFF);
var msw = (a>>16)+(b>>16)+(lsw>>16);
return (msw<<16)|(lsw&0xFFFF);
};
// Add five 32-bit integers, wrapping at 32 bits
add32x5 = function(a,b,c,d,e)
{
var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
return (msw<<16)|(lsw&0xFFFF);
};
// Bitwise rotate left a 32-bit integer by 1 bit
rol32 = function(n)
{
return (n>>>31)|(n<<1);
};
var len = blen*8;
// Append padding so length in bits is 448 mod 512
x[len>>5] |= 0x80 << (24-len%32);
// Append length
x[((len+64>>9)<<4)+15] = len;
var w = Array(80);
var k1 = 0x5A827999;
var k2 = 0x6ED9EBA1;
var k3 = 0x8F1BBCDC;
var k4 = 0xCA62C1D6;
var h0 = 0x67452301;
var h1 = 0xEFCDAB89;
var h2 = 0x98BADCFE;
var h3 = 0x10325476;
var h4 = 0xC3D2E1F0;
for(var i=0;i<x.length;i+=16) {
var j,t;
var a = h0;
var b = h1;
var c = h2;
var d = h3;
var e = h4;
for(j = 0;j<16;j++) {
w[j] = x[i+j];
t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
}
for(j=16;j<20;j++) {
w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
}
for(j=20;j<40;j++) {
w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
}
for(j=40;j<60;j++) {
w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
}
for(j=60;j<80;j++) {
w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
}
h0 = add32(h0,a);
h1 = add32(h1,b);
h2 = add32(h2,c);
h3 = add32(h3,d);
h4 = add32(h4,e);
}
return Array(h0,h1,h2,h3,h4);
};
}
//}}}
The current version of IRIS available from this website is 7.20090626.
Sometimes, you want to work with a few (or more than just a few, for that matter) alternative parameterisations of the same model. In IRIS, you can simply assign any number of different parameter sets within one model object, and run any of the model functions, such as {{{simulate}}}, {{{acf}}}, or {{{filter}}}, for all of the parameterisations at once. The IRIS codes have been optimised to avoid any unnecessary overhead calculations in such cases.
The state space representation is calculated using the generalised Schur decomposition in IRIS. However, the implementation differs from Klein (2000) in one important aspect: the vector of predetermined ("backward-looking") variables is transformed(by a non-singular matrix so that the resulting transition matrix is upper triangular (or, strictly speaking, quasi-triangular, depending on the occurrence of complex eigenvalues). This simple trick tremendously improves computational efficiency of e.g. autocovariance functions, power spectrum functions, the Kalman filter, and others.
IRIS has its own time series objects, tseries, which have been (in contrast to Matlab's standard timeseries objects) tailor-made for macroeconomic data. The tseries objects work with a variety of periodicities: annual, semi-annual, quarterly, bi-monthly, monthly, and indeterminate. You can use the function {{{convert}}} to convert a time series to either a lower or higher periodicity. Or the built-in {{{x12}}} seasonal adjustment procedure that automatically detects the periodicity of the time series processed. There is also basic support for daily time series.
It's time for you to stop stationarising your balanced-growth-path models. It's painful and totally unnecessary. Only very few people actually know that you can retain any number of unit roots in your model, and the first-order approximate solution will be still valid. IRIS can handle the unit roots correctly in any situation: when solving the model, simulating it, computing its second-moment properties, or running a Kalman filter... See e.g. [[the Sollow model example|Example codes]].
[[What is IRIS?]]
[[Release notes]]
/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};
//--
//-- Deprecated code
//--
// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};
// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
var lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source);
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var text = lookaheadMatch[1];
if(config.browser.isIE)
text = text.replace(/\n/g,"\r");
createTiddlyElement(w.output,"pre",null,null,text);
w.nextMatch = lookaheadRegExp.lastIndex;
}
};
// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
createTiddlyElement(place,"br");
};
// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
var i = this.indexOf(item);
return i == -1 ? null : i;
};
// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
return store.getLoader().internalizeTiddler(store,this,title,divRef);
};
// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
return store.getSaver().externalizeTiddler(store,this);
};
// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
return store.allTiddlersAsHtml();
}
// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
refreshPageTemplate(title);
}
// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
story.displayTiddlers(srcElement,titles,template,animate);
}
// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
story.displayTiddler(srcElement,title,template,animate);
}
// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;
// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");
}
//}}}
Visit, and become a member of, The IRIS Toolbox discussion group at http://groups.google.com/group/iris-toolbox
<<slider 520070929 [[Distribution 5.20070929]] "Distribution 5.20070929">>
<<slider 520070615 [[Distribution 5.20070615]] "Distribution 5.20070615">>
<<slider 520070612 [[Distribution 5.20070612]] "Distribution 5.20070612">>
# I have started writing The IRIS Toolbox reference manual. Although still heavily unfinished, bits of It are now available in the standard Matlab documentation window. Type {{{doc}}} in the command prompt, and choose "The IRIS Toolbox" at the bottom of the left-hand side pane.
# The documentation for individual IRIS functions is also avaiable through a new IRIS command, {{{idoc class_name/function_name}}}, such as
{{{
idoc model/acf
}}}
# You can visit, and become a member of, [[The IRIS Toolbox Discussion Group|http://groups.google.com/group/iris-toolbox]] and [[IRIS Model Exchange|http://groups.google.com/group/iris-model-exchange]].
!!!Install IRIS using the installation m-file.
This is the recommended and most convenient option. Download the installation m-file, [[IRIS_Tbx_7.20090626.m|repository/IRIS_Tbx_7_20090626.m]], save it on your local drive, and run it from Matlab's command prompt
{{{
>> IRIS_Tbx_7.20090626 C:\IRIS_Tbx
}}}
replacing {{{C:\IRIS_Tbx}}} with the directory you wish to install IRIS in. Follow the instructions on the screen. Once IRIS has been successfully installed, you can proceed to the Welcome page with a few useful hints, including how to start/stop IRIS sessions.
!!!Install IRIS manually using the zip archive.
When installing IRIS on network computers, people sometimes bump into troubles associated usually with the write permission, and fail to run the installer properly. If this is your case, too, you can download the zip archive instead, and set up IRIS manually:
* Download [[IRIS_Tbx_7.20090626.zip|repository/IRIS_Tbx_7_20090626.zip]], and save it on your local drive.
* Unzip the archive into the desired destination directory, such as {{{C:\IRIS_Tbx}}}.
* Re-start Matlab.
* In Matlab's command window, type
{{{
>> addpath C:\IRIS_Tbx;
>> savepath;
}}}
* Each time you want to start working with IRIS, type
{{{
>> irisstartup;
}}}
!!!Troubles saving IRIS on Matlab's search path.
If you get a warning message (either when running the installer, or executing manually the {{{savepath;}}} command) that Matlab is unable to save the path, this is most likely because your operating system has User Access Control, and Matlab is installed in the Program Files directory.
In such a case, you will need to run the following two commands each time you want to start working with IRIS:
{{{
>> addpath C:\IRIS_Tbx; irisstartup;
}}}
replacing {{{C:\IRIS_Tbx}}} with your IRIS directory.
The zip archives with example codes below all contain a {{{read_me_first.m}}} file with further instructions.
''General modelling''
*[[Small sticky price business cycle model.|repository/Example_codes_SPBC.zip]] Last modified 12 May 2009.
''Finding steady state in models with unit roots''
*[[Sollow growth model with constant labour force.|repository/Example_codes_Sollow1.zip]] Last modified 12 May 2009.
''Using ~VARs''
*[[Working with VARs.|repository/Example_codes_VAR.zip]] Last modified 12 May 2009.
''Database and time series management''
*[[Support for daily time series.|repository/Example_codes_Daily.zip]] Last modified 3 June 2009.
You can also learn how to [[convert Dynare files to IRIS|Example codes: Convert Dynare files to IRIS]].
Use the function {{{dynare2iris}}} to convert your Dynare files into IRIS model codes. Keep in mind, however, that the philosophy of the IRIS versus Dynare codes differ conceptually. Dynare files specify not only the model variables and equations, but also the tasks you want to perform. IRIS model codes, on the other hand, only describes the model itself. You load these model code files into Matlab and then create your own regular m-files to perform whatever you want. In this sense, IRIS is based on an object-oriented approach in that it uses its own newly defined classes of objects: models, VAR models, time series, reports, etc.
When converting a Dynare file, IRIS uses the following pieces of the code:
*the list of endogenous variables (they become transition variables in IRIS);
*the steady-state values of endogenous variables (they are hard-typed in the model code file; however you can freely change them later after you read the model into Matlab);
*the list of exogenous variables (they become residual variables in IRIS);
*the standard deviations of residuals (they are hard-typed in the model code file; however you can freely change them later after you read the model into Matlab);
*the list of parameters;
*the parameter values (they are hard-typed in the model code file; however you can freely change them later after you read the model into Matlab);
On the other hand, the following Dynare specifications are absent from the resulting IRIS model code. In general, these need to be performed in your m-files once you load the IRIS model code into Matlab:
*non-zero initial values for exogenous variables (all exogenous variables are converted into residuals, which have zero steady state values);
*cross-covariances of shocks;
*initial values that are specified as expressions referring to model parameters (these need to be assigned later in an m-file).
The {{{dynare2iris}}} function reports and saves these critical differences between the original Dynare file and the resulting IRIS model code into a file under the same name as the IRIS model but with a {{{.log}}} extension.
Check out two examples: two Dynare files [[example1.mod|repository/example1.mod]] and [[example2.mod|repository/example2.mod]] are converted to their IRIS model code counterparts [[example1.iris|repository/example1.iris]] and [[example2.iris|repository/example2.iris]] (note that you can give any extension to IRIS model codes) using the following commands:
{{{
dynare2iris('example1.mod','example1.iris');
dynare2iris('example2.mod','example2.iris');
}}}
Look also into the two log files, [[example1.log|repository/example1.log]] and [[example2.log|repository/example2.log]], produced as another output of the {{{dynare2iris}}} function.
After you have converted a Dynare file into an IRIS model code file, you have to write your own m-files to perform the tasks you wish.
/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.2|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
***/
//{{{
// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin) {
version.extensions.LegacyStrikeThroughPlugin = {installed:true};
config.formatters.push(
{
name: "legacyStrikeByChar",
match: "==",
termRegExp: /(==)/mg,
element: "strike",
handler: config.formatterHelpers.createElementAndWikify
});
} //# end of "install only once"
//}}}
The IRIS Toolbox is provided under the following terms:
{{{
* Copyright (c) 2007-2008, Jaromir Benes
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Jaromir Benes.
* * The name of copyright holder may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL JAROMIR BENES BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
}}}
[[Download and install 7.20090626|Download and install IRIS]]
[[What is IRIS?]]
[[What do you need to run IRIS?]]
[[Licence]]
[[Documentation]]
[[Example codes]]
[[Release notes]]
[[Discussion forum|http://groups.google.com/group/iris-toolbox]]
[[File exchange forum|http://groups.google.com/group/iris-model-exchange]] @@border: 1px solid;NEW@@
[[Contact]]
Copyright © 2007-2009 Jaromir Benes.
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<!--}}}-->
<!--{{{-->
<div class='header'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle1'></span><br />
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle1'></span><br />
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<<tiddler [[Release notes 7.20090626]]>>
----
<<tiddler [[Release notes 7.20090604]]>>
----
<<tiddler [[Release notes 7.20090603]]>>
----
<<tiddler [[Release notes 7.20090527]]>>
----
<<tiddler [[Release notes 7.20090521]]>>
----
<<tiddler [[Release notes 7.20090515]]>>
----
<<tiddler [[Release notes 7.20090513]]>>
----
<<tiddler [[Release notes 7.20090512]]>>
----
<<tiddler [[Release notes 6.20090415]]>>
----
<<tiddler [[Release notes 6.20090414]]>>
----
<<tiddler [[Release notes 6.20090413]]>>
----
<<tiddler [[Release notes 6.20090409]]>>
----
<<tiddler [[Release notes 6.20090320]]>>
----
<<tiddler [[Release notes 6.20090318]]>>
----
<<tiddler [[Release notes 6.20090317]]>>
----
<<tiddler [[Release notes 6.20090203]]>>
----
<<tiddler [[Release notes 6.20090127]]>>
This is the release notes for the latest distribution. You can also check out [[the older release notes|Release note history]].
<<tiddler [[Release notes 7.20090626]]>>
!!!6.20090127
''Function {{{model/model}}}''
* When the {{{model}}} function is called with {{{'symbolic'}}} set to {{{true}}}, and some of the symbolic derivatives fail to evaluate to a valid expression, they are automatically replaced with numerical derivatives. This is useful when you use functions whose derivatives are unknown to Symbolic Math Tbx, such as distribution or probability density functions.
''Function {{{model/sstate}}}''
* New option {{{'blocks'}}} in the {{{model/sstate}}} function. You can control whether or note you wish to split the model into recursive blocks when computing steady state. For backward compatibility, the default value is {{{true}}}, however, you should set this option to {{{false}}} when dealing with unit-root models.
''Model codes''
* Characters up to {{{char(1999)}}} are now allowed in model codes. You can therefore use e.g. Cyrillic characters in comments, etc.
''Tseries objects''
* Daily time series are now supported. Documentation will follow.
* 'Tseries objects can be opened and edited in the Matlab R2008b (and higher) Variable Editor.
!!!6.20090203
''Installer''
* Fatal bug in the zip archive for version 6.20090127 (file {{{irisversion}}} was missing from the archive) fixed.
* Problem with refreshing the installer web browser window fixed.
''Report class''
* A new preamble file, {{{preamble_cyr.sty}}}, supporting Cyrillic added to the report class.
!!!6.20090317
''Model class''
* A mistakenly inserted piece of testing code, which caused the function to throw an error, removed from the Kalman filter (called from within functions {{{filter}}}, {{{loglik}}}, {{{estimate}}}, {{{diffloglik}}}).
''Quick-report functions''
* New options {{{'figure'}}}, {{{'axes'}}}, and {{{'line'}}} added to the {{{qplot}}} function to provide full control over the properties of the graphical objects created by the function. Also two new output arguments (fourth and fifth) added to this function, returning an array of handles to all titles created by {{{qplot}}}, and a database with actually graphed data.
''Dynare to IRIS conversion''
* Dynare's indicator of linear models, {{{model(linear);}}}, is now handled by {{{dynare2iris}}}, and produces {{{!linear}}} at the beginning of the IRIS code.
!!!6.20090318
''Quick-report functions''
* A rather fatal typo (brought in only in 6.20090317) fixed in {{{qpdefault}}}. This function is called from within {{{qplot}}}.
!!!6.20090320
''Tseries class''
* Opening and editting tseries objects in Matlab's Variable Editor improved.
''Report class''
* Bug in handling the escape characters in report headings fixed. Headings containing characters like '\', '_', etc. should now behave normally.
!!!6.20090409
''Model code language''
* A new keyword, {{{!links}}}, introduced. This allows to define dynamic links for parameters and steady-state values of measurement and transition variables. See reference manual for explanation.
''Model class''
* A new function, {{{refresh}}}, introduced. Calling this function causes the dynamic links to get refreshed (i.e. the values of dynamically linked parameters and steady state get updated).
* A new option,'refresh', introduced in the {{{solve}}}, {{{sstate}}}, and {{{estimate}}} functions. This options controls whether you want to refresh dynamic links before the solution or steady state is re-computed. The default value is, of course, true.
''Dbase functions''
* A bug in the {{{dbsave}}} function fixed. The default value for the 'freqletters' option had one extra letter in it.
''Quick-report functions''
* A new function, {{{qstyle}}} introduced to more efficiently handle the properties of figures, axes, lines, titles, and labels created by the {{{qplot}}} function.
''Others''
* The behaviour of the {{{highlight}}} function improved so that it works also when called from a report generating script.
* Support for opening tseries objects in Matlab's Variable Editor improved (optimised for R2009a). You can copy-paste from the editor to e.g. Excel, but not the other way around (there's an obvious bug in the way Matlab handles the values copied to a user-defined class).
!!!6.20090413
''Model functions''
* A bug related to the new dynamic link features fixed in {{{solve}}}. The call of the function {{{refresh}}} therein caused a name conflict with the same name of a variable.
!!!6.20090414
''Model functions''
* A new option, 'objectivesample', in the {{{filter}}}, {{{loglik}}}, and {{{estimate}}} functions. The option controls the (sub-)sample over which the objective function (e.g. minus the log likelihood) is evaluated, and the out-of-likelihood parameters, including the se2 scaling factor, are estimated.
* Improvements in the treatment of multivariate time series in the {{{reporting}}} equations and the {{{reporting}}} function. If a reporting series is initialised as a scalar tseries object, but the the respective equation evaluates to multiple values, the original scalar series is expanded accordingly to match the size of the result.
''Tseries functions''
* The detection of calls from the Variable Editor improved.
* A bug fixed in the {{{highlight}}} function. The function made the axes, not only the figure, invisible if the figure passed in was invisible.
!!!6.20090415
''Model functions''
* A fatal bug in the {{{symbdiff}}} function. This function evaluates the symbolic derivatives of the model's equations (provided the Symbolic Math Tbx is installed). The dynamic link equations were handled incorrectly in this file, and caused the function to crash.
!!!7.20090512
''With a number of newly built or re-implemented features and algorithms, this distribution starts the 7-th generation of IRIS.''
''Model functions''
* A new Kalman filter algorithm. The Kalman filter is called from within the following model functions: {{{loglik}}}, {{{filter}}}, {{{estimate}}}, and {{{diffloglik}}}. The new algorithm is (supposed to be) more stable, and can handle cases in which the older algorithm ran into numerical problems (especially when the number of observables was the same as the number of shocks).
* A new option 'chkexact' to control the Kalman filter iterations when there is the same number of observables as the number of shocks, and the 'initcond' option is set to 'fixed'. Applies in {{{loglik}}}, {{{filter}}}, {{{estimate}}}, and {{{diffloglik}}}.
* A new format of the prediction errors returned by the {{{filter}}}, {{{loglik}}}, and {{{estimate}}} functions. It is now a struct with two fields, .array and .dbase. The .array field is a plan matrix with the prediction errors for the individual measurement variables (ordered by appearance in the model code), whereas .dbase is a database with time series named after the individual measurement variables.
* A new option 'dtrends' allowing users to switch on/off the deterministic trend equations independently of the 'deviation' option. Applies in {{{simulate}}}, {{{forecast}}}, {{{loglik}}}, {{{filter}}}, {{{estimate}}}, {{{diffloglik}}}, {{{zerodb}}} and {{{sstatedb}}}.
* A new function {{{fisher}}} to compute the Fisher information matrix in the frequency domain. This is a much more efficient algorithm than the previously suggested combination of {{{resample}}} and {{{diffloglik}}} in that it uses an analytical solution, and does not need to evaluate any simulation-based integrals.
* More systematic support for the dynamic links in the {{{solve}}}, {{{sstate}}}, {{{estimate}}}, {{{fisher}}}, and {{{diffloglik}}} functions.
* New attributes 'labels', 'ylabels', 'xlabels', 'elabels', 'dlabels', 'llabels', and 'rlabels' in the {{{set}}} function to change the equation labels after the model code has been read.
* New attributes 'comments', 'ycomments', 'xcomments', 'ecomments', and 'pcomments' in the {{{set}}} function to change the comments attached to individual variables and parameters after the model code has been read.
* A new attribute 'stdlist' in the {{{get}}} function, which returns the list of the std dev names as a cell array of strings.
''VAR functions''
* VAR objects with multiple parameterisations can be now accessed using the same syntax as the model objects, e.g. {{{w(1)}}} or {{{w(10:end)}}}.
!!!7.20090513
''Model functions''
*A bug fix in the low-level Kalman filter function, {{{loglikt2_}}}. This typo caused an error when the Kalman filter was called with the option 'chkfmse' set to true. This applied to {{{filter}}}, {{{loglik}}}, {{{estimate}}}, and {{{diffloglik}}}.
* Two bug fixes in {{{fisher}}}. One bug caused an error when {{{fisher}}} was called with a model solution expanded forward. The other one caused an error when {{{fisher}}} was called with a linear model.
* Two new options, 'chksgf' and 'display' added to {{{fisher}}}. The first option, 'chksgf', controls whether the rank of each spectrum generating matrix will be checked, and a pseudoinverse used instead of an inverse if the matrix is singular. The second option, 'display', enables to to display a report on progress in calculations.
''Documentation''
* A section on {{{fisher}}} added to the reference manual. Available through Matlab's Help window, or by typing {{{idoc model/fisher}}}.
!!!7.20090515
''Model code language''
* The model code parser amended to handle labels that contain the percent signs {{{%}}}, or apostrophes{{{'}}}. In the latter case, you need to put the lables in double quotes instead of single quotes. For instance, the following is now a valid declaration:
{{{
!variables:transition
"Households' consumption growth, % PA" C, 'Interest rate, % PA' R
}}}
!!!7.20090521
''Model functions''
* Two bug fixes in the low-level Kalman filter function, {{{loglikt2_}}}:
##The covariance matrix measurement errors was mistakenly reset to zero so that the measurement errors were never taken into account. This bug affected any models with measurement errors. Thanks to Mihai for reporting the bug.
##When diffuse initial conditions and/or out-of-likelihood parameters were estimated, a correction for measurement forward-looking transition variables was not correctly added. This bug affected (i) models with non-stationary measurement variables, or (ii) models with deterministic trend equations, {{{!dtrends:measurement}}}, that were filtered with an non-empty 'outoflik' option.
* A bug fix in {{{simulate}}}. The bug caused some of the exogenised/endogenised simulations to fail under certain circumstances because the forward expansion of the solution was not computed. Thanks to Sergey for reporting the bug.
* A minor bug fix in {{{sstatefile}}}. Empty {{{!equations}}} blocks caused an error.
''Other functions''
* Two improvements in {{{plotyy}}}.
##The function can be now used repeatedly to plot in the same figure/axes. Before, such attempts caused an error.
##The line colours are now properly ordered when there are multiple series passed in for both LHS and RHS axes.
* A new function {{{dbplot}}} added. This function plots a whole batch of series, or their transformations, from a database.
!!!7.20090527
''Model functions''
* A bug fix in the {{{reporting}}} function that caused an error when the reporting equations were executed with the 'dynamic' option set to false.
!!!7.20090603
''Model functions''
* A bug fix in the low-level {{{[simulatemean_}}} function. This bug caused an error when the {{{simulate}}} function was called under certain circumstances with exogenised/endogenised data points.
''Database functions''
* Extension of the {{{dbload}}} function. It now also handles CSV databases with daily data. See the new [[example file on daily time series|Example codes]].
!!!7.20090604
''Tseries functions''
* A bug fix in the {{{interp}}} function. The bug caused an error when the requested range was different from the time series own range.
''Date functions''
* Syntax of the {{{dd}}} function expanded. You can now call {{{dd(year,month,'end')}}} which generates a Matlab series date number corresponding to the last day of the month (based on Matlab's {{{eomday}}} function).
!!!7.20090626
''Model functions''
* An improvement in {{{simulate}}}. A non-linear solver equivalent to a perfect foresight solution added. The solver is capable of handling a limited number of not-so-discontinuous non-linearities. It will be documented in the near future.
* A bug fix in {{{estimate}}}. The bug caused an error when saving the model object after the optimised parameters fell outside the saddle-path region.
* A bug fix in {{{get}}} and {{{set}}}. The {{{get}}} output and {{{set}}} input arguments for the list of equations and equation labels were treated inconsistently.
* A bug fix in {{{reporting}}}. The bug caused an error when the function was called in a dynamic mode with multivariate time series.
* A change in {{{estimate}}}. The 9th output argument with the out-of-likelihood parameter estimates is now returned as a struct (i.e. a database) instead of an array.
''VAR functions''
* A bug fix in {{{subsasgn}}}. This bug caused an error at an attempt to expand the number of parameterisations in a VAR object using the round-bracket syntax, e.g. {{{w(1:10) = w}}}.
* A bug fix in {{{rvar}}}. The bug caused an error when the function was called with no optional arguments.
* A change in {{{forecast}}}. The first output argument is now a database with the following fields: 'mean', 'mse', and 'std'. The 'mse' has the forecast MSE matrices as 3D matrices (or 4D for multiple parameterisation).
''~IRISparser''
* A new class, {{{irisparser}}}, created to handle the parsing of model codes, steady-state codes, and reporting equations. The class functionality will be expanded gradually.
''Others''
* An improvement in {{{highlight}}}. It now works with a single period, too.
<<search>>
!! Did you know?
<<slider DYK1 DYKUnitRoots "You can have any number of unit root trends in your models...[Read more]">>
<<slider DYK2 DYKMultiParams "You can assign multiple parameterisations within one model object...[Read more]">>
<<slider DYK2 DYKTriangular "The model solution is transformed so that its transition matrix is triangular in IRIS. Why? [Read more]">>
<<slider DYK2 DYKTseries "You can work with macroeconomic time series in Matlab using IRIS's tseries objects...[Read more]">>
''I R''@@color:#666;est,@@ ''I''@@color:#666;RIS@@ ''S''@@color:#666;olves.@@
@@color:#666;The@@''IRIS''@@color:#666;Toolbox@@{{siteTitleGeneration{7}}}
http://www.iris-toolbox.com
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};
//--
//-- Sparklines
//--
config.macros.sparkline = {};
config.macros.sparkline.handler = function(place,macroName,params)
{
var data = [];
var min = 0;
var max = 0;
var v;
for(var t=0; t<params.length; t++) {
v = parseInt(params[t]);
if(v < min)
min = v;
if(v > max)
max = v;
data.push(v);
}
if(data.length < 1)
return;
var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
box.title = data.join(",");
var w = box.offsetWidth;
var h = box.offsetHeight;
box.style.paddingRight = (data.length * 2 - w) + "px";
box.style.position = "relative";
for(var d=0; d<data.length; d++) {
var tick = document.createElement("img");
tick.border = 0;
tick.className = "sparktick";
tick.style.position = "absolute";
tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
tick.style.left = d*2 + "px";
tick.style.width = "2px";
v = Math.floor(((data[d] - min)/(max-min)) * h);
tick.style.top = (h-v) + "px";
tick.style.height = v + "px";
box.appendChild(tick);
}
};
}
//}}}
<<<
Each time you open Matlab and want to work with IRIS, you need to run the following line in the Matlab command window:
{{codeblock{addpath c:/iris-toolbox; irisstartup;}}}
where {{{c:/iris-toolbox}}} must be, of course, replaced with your own IRIS root folder chosen during installation. If you simultaneously use also Dynare, you should run the {{{irisstartup}}} file with a {{{-noconflicts}}} option
{{codeblock{addpath c:/iris-toolbox; irisstartup -noconflicts;}}}
to prevent function name conflicts between IRIS and Dynare.
@@background-color:#fcc;Never ever use the {{{File|Set Path}}} menu to put IRIS permanently on the Matlab search path.@@ Even though this seems to be the easiest way to avoid running the {{{addpath}}} command each time you open Matlab, it often causes Matlab to behave rather strangely. Sometimes it generates fatal errors when you are opening Matlab, sometimes you get colours in Matlab figures completely mixed up.
On the other hand, you can automate the above IRIS startup line as follows. Create a short-cut to Matlab, e.g. on your desktop or Windows toolbar. Open the Properties window (right-clicking on the short-cut icon and selecting Properties), and change the Target line in the Shortcut tab to
{{codeblock{c:/matlab/bin/matlab.bat -r "addpath c:/iris-toolbox; irisstartup"}}}
where {{{c:/matlab/bin/}}} must be, of course, replaced with the proper Matlab path on your computer, and {{{c:/iris-toolbox}}} with your IRIS root folder. Each time you open Matlab by clicking on this short-cut, IRIS will be automatically loaded.
<<<
.siteTitleGeneration {
border: 1px solid;
padding: 0 0.1em 0 0.2em;
}
#sidebarOptions a{
text-decoration: underline;
font-size: 1.2em;
padding: 0 0 0 0.2em;
}
#sidebarOptions .sliderPanel a {
font-size: 1em;
}
#sidebarOptions .sliderPanel {
font-size: 1em;
}
#mainMenu a{
color: #c60;
font-size: 1.1em;
text-decoration: none;
}
#mainMenu a:hover {
background: [[ColorPalette::SecondaryPale]];
color: red;
}
.tiddler {
border: 1px solid [[ColorPalette::TertiaryLight]];
margin-bottom: 1em;
padding-bottom: 1em;
}
body {
font-family: Calibri, Arial, Helvetica, Sans-Serif;
}
.header {
padding: 1em 0em 1em 0em;
background-color: [[ColorPalette::Background]];
text-align: center;
background-image: url(Background.png);
}
.siteTitle {
color: [[ColorPalette::PrimaryMid]];
font-weight: medium;
font-family: Calibri, Arial, Helvetica, Sans-Serif;
font-size: 2.2em;
letter-spacing: 0.15em;
}
.siteSubtitle {
color: [[ColorPalette::PrimaryMid]];
font-family: Calibri, Arial, Helvetica, Sans-Serif;
font-size: 1.5em;
font-weight: medium;
letter-spacing: 0.15em;
}
#mainMenu {
position: absolute;
left: 0em;
width: 14em;
text-align: left;
line-height: 1.4em;
padding: 1.5em 0.5em 0.5em 0.5em;
font-size: 1em;
}
#displayArea {
margin: 1em 18em 0em 16em;
}
#sidebar {
right: 1em;
}
.toolbar .button{
color: [[ColorPalette::PrimaryMid]];
background-color: [[ColorPalette::Background]];
border: 1px solid [[ColorPalette::TertiaryPale]]
}
.toolbar .button:hover {
background: #ffd /*#ef9*/;
color: #F00;
}
.title {
font-family: Calibri, Arial, Helvetica, Sans-Serif;
font-weight: bold;
font-size: 1.3em;
}
.subtitle {
font-family: Calibri, Arial, Helvetica, Sans-Serif;
font-size: 0.9em;
}
.codeblock {
margin: 1.5em;
color: [[ColorPalette::SecondaryDark]];
font-family:monospace;
font-size:1.2em;
}
.tagging, .tagged {
font-size: 0.8em;
}
h1,h2,h3,h4,h5 {
color: [[ColorPalette::SecondaryDark]];
background: white;
}
.boxed {
border: 1px solid;
padding: 0.2em;
}
a:hover{
background: [[ColorPalette::SecondaryPale]];
color: [[ColorPalette::SecondaryDark]];
}
/*{{{*/
body {
background: [[ColorPalette::Background]];
color: [[ColorPalette::Foreground]];
}
a{
color: [[ColorPalette::PrimaryMid]];
}
a:hover{
background: [[ColorPalette::PrimaryMid]];
color: [[ColorPalette::Background]];
}
a img{
border: 0;
}
h1,h2,h3,h4,h5 {
color: [[ColorPalette::SecondaryDark]];
background: [[ColorPalette::PrimaryPale]];
}
.button {
color: [[ColorPalette::PrimaryDark]];
border: 1px solid [[ColorPalette::Background]];
}
.button:hover {
color: [[ColorPalette::PrimaryDark]];
background: [[ColorPalette::SecondaryLight]];
border-color: [[ColorPalette::SecondaryMid]];
}
.button:active {
color: [[ColorPalette::Background]];
background: [[ColorPalette::SecondaryMid]];
border: 1px solid [[ColorPalette::SecondaryDark]];
}
.header {
background: [[ColorPalette::PrimaryMid]];
}
.headerShadow {
color: [[ColorPalette::Foreground]];
}
.headerShadow a {
font-weight: normal;
color: [[ColorPalette::Foreground]];
}
.headerForeground {
color: [[ColorPalette::Background]];
}
.headerForeground a {
font-weight: normal;
color: [[ColorPalette::PrimaryPale]];
}
.tabSelected{
color: [[ColorPalette::PrimaryDark]];
background: [[ColorPalette::TertiaryPale]];
border-left: 1px solid [[ColorPalette::TertiaryLight]];
border-top: 1px solid [[ColorPalette::TertiaryLight]];
border-right: 1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {
color: [[ColorPalette::Background]];
background: [[ColorPalette::TertiaryMid]];
}
.tabContents {
color: [[ColorPalette::PrimaryDark]];
background: [[ColorPalette::TertiaryPale]];
border: 1px solid [[ColorPalette::TertiaryLight]];
}
.tabContents .button {
border: 0;}
#sidebar {
}
#sidebarOptions input {
border: 1px solid [[ColorPalette::PrimaryMid]];
}
#sidebarOptions .sliderPanel {
background: [[ColorPalette::PrimaryPale]];
}
#sidebarOptions .sliderPanel a {
border: none;
color: [[ColorPalette::PrimaryMid]];
}
#sidebarOptions .sliderPanel a:hover {
color: [[ColorPalette::Background]];
background: [[ColorPalette::PrimaryMid]];
}
#sidebarOptions .sliderPanel a:active {
color: [[ColorPalette::PrimaryMid]];
background: [[ColorPalette::Background]];
}
.wizard {
background: [[ColorPalette::SecondaryLight]];
border-top: 1px solid [[ColorPalette::SecondaryMid]];
border-left: 1px solid [[ColorPalette::SecondaryMid]];
}
.wizard h1 {
color: [[ColorPalette::SecondaryDark]];
}
.wizard h2 {
color: [[ColorPalette::Foreground]];
}
.wizardStep {
background: [[ColorPalette::Background]];
border-top: 1px solid [[ColorPalette::SecondaryMid]];
border-bottom: 1px solid [[ColorPalette::SecondaryMid]];
border-left: 1px solid [[ColorPalette::SecondaryMid]];
}
.wizard .button {
color: [[ColorPalette::Background]];
background: [[ColorPalette::PrimaryMid]];
border-top: 1px solid [[ColorPalette::PrimaryLight]];
border-right: 1px solid [[ColorPalette::PrimaryDark]];
border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
border-left: 1px solid [[ColorPalette::PrimaryLight]];
}
.wizard .button:hover {
color: [[ColorPalette::PrimaryLight]];
background: [[ColorPalette::PrimaryDark]];
border-color: [[ColorPalette::PrimaryLight]];
}
.wizard .button:active {
color: [[ColorPalette::Background]];
background: [[ColorPalette::PrimaryMid]];
border-top: 1px solid [[ColorPalette::PrimaryLight]];
border-right: 1px solid [[ColorPalette::PrimaryDark]];
border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
border-left: 1px solid [[ColorPalette::PrimaryLight]];
}
#messageArea {
border: 1px solid [[ColorPalette::SecondaryDark]];
background: [[ColorPalette::SecondaryMid]];
color: [[ColorPalette::PrimaryDark]];
}
#messageArea .button {
padding: 0.2em 0.2em 0.2em 0.2em;
color: [[ColorPalette::PrimaryDark]];
background: [[ColorPalette::Background]];
}
.popup {
background: [[ColorPalette::PrimaryLight]];
border: 1px solid [[ColorPalette::PrimaryMid]];
}
.popup hr {
color: [[ColorPalette::PrimaryDark]];
background: [[ColorPalette::PrimaryDark]];
border-bottom: 1px;
}
.listBreak div{
border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
}
.popup li.disabled {
color: [[ColorPalette::PrimaryMid]];
}
.popup li a, .popup li a:visited {
color: [[ColorPalette::TertiaryPale]];
border: none;
}
.popup li a:hover {
background: [[ColorPalette::PrimaryDark]];
color: [[ColorPalette::Background]];
border: none;
}
.tiddler .defaultCommand {
font-weight: bold;
}
.shadow .title {
color: [[ColorPalette::TertiaryDark]];
}
.title {
color: [[ColorPalette::SecondaryDark]];
}
.subtitle {
color: [[ColorPalette::TertiaryDark]];
}
.toolbar {
color: [[ColorPalette::PrimaryMid]];
}
.tagging, .tagged {
border: 1px solid [[ColorPalette::TertiaryPale]];
background-color: [[ColorPalette::TertiaryPale]];
}
.selected .tagging, .selected .tagged {
background-color: [[ColorPalette::TertiaryLight]];
border: 1px solid [[ColorPalette::TertiaryMid]];
}
.tagging .listTitle, .tagged .listTitle {
color: [[ColorPalette::PrimaryDark]];
}
.tagging .button, .tagged .button {
border: none;
}
.footer {
color: [[ColorPalette::TertiaryLight]];
}
.selected .footer {
color: [[ColorPalette::TertiaryMid]];
}
.sparkline {
background: [[ColorPalette::PrimaryPale]];
border: 0;
}
.sparktick {
background: [[ColorPalette::PrimaryDark]];
}
.error, .errorButton {
color: [[ColorPalette::Foreground]];
background: [[ColorPalette::Error]];
}
.warning {
color: [[ColorPalette::Foreground]];
background: [[ColorPalette::SecondaryPale]];
}
.cascade {
background: [[ColorPalette::TertiaryPale]];
color: [[ColorPalette::TertiaryMid]];
border: 1px solid [[ColorPalette::TertiaryMid]];
}
.imageLink, #displayArea .imageLink {
background: transparent;
}
.viewer .listTitle {list-style-type: none; margin-left: -2em;}
.viewer .button {
border: 1px solid [[ColorPalette::SecondaryMid]];
}
.viewer blockquote {
border-left: 3px solid [[ColorPalette::TertiaryDark]];
}
.viewer table {
border: 2px solid [[ColorPalette::TertiaryDark]];
}
.viewer th, thead td {
background: [[ColorPalette::SecondaryMid]];
border: 1px solid [[ColorPalette::TertiaryDark]];
color: [[ColorPalette::Background]];
}
.viewer td, .viewer tr {
border: 1px solid [[ColorPalette::TertiaryDark]];
}
.viewer pre {
border: 1px solid [[ColorPalette::SecondaryLight]];
background: [[ColorPalette::SecondaryPale]];
}
.viewer code {
color: [[ColorPalette::SecondaryDark]];
}
.viewer hr {
border: 0;
border-top: dashed 1px [[ColorPalette::TertiaryDark]];
color: [[ColorPalette::TertiaryDark]];
}
.highlight, .marked {
background: [[ColorPalette::SecondaryLight]];
}
.editor input {
border: 1px solid [[ColorPalette::PrimaryMid]];
}
.editor textarea {
border: 1px solid [[ColorPalette::PrimaryMid]];
width: 100%;
}
.editorFooter {
color: [[ColorPalette::TertiaryMid]];
}
/*}}}*/
/*{{{*/
* html .tiddler {
height: 1%;
}
body {
font-size: 0.9em;
font-family: arial,helvetica;
margin: 0;
padding: 0;
}
h1,h2,h3,h4,h5 {
font-weight: bold;
text-decoration: none;
padding-left: 0.4em;
}
h1 {font-size: 1.35em;}
h2 {font-size: 1.25em;}
h3 {font-size: 1.1em;}
h4 {font-size: 1em;}
h5 {font-size: .9em;}
hr {
height: 1px;
}
a{
text-decoration: none;
}
dt {font-weight: bold;}
ol { list-style-type: decimal }
ol ol { list-style-type: lower-alpha }
ol ol ol { list-style-type: lower-roman }
ol ol ol ol { list-style-type: decimal }
ol ol ol ol ol { list-style-type: lower-alpha }
ol ol ol ol ol ol { list-style-type: lower-roman }
ol ol ol ol ol ol ol { list-style-type: decimal }
.txtOptionInput {
width: 11em;
}
#contentWrapper .chkOptionInput {
border: 0;
}
.externalLink {
text-decoration: underline;
}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {
font-weight: bold;
}
.tiddlyLinkNonExisting {
font-style: italic;
}
/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */
a.tiddlyLinkNonExisting.shadow {
font-weight: bold;
}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting{
font-weight: normal;
font-style: normal;
}
#sidebarTabs .tiddlyLinkExisting {
font-weight: bold;
font-style: normal;
}
.header {
position: relative;
}
.header a:hover {
background: transparent;
}
.headerShadow {
position: relative;
padding: 4.5em 0em 1em 1em;
left: -1px;
top: -1px;
}
.headerForeground {
position: absolute;
padding: 4.5em 0em 1em 1em;
left: 0px;
top: 0px;
}
.siteTitle {
font-size: 3em;
}
.siteSubtitle {
font-size: 1.2em;
}
#mainMenu {
position: absolute;
left: 0;
width: 10em;
text-align: right;
line-height: 1.6em;
padding: 1.5em 0.5em 0.5em 0.5em;
font-size: 1.1em;
}
#sidebar {
position: absolute;
right: 3px;
width: 16em;
font-size: .9em;
}
#sidebarOptions {
padding-top: 0.3em;
}
#sidebarOptions a {
margin: 0em 0.2em;
padding: 0.2em 0.3em;
display: block;
}
#sidebarOptions input {
margin: 0.4em 0.5em;
}
#sidebarOptions .sliderPanel {
margin-left: 1em;
padding: 0.5em;
font-size: .85em;
}
#sidebarOptions .sliderPanel a {
font-weight: bold;
display: inline;
padding: 0;
}
#sidebarOptions .sliderPanel input {
margin: 0 0 .3em 0;
}
#sidebarTabs .tabContents {
width: 15em;
overflow: hidden;
}
.wizard {
padding: 0.1em 0em 0em 2em;
}
.wizard h1 {
font-size: 2em;
font-weight: bold;
background: none;
padding: 0em 0em 0em 0em;
margin: 0.4em 0em 0.2em 0em;
}
.wizard h2 {
font-size: 1.2em;
font-weight: bold;
background: none;
padding: 0em 0em 0em 0em;
margin: 0.2em 0em 0.2em 0em;
}
.wizardStep {
padding: 1em 1em 1em 1em;
}
.wizard .button {
margin: 0.5em 0em 0em 0em;
font-size: 1.2em;
}
#messageArea {
position:absolute; top:0; right:0; margin: 0.5em; padding: 0.5em;
}
*[id='messageArea'] {
position:fixed !important; z-index:99;}
.messageToolbar {
display: block;
text-align: right;
}
#messageArea a{
text-decoration: underline;
}
.popup {
font-size: .9em;
padding: 0.2em;
list-style: none;
margin: 0;
}
.popup hr {
display: block;
height: 1px;
width: auto;
padding: 0;
margin: 0.2em 0em;
}
.listBreak {
font-size: 1px;
line-height: 1px;
}
.listBreak div {
margin: 2px 0;
}
.popup li.disabled {
padding: 0.2em;
}
.popup li a{
display: block;
padding: 0.2em;
}
.tabset {
padding: 1em 0em 0em 0.5em;
}
.tab {
margin: 0em 0em 0em 0.25em;
padding: 2px;
}
.tabContents {
padding: 0.5em;
}
.tabContents ul, .tabContents ol {
margin: 0;
padding: 0;
}
.txtMainTab .tabContents li {
list-style: none;
}
.tabContents li.listLink {
margin-left: .75em;
}
#displayArea {
margin: 1em 17em 0em 14em;
}
.toolbar {
text-align: right;
font-size: .9em;
visibility: hidden;
}
.selected .toolbar {
visibility: visible;
}
.tiddler {
padding: 1em 1em 0em 1em;
}
.missing .viewer,.missing .title {
font-style: italic;
}
.title {
font-size: 1.6em;
font-weight: bold;
}
.missing .subtitle {
display: none;
}
.subtitle {
font-size: 1.1em;
}
.tiddler .button {
padding: 0.2em 0.4em;
}
.tagging {
margin: 0.5em 0.5em 0.5em 0;
float: left;
display: none;
}
.isTag .tagging {
display: block;
}
.tagged {
margin: 0.5em;
float: right;
}
.tagging, .tagged {
font-size: 0.9em;
padding: 0.25em;
}
.tagging ul, .tagged ul {
list-style: none;margin: 0.25em;
padding: 0;
}
.tagClear {
clear: both;
}
.footer {
font-size: .9em;
}
.footer li {
display: inline;
}
* html .viewer pre {
width: 99%;
padding: 0 0 1em 0;
}
.viewer {
line-height: 1.4em;
padding-top: 0.5em;
}
.viewer .button {
margin: 0em 0.25em;
padding: 0em 0.25em;
}
.viewer blockquote {
line-height: 1.5em;
padding-left: 0.8em;
margin-left: 2.5em;
}
.viewer ul, .viewer ol{
margin-left: 0.5em;
padding-left: 1.5em;
}
.viewer table {
border-collapse: collapse;
margin: 0.8em 1.0em;
}
.viewer th, .viewer td, .viewer tr,.viewer caption{
padding: 3px;
}
.viewer table.listView {
font-size: 0.85em;
margin: 0.8em 1.0em;
}
.viewer table.listView th, .viewer table.listView td, .viewer table.listView tr {
padding: 0px 3px 0px 3px;
}
.viewer pre {
padding: 0.5em;
margin-left: 0.5em;
font-size: 1.2em;
line-height: 1.4em;
overflow: auto;
}
.viewer code {
font-size: 1.2em;
line-height: 1.4em;
}
.editor {
font-size: 1.1em;
}
.editor input, .editor textarea {
display: block;
width: 100%;
font: inherit;
}
.editorFooter {
padding: 0.25em 0em;
font-size: .9em;
}
.editorFooter .button {
padding-top: 0px; padding-bottom: 0px;}
.fieldsetFix {border: 0;
padding: 0;
margin: 1px 0px 1px 0px;
}
.sparkline {
line-height: 1em;
}
.sparktick {
outline: 0;
}
.zoomer {
font-size: 1.1em;
position: absolute;
padding: 1em;
}
.cascade {
font-size: 1.1em;
position: absolute;
overflow: hidden;
}
/*}}}*/
!!!<<gradient horiz #fc3 #fff>> [[JohnDoe]]^^<<tiddler CloseThisOpen with: FormattingTiddlers '« back'>>|<<toolbar editTiddler>>» ^^>>
|[[JohnDoe##MoreJohn]]|
/***
|''Name:''|JohnDoe|
|''Version:''|n/a|
|''Source:''|n/a|
|''Author:''|msg|
|''Description:''|Test section core feature.|
|''Documentation:''|[[TiddlerSections]]|
|''Source Code:''|n/a|
|''~TiddlyWiki:''|n/a|
|''Requires''|TW ver. 2.4|
|''Stylesheet Changes''|none|
|See Above|n/a|
***/
/%
!!!Main
First name:John
Last name:Doe
Birthday: October
!!!Work
Phone:
!!!Personal
Phone:
Mobile:
Email:
!!!Misc
[img[http://img167.imageshack.us/img167/2677/100pxalchemyearthsymbolyx3.png]]
Earth Rabbit
<<slider cookie JohnDoe##MoreJohn "More about John" tooltip>>
!!!end
%/
/%
!!!MoreJohn
Height: 6' 0"
Weight: 87kgs
!!!end MoreJohn
%/
<<tiddler TabsTiddler>>
''Find tag sectiondemo''
<script>
var out="";
out= "|bgcolor:#abf; Sort|bgcolor:#abf; Title |bgcolor:#abf; Modified |bgcolor:#abf; Tags |h\n";
var tids=store.sortTiddlers(store.getTaggedTiddlers("sectiondemo"),"-modified");
for (var t=0; t<tids.length && t<10; t++)
out+= "| "+(t+1)+"|[["+tids[t].title+"]]|"+tids[t].modified.formatString("YYYY.0MM.0DD")+"|"+tids[t].tags+"|\n"
return out;
</script>
<!--{{{-->
<!-- <div class='toolbar' macro='toolbar closeTiddler closeOthers permalink references jump'></div> -->
<div class='toolbar' macro='toolbar closeTiddler closeOthers permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'>
<!-- <span macro='view modifier link'></span>,-->
Last modified <span macro='view modified date [[DD MMM YYYY]]'></span>
<!-- (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>) -->
</div>
<!--<div class='tagging' macro='tagging'></div> -->
<!-- <div class='tagged' macro='tags'></div> -->
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
The [[current version|Current version]] of IRIS runs best on ''Matlab Release 2008a''. Altough you can still run IRIS on older versions of Matlab, too, you will not be able to use all the IRIS functionality.
For some of the IRIS functions you will need the following toolboxes:
*[[The Optimization Toolbox|http://www.mathworks.com/products/optimization]]. This toolbox is needed when you call IRIS functions to numerically evaluate the steady state of non-linear models, or to estimate parameters.
*[[The Symbolic Math Toolbox|http://www.mathworks.com/products/optimization]]. If you have this toolbox installed with Matlab, IRIS will automatically use symbolical derivatives instead of numerical derivatives when computing the approximate solution. Furthermore, you can use the {{{!symbolic}}} option in steady-state code files.
The [[Census X12-ARIMA|http://www.census.gov/srd/www/x12a]] program, version 0.9 build 177, is now an integral part of IRIS, by courtesy of the U.S. Census Bureau's development team. You needn't download, install and link X12 manually any longer.
If you have a properly installed distribution of ~TeX/~LaTeX, IRIS will automatically detect it. You needn't manully link it with IRIS as it was the case in previous versions.
Finally, the new reporting class, {{{htmlreport}}}, produces the so-called "single-file web archives", or MHT files. They can be opened, and worked with, in Web browsers exactly the same way as HTML files. If your browser doesn't support them by default, you can download a free plug-in from [[www.unmht.org|http://www.unmht.org]].
The IRIS Toolbox is a [[free|Licence]] [[Matlab|http://www.mathworks.com]] based package for advanced economic modelling. IRIS has been developed by [[Jaromir Benes|Contact]] since 2001, mainly as a tool for building and implementing rational-expectations models (such as ~DSGEs), and operating policy analysis and forecasting systems organised around such models. IRIS runs on Matlab ''Release 2008a'' or higher.
Examples of what you can do with IRIS include
* developing models using a flexible model code language,
* estimating models using classical methods (maximu likelihood, minimum prediction error) and methods with bayesian flavour (maximum regularised likelihood, posterior mode),
* simulating both permanent and transitory shocks,
* simulating not-so-big non-linearities using a simple perfect-foresight-equivalent algorithm,
* analysing deterministic and stochastich properties, and comparing structural models and data,
* summarising observed data properties using reduced-form, structural, or bayesian VAR models,
* managing macroeconomic time series (monthly, bimonthly, quarterly, semi-annual, annual frequencies) and databases,
* reporting results as graphs, tables, and matrices in PDF, PS or HTML documents.