Sym is a set-driven matrix language for expressing large-scale general equilibrium models in algebraic form. It is designed to be nearly as concise as standard matrix notation. However, it also imposes rigorous conformability rules on all expressions, allowing it to catch a broad range of potential errors that could otherwise arise in matrix-driven languages. As a result, subscripts are unnecessary in many expressions, improving the clarity of a model’s code and facilitating documentation and maintenance.
Sym is used to implement G-Cubed, a multi-region general equilibrium model of the world economy, and OpenIGEM, an open-source econometric general equilibrium model of the US economy.
Source Code and Executables
- Sym’s source code is available on GitHub via the link above or here.
- Windows executables are available from the releases page.
- Sym also compiles without modification under various versions of Linux.
Documentation
- An overview of Sym and a short discussion of its design principles.
- A short example comparing Sym’s notation with that of Fortran and Gempack’s TABLO language.
- An annotated listing of the Sym implementation of the G-Cubed model.
- The program’s usage message, including a list of the back-end solution packages it supports.
- A brief reference card for Sym’s syntax.