a field-theory motivated approach to computer algebra



All questions about using Cadabra can be posted on the Cadabra Q&A forum. The forum accepts LaTeX formulas and is fully searchable. If you feel your question is not ready for public consumption, please email me at

Frequently asked questions

If you have a question, please first consult the list of frequently asked questions; yours may be on it already.

The Cadabra book

This book is the place to go for a detailed specification of how Cadabra works. You can browse it online or download the lot as a single PDF file by clicking on the book cover. If you prefer to learn by example, you are better off with the tutorials. Also don't forget to have a look at Leo Brewin's excellent introductory papers on Cadabra.

For detailed information on how to write Cadabra algorithms (in Python or C++), please consult Writing Algorithms in Cadabra2 by Dominic Price.

The guide below a translation of the one for Cadabra 1.x, and still work-in-progress.

[cadabra book cover]
  1. The input format
    1. Basics about the input format
    2. Printing expressions
    3. Object properties and declaration
    4. Indices, dummy indices and automatic index renaming
    5. Exponents, indices and labels
    6. Spacing and brackets
    7. Implicit versus explicit indices
    8. Index brackets
  2. Mathematical properties
    1. Derivatives and implicit dependence on coordinates
    2. Accents
    3. Symbol ordering and commutation properties
    4. Anti-commuting objects and derivatives
  3. Manipulating expressions
    1. Selecting parts of expressions
    2. Elementary operations on expressions
    3. Using multiple files and notebooks
    4. Default simplification
    5. Patterns, conditionals and regular expressions
    6. Numerical evaluation of expressions
  4. Writing your own packages
    1. Programming in Cadabra
    2. Startup and program options, environment variables
    3. Using Cadabra directly from C++

Old reference guide

An extensive reference guide of version 1.x of the program, with a description of the input language, the algorithms and technical details on how to extend it by adding new C++ modules, is available as

Kasper Peeters
preprint AEI-2006-038
last version: November 2nd, 2012

Go here if the new 2.x reference manual above does not yet have the information you need.

Copyright © 2001-2024 Kasper Peeters