Previous Up Next
6 Implementation
The O'Mega compiler is implemented in O'Caml [11], a functional programming language of the ML family with a very efficient, portable and freely available implementation, that can be bootstrapped on all modern computers in a few minutes. The library modules built on experience from [12, 13].

A pretty printed and cross referenced snapshot of the complete implementation can be read at http://theorie.physik.uni-wuerzburg.de/~ohl/omega/doc/omega.ps.gz. However, this code is still under construction and while fully functional contains unfinished developments and dead ends.

The powerful module system of O'Caml allows an efficient and concise implementation of the DAGs for a specific physics model as a functor application [1]. This functor maps from the category of trees to the category of DAGs and is applied to the set of trees defined by the Feynman rules of any model under consideration.


Figure 1: Module dependencies in O'Mega. The diamond shaped nodes denote abstract signatures defining functor domains and co-domains. The rectangular boxes denote modules and functors, while oval boxes stand for example applications.


The module system of O'Caml has been used to make the combinatorial core of O'Mega demonstrably independent from the specifics of both the physics model and the target language [1], as shown in Figure 1. A Fortran90/95 backend has been realized first, backends for C++ and Java will follow. The complete electroweak Standard Model has been implemented together with anomalous gauge boson couplings. The implementation of interfering color amplitudes is currently being completed.

Many extensions of the Standard Model, most prominently the Minimal Supersymmetric Standard Model (MSSM), contain Majorana fermions. In this case, fermion lines have no canonical orientation and the determination of the relative signs of interfering amplitudes is not trivial. However, the Feynman rules for Majorana fermions and fermion number violating interactions proposed in [14] have been implemented in O'Mega in analogy to the naive Feynman rules for Dirac fermions and both methods are available. Numerical comparisons of amplitudes for Dirac fermions calculated both ways show agreement at a small multiple of the machine precision. Thus, all ingredients for the MSSM are available in O'Mega and the implementation of the complete MSSM Lagrangian is currently under way. Non-minimal gauge models, including left-right symmetric models, can be implemented easily.

As mentioned above, the compilers for the target programming language are the slowest step in the generation of executable code. On the other hand, the execution speed of the code is limited by non-trivial vertex evaluations for vectors and spinors, which need O(10) complex multiplications. Therefore, an O'Mega Virtual Machine can challenge native code and avoid compilations.


Previous Up Next