Feb 13, 2010
Cadabra is a computer algebra system for the manipulation of what could loosely be called tensorial expressions.Cadabra is aimed at, though not necessarily restricted to, theoretical high-energy physicists. Because of its target audience, the program's interface, storage system and underlying philosophy differ substantially from other computer algebra systems.Here are some key features of "Cadabra":· Usage of a TeX-like notation, which eliminates many errors in transcribing problems from paper to computer and back.· Built-in understanding of dummy indices and dummy symbols, including their automatic relabelling when necessary. Powerful algorithms for canonicalisation of objects with index symmetries, both mono-term and multi-term.· A typing system through properties, but freedom to dispense with this system entirely when it is not needed.· A new way to deal with products of non-commuting objects, enabling a notation which is identical to standard physicist's notation (i.e. no need for special non-commuting product operators).
· A flexible optional undo system. Interactive calculations can be undone to arbitrary level without requiring a full re-evaluation of the entire calculation.· A simple and documented way to add new algorithms in the form of C++ modules, which directly operate on the internal expression tree.Cadabra has been under development for some time now, but has never left my own computer. The current version is the first public release, intended to collect feedback from a wider audience. So, feel free to mail me at kasper.peeters (at) aei.mpg.de with suggestions or constructive criticism. What's New in This Release:
· Fixed bug in @unwrap and @pintegrate related to nested partial derivatives.
· Added '%' as a comment character.
· Made @canonicalorder and @acanonicalorder act on single-factor terms.
· Fixed handling of (a+b)+(c+d) type expressions in @drop/@keep_weight in which c & d have different weight (leading to an undetermined weight for 'c+d').