This directory has all the functions to simulate the model from Ahlfedlt et al. (2015)

##Outline of Code

##1. Auxiliary functions: utils.R

**Goal**: an R function to compute matrix operations
like Matlab such as .*, ./, -, and + **Description**:
self-explanatory **Input**: two arrays
**Output**: a new array

**Goal**: an R function to sum across columns for 3x3
matrixes **Description**: self-explanatory: useful for a
model with multiple sectors **Input**: a 3x3 Matrix
**Output**: a new vector with the sum of rows, columns, or
the third dimension

**Goal**: an R function to sum across rows or columns
and then take the transpose **Description**:
self-explanatory: useful for the basic model **Input**: a
2x2 Matrix **Output**: a new vector with the sum of rows or
columns

##2. Main functions: basic_models.R

**Goal**: an R function to transform travel times into
commuting costs **Description**: self-explanatory.
**Input**: a matrix of travel times and the parameter
epsilon (how easy is to substitute transportation modes)
**Output**: a matrix of iceberg commuting costs.

**Goal**: an R function to compute the average income in
each location **Description**: self-explanatory.
**Input**: The matrix lambda_ij|i The vector of wages w_j
**Output**: The average income in each location.

**Goal**: an R function to invert the model and recover
the wage distribution that matches the model and data
**Description**: self-explanatory. **Input**:
L_j Number of workers in each location L_i Number of residents in each
location w_j An initial vector of wages theta: the commuting and
migration elasticity tau: iceberg commuting cost matrix tol: tolerance
factor nu: convergence parameter **Output**: w_j: a vector
of wages that matches the model with the data lambda_ij_i the commuting
shares conditional on living in location i W_i: a vector of commuter
market access measure

**Goal**: an R function to invert the model and recover
the density development that matches the model and data
**Description**: self-explanatory. **Input**:
Q_i vector of housing prices K_i size of each location w_j A vector of
wages L_j number of workers y_bar: average income beta: output
elasticity w.r.t labor alpha: exp. share in the consumption good mu:
land development: output elasticity w.r.t capital
**Output**: varphi_i: a vector of density of the model that
matches the model with the data Q_mean: the geometric mean of housing
prices Q_norm: housing prices normalized by the geometric mean FS_f:
Commercial floorspace FS_r: Residential floorspace FS: total floorspace
= varphi_i x K^{1-mu}

**Goal**: an R function to invert the model and recover
the productivity vector **Description**: self-explanatory.
**Input**: N number of locations Q_i vector of housing
prices K_i size of each location w_j A vector of wages L_j number of
workers t_ij travel times matrix delta decay parameter agglomeration
lambda strength of the agglomeration force **Output**: A_i
Endogenous TFP measure (takes into account the externalities) a_i
baseline and exogenous productivity measure

**Goal**: an R function to invert the model and recover
the amenity vector **Description**: self-explanatory.
**Input**: N number of locations Q_i vector of housing
prices L_i number of residents in each location W_j A vector of commuter
market access measures t_ij travel times matrix theta commuting
elasticity alpha exp. share in the consumption good rho decay parameter
of congestion forces eta strength of the congestion force
**Output**: B_i Endogenous amenity measure (takes into
account the externalities) b_i baseline and exogenous amenity
measure

**Goal**: an R function to invert the model and recover
the economy fundamentals **Description**: self-explanatory.
**Input**: N number of locations Q_i vector of housing
prices L_i number of residents in each location L_j number of workers in
each location K size of each location t_ij travel times matrix zeta
convergence parameter tol tolerance factor alpha exp. share in the
consumption good beta output elasticity wrt labor theta commuting
elasticity delta decay parameter agglomeration rho decay parameter of
congestion forces lambda strength of the agglomeration force

eta strength of the congestion force epsilon paramet travel times to
commuting costs mu land development output elasticity wrt capital
**Output**: This function uses all the other function as
inputs A_i Endogenous TFP measure (takes into account the externalities)
a_i baseline and exogenous productivity measure B_i Endogenous amenity
measure (takes into account the externalities) b_i baseline and
exogenous amenity measure w_j vector of wages that match the model with
the data varphi density of development Q_norm housing prices
normalized

**Goal**: an R function to solve the model and compute
counterfactuals **Description**: self-explanatory.
**Input**: N number of locations L_i initial number of
residents in each location K size of each location t_ij travel times
matrix a baseline productivity b baseline amenity endo_Lr update
residents or not alpha exp. share in the consumption good beta output
elasticity wrt labor theta commuting elasticity delta decay parameter
agglomeration rho decay parameter of congestion forces lambda strength
of the agglomeration force

eta strength of the congestion force epsilon paramet travel times to
commuting costs mu land development output elasticity wrt capital w_eq
initial vector of wages Q_eq initial vector of housing prices theta_eq
initial share of floorspace used commercially **Output**: w
new vector of wages W_i new commuter market access measure B new vector
of amenities (takes into account the externalities) A new vector of
productivities (takes into account the externalities) Q new vector of
floorspace prices lambda_ij_i new matrix of commuting shares L_i new
vector of residents L_j new vector of workers ybar average income ttheta
new vector of the share of floorspace used commercially u welfare in
each location (not considering the shock) U aggregate welfare