Jason Rhinelander committed Feb 10, 2014 1 2 3 # Eris - agent-based economic modelling library ## Description  Jason Rhinelander committed May 10, 2013 4   Jason Rhinelander committed May 10, 2013 5 6 Eris is a C++ library designed for simulating “economies“ consisting of agents who follow programmable rules, with the intention of deriving complex  Jason Rhinelander committed Oct 30, 2015 7 8 9 10 11 macro-level behaviour that is an emergent property of agent interaction. This project provides no implementation itself, but is intended to be used as the basis of an agent-based model. See the [creativity](https://git.imaginary.ca/eris/creativity/) project for a working example of a moderately complex ABM built using eris.  Jason Rhinelander committed May 10, 2013 12 13 14 15 16 17  This project was motivated by the inadequacy of mathematical models, which often impose severe constraints on agents in the name of tractability. At its core, this library imposes few constraints on the behaviour of agents. Individuals agents can, for instance, be programmed to be ultra-rational, or  Jason Rhinelander committed Oct 30, 2015 18 19 20 can be “dumb” in the sense of following only simple rules of thumb. The behaviours and means of interacting are left to packages developed using this library.  Jason Rhinelander committed May 10, 2013 21 22  Beyond the core, the library offers many specialized implementations that may  Jason Rhinelander committed Oct 30, 2015 23 24 be used as appropriate, but can equally well be ignored, enhanced, or replaced with alternative implementations.  Jason Rhinelander committed May 10, 2013 25   Jason Rhinelander committed Sep 20, 2013 26 The library name, Eris, is the name of the Greek goddess of chaos.  Jason Rhinelander committed May 10, 2013 27   Jason Rhinelander committed May 17, 2016 28 29 30 31 ## Documentation ### Library overview  Jason Rhinelander committed May 17, 2016 32 33 See the [Eris overview](OVERVIEW.md) documentation for an introductory overview to how the library works.  Jason Rhinelander committed May 17, 2016 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50  ### API documentation The API documentation can be built from the source code, as described in the Compiling section below, and is also available at https://imaginary.ca/eris/api/. A good place to start is the [eris::Simulation](https://imaginary.ca/eris/api/classeris_1_1Simulation.html) class, and the classes in the [eris::interopt](https://imaginary.ca/eris/api/namespaceeris_1_1interopt.html) and [eris::intraopt](https://imaginary.ca/eris/api/namespaceeris_1_1intraopt.html) namespaces. See also the various [classes of the creativity ABM](https://imaginary.ca/eris/creativity/annotated.html) for a working example of a moderately complex agent-based model.  Jason Rhinelander committed Apr 24, 2015 51 52 ## Compiling  Jason Rhinelander committed Nov 03, 2015 53 54 ### Requirements  Jason Rhinelander committed Nov 07, 2016 55 56 57 - [boost](http://www.boost.org/) - [liblzma](http://tukaani.org/xz/) - [Eigen](http://eigen.tuxfamily.org/), version 3.2.7 or above.  Jason Rhinelander committed May 23, 2017 58 59 - A C++ compiler supporting the C++14 standard, such as [clang](http://clang.llvm.org/) (3.4+) or [g++](https://gcc.gnu.org/) (5+)  Jason Rhinelander committed Nov 03, 2015 60 61 62 63  If you wish to build the HTML API documentation, additional requirements are: - [doxygen](http://www.stack.nl/~dimitri/doxygen/) - [graphviz](http://www.graphviz.org)  Jason Rhinelander committed May 11, 2016 64 - [mathjax](https://www.mathjax.org)  Jason Rhinelander committed Nov 03, 2015 65 66 67  ### Building  Jason Rhinelander committed Apr 24, 2015 68 69 70 To compile on a unix-like system, create a new build directory somewhere, then from this directory run:  Jason Rhinelander committed Nov 03, 2015 71  cmake /path/to/eris-src  Jason Rhinelander committed Apr 24, 2015 72 73 74 75 76 77  make -j4 You can install directly to the system (usually under /usr/local) using: make install  Jason Rhinelander committed Feb 10, 2014 78 79 ## License  Jason Rhinelander committed May 29, 2013 80 81 82 83 84 85 86 87 88 89 90 91 92 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .  Jason Rhinelander committed Feb 10, 2014 93 94 ## Author  Jason Rhinelander committed Feb 10, 2014 95 Jason Rhinelander -- [e-mail](mailto:jason@imaginary.ca), [homepage](https://imaginary.ca)  Jason Rhinelander committed Jul 16, 2015 96