Patterns in static


Setting up

The supporting cast

To use Apophenia, you will need to have a working C compiler, the GSL (v1.7 or higher) and SQLite installed. mySQL/mariaDB is optional.

  • Some readers may be unfamiliar with modern package managers and common methods for setting up a C development environment; see Appendix O of Modeling with Data for an introduction.
  • Other pages in this documentation have a few more notes for Windows users, including MinGW users.
  • Install the basics using your package manager. E.g., try
sudo apt-get install make gcc libgsl0-dev libsqlite3-dev


sudo yum install make gcc gsl-devel libsqlite3x-devel
  • If you use a Debian-based system (including Ubuntu), try the version in Debian's Stretch distribution:
#Add Stretch to your sources list
sudo sed -i '$a
deb stretch main
deb-src stretch main' /etc/apt/sources.list
sudo apt-get update
#Get Apophenia
sudo apt-get install apophenia-bin apophenia-doc libapophenia2 libapophenia2-dev libapophenia2-dbg
#Optional: remove Stretch from your sources list.
sudo sed -i -e '$d' -e '$d' /etc/apt/sources.list

Thanks to Jerome Benoit for building the package and bringing the library up to Debian standards.

  • Mac users with Homebrew, try
    brew install homebrew/science/apophenia

Thanks to bdobyns for the Brew script.

tar xvzf apop*tgz && cd apophenia-0.999
./configure && make && make check && sudo make install

If you decide not to keep the library on your system, run sudo make uninstall from the source directory to remove it.

  • If you need to install packages in your home directory because you don't have root permissions, see the Not root? page.
  • A Makefile will help immensely when you want to compile your program.

Not root?



  • Those who would like to work on a cutting-edge copy of the source code can get the latest version by cutting and pasting the following onto the command line. If you follow this route, be sure to read the development README in the apophenia directory this command will create.
git clone