#---------------------------------------------------------
# Perl code for analysing ICP data for REStat paper
# "Incorporating Minimum Subsistence Consumption into International Comparisons of Real Income"
# file:    
# purpose: 
# author:  Robert Ackland (robert.ackland@anu.edu.au)
# date:    09Apr2008
# note:    This code has been released to enable further academic research in this area.
#          I would appreciate any comments/suggestions on the code, but unfortunately I am not able to
#          offer in-depth support.
#          Copyright (C), 2008
#---------------------------------------------------------

Contained in this distribution:
Main.pl                Main driver program    
AffineResults.pl       Routines for constructing affine quantity data and associated marginal minimum path matrix
GetData.pl             Data collection/manipulation utilities
SigmaConvergence.pl    Routines for computing sigma convergenc
CalcElasticities.pl    Calculate income elasticitity for each gamma vector
TimeLogPrintUtil.pl    Print and logging utilities
HARP.pl                Routines for testing Homothetic Axiom of Revealed Preference (HARP)
data                   Data files
DQ_data                Data files originally provided by Dowrick and Quiggin (1997)
minos_results          Result files from AMPL-MINOS (I am not able to supply the binary)
results                Where the output from the perl code goes
README                 This file

The code was run under a fairly standard installation of perl (5.8.6-15) on RedHat Fedora Core 4.  I don't think I had to install any additional modules.  Please note that the code was written over a long period (originally starting around 2002) and so some of the coding techniques are less than optimal.  If you make improvements to the code for your own work, I would of course appreciate a copy.

Before running Main.pl, you will probably want to edit it.  There are three booleans that are used to control the flow of the program:
$homotRun - setting to 1 will do the homothetic run (column 1 in Table 1 in paper).

$affineHomotUnconstrained - setting to 1 will do the unconstrained affine homothetic run (column 2 in Table 1 in paper).

$affineHomotConstrained - setting to 1 will do the constrained affine homothetic run (columns 3-5 in Table 1 in paper).   In this run, you also need to set the "type" variable:
	$type = "NLU";               #First type of constraint: necessity/luxury/unconstrained
	$type = "homotrelax.01";     #Second type of constraint: homotheticity relaxed by 1%
	$type = "homotrelax.1";      #Second type of constraint: homotheticity relaxed by 10%
	$type = "homotrelax.2";      #Second type of constraint: homotheticity relaxed by 20%
	$type = "homotrelax.3";      #Second type of constraint: homotheticity relaxed by 30%

Robert Ackland
The Australian National University

