Version 2.5: InfHorz

VFI Toolkit Version 2.5 has just been released. It breaks all infinite horizon codes. The fix is easy, just ‘find and replace all’ “_Case1” with “_InfHorz”. So for example, some of the core commands are now ValueFnIter_InfHorz(), StationaryDist_InfHorz(), EvalFnOnAgentDist_AllStats_InfHorz(), and HeteroAgentStationaryEqm_InfHorz().
[Note: finite horizon is still _Case1_FHorz, so don’t change those, only infinite horizon problems need updating to work with Version 2.5]

This removes the Case 1 vs Case 2 distinction entirely from infinite horizon problem in VFI Toolkit. Case 1 vs Case 2 was a distinction borrowed/inherited from the classic textbook of Stokey, Lucas & Prescott – Recursive Method in Economic Dynamics. But over time it has become clear that while that is a good distinction for the analytic maths, it is the wrong way to think about compute. When computing such distinctions should be done on a ‘per endogenous state’ basis, and there are a wide range of different Case 2 states which need their own naming conventions to make them easier to remember.
[Case 1 vs Case 2 continues to exist in FHorz, but will be removed at some future stage. Likely next year.]

That is all for today. I know it is a pain-in-the-arse for all users to have to rename everything in infinite horizon problems. Apologies for the inconvenience but it is important to the longer-term health of VFI Toolkit. There are some cool new things with Version 2.5, and there will be two posts later this month demonstrating some of them. Hopefully these new features will make you think the renaming-inconvenience has been worthwhile 🙂

PS. I have left ‘ValueFnIter_Case1()’ as a command in the toolkit that simply throws an error and directs you to this post. Hopefully this will help make it clear to users what they have to change to run old codes.

© 2026 A MarketPress.com Theme