Semi-exogenous state: breaking change

Semi-exogenous states can be used to model fertility (as in Life-Cycle Model 30 and the Sommer (2016) example), or to model search labor (no example codes yet, contact me if you want to see one).

You now use the ordering (semiz,z), where semiz are the semi-exogenous states, and z are the exogenous states. Previously codes had the ordering (z, semiz), but to be able to implement the Tan improvement for agent distribution calculations I have needed to change the ordering.

If you were already using semi-exogenous shocks the only changes you will need to make to your codes are likely to be changing the order to (semiz,z) as inputs to the return function, and to the FnsToEvaluate, and the creation of your age-j-equals-1 initial distribution (obviously if you have some plots or other hand-calculated things you need to edit these too so they index the appropriate dimension).

The good news is that the Tan improvement means all the agent distribution calculations are going to be much faster now :slight_smile: [There is no noticeable change to run times for value function and functions to evaluate]