1. Getting Started with Numerics#

On this page, there are some links with relevant information for getting started with numerical computing. We point to some references for the Julia programming language, as well as some resources for learning about version control software.

1.1. Version Control#

Version control software is a tool used in software development (and sometimes in other fields) to manage and track changes made to a project’s source code, documents, or any other set of files. It allows multiple contributors to work collaboratively on a project, keeping a history of changes, and facilitating the organization and synchronization of different versions of the project. The most popular version control system is git, which is a free tool developed by Linus Torvalds in 2005, and has become the de facto standard in the software development industry.

Again, multiple resources are available for learning about git. From the official website, the book Pro Git is a good place to start. For a more dynamic approach, you can learn git through this interactive tutorial.

1.2. Julia#

In order to get started with Julia, there are many resources already available. The official documentation is a good place to start, and a full getting started exposition can be found for example here. There is also a learning page that has tutorials on different topics, a list of books, and much more.

Additionally, there is an active forum for asking questions, as well as a slack channel and a stack overflow page.

1.3. Julia Packages#

Julia has a very active open-source community, and many packages are available for different purposes. These typically have their own documentation, and are hosted on GitHub. An (incomplete) list of packages that are relevant for this course are given below:

Also check out the GitHub page for our organization, which hosts and/or links many of the relevant software repositories.

1.4. Noteworthy Tensor Network Software#

There are many additional software libraries available for tensor network computations, or more generally for quantum physics research. Below you can find an incomplete list of some of these.

  • ITensor Julia/C++ library for tensor network calculations

  • TenPy Python library for tensor network calculations

  • QUIMB Python library for quantum information many-body calculations