4 research outputs found

    Routines and Applications of Symbolic Algebra Software

    Get PDF
    Computing has become an essential resource in modern research and has found application across a wide range of scientific disciplines. Developments in symbolic algebra tools have been particularly valuable in physics where calculations in fields such as general relativity, quantum field theory and physics beyond the standard model are becoming increasing complex and unpractical to work with by hand. The computer algebra system Cadabra is a tensor-first approach to symbolic algebra based on the programming language Python which has been used extensively in research in these fields while also having a shallow learning curve making it an excellent way to introduce students to methods in computer algebra. The work in this thesis has been concentrated on developing Cadabra, which has involved looking at two different elements which make up a computer algebra program. Firstly, the implementation of algebraic routines is discussed. This has primarily been focused on the introduction of an algorithm for detecting the equivalence of tensorial expressions related by index permutation symmetries. The method employed differs considerably from traditional canonicalisation routines which are commonly used for this purpose by using Young projection operators to make such symmetries manifest. The other element of writing a computer algebra program which is covered is the infrastruc- ture and environment. The importance of this aspect of software design is often overlooked by funding committees and academic software users resulting in an anti-pattern of code not being shared and contributed to in the way in which research itself is published and promulgated. The focus in this area has been on implementing a packaging system for Cadabra which allows the writing of generic libraries which can be shared by the community, and interfacing with other scientific computing packages to increase the capabilities of Cadabra
    corecore