SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

General information

The aim of xloops is to calculate one-particle irreducible Feynman diagrams with one or two closed loops for arbitrary processes in the Standard Model of particles and related theories. Results can be returned both algebraically and numerically. All necessary tensor integrals are treated for arbitrary masses and momenta. xloops was originally written in the language of the Maple computer algebra system.

The xloops-GiNaC package, of which this document is a part, is a partial re-implementation of the original xloops program based on the GiNaC C++ library for symbolic computation. It currently consists of a library of GiNaC functions for calculating one-loop one-, two- and three-point integrals to any tensor rank. Our goal is to eventually re-implement the complete xloops program in C++ using GiNaC.

Web site and mailing list

The official web site for xloops is:
http://wwwthep.physik.uni-mainz.de/~xloops/

A mailing list is located at:
xloops-list@thep.physik.uni-mainz.de

To subscribe, send an email to majordomo@thep.physik.uni-mainz.de containing the line

subscribe xloops-list your-name@your.domain

in the body of your email. You will then receive an email containing instructions how to confirm your subscription.

See http://www.ginac.de/Lists.html for the list policy.

Installation

See the file "INSTALL".

What is there and how to use it

xloops-GiNaC currently consists of two components:

  1. A "libxloops" C++ library (and associated header files) that contains a couple of GiNaC functions for calculating one-loop integrals. These get installed to
      {PREFIX}/lib/libxloops.a
      {PREFIX}/include/xloops/*.h

(the installation prefix can be changed with the "--prefix=PREFIX" option to "configure"; it defaults to /usr/local)

Here is an example program that calculates the analytical and numerical result for the UV-divergent and the finite terms of the integral OneLoop2Pt(1,0,q,m1,m2,1,1,rho):

      #include <iostream>
      #include <ginac/ginac.h>
      #include <xloops/xloops.h>

      using namespace GiNaC;
      using namespace xloops;

      int main(void)
      {
        symbol q("q"), m1("m1"), m2("m2"), eps("eps"), rho("rho");
        ex a = OneLoop2Pt(1, 0, q, m1, m2, 1, 1, rho);
        a = a.series(eps == 0, 2);
        ex a1 = a.coeff(eps, -1).subs(rho == 0);
        ex a2 = a.coeff(eps, 0).subs(rho == 0);
        cout << "Order eps^-1 is " << endl << a1.normal() << endl;
        cout << "Order eps^0 is "  << endl << a2 << endl;
        return 0;
      }

This program has to be linked with the xloops and GiNaC libraries.

2. A version of the interactive GiNaC shell "ginsh", called "ginsh-xloops"

that adds the OneLoop1Pt(), OneLoop2Pt() and OneLoop3Pt() functions. You can use this for experimenting interactively with the xloops functions. By default, ginsh-xloops gets installed to

{PREFIX}/bin/ginsh-xloops

Here is an example ginsh-xloops session in which the same integral is calculated as in the above C++ program (divergent part only):

      ginsh - GiNaC Interactive Shell (xloops-ginac V0.1.3)
        __,  _______  Copyright (C) 1999-2001 Johannes Gutenberg University Mainz,
       (__) *       | Germany.  This is free software with ABSOLUTELY NO WARRANTY.
        ._) i N a C | You are welcome to redistribute it under certain conditions.
      <-------------' For details type arranty;'.

      Type ?? for a list of help topics.
      > a = OneLoop2Pt(1,0,q,m1,m2,1,1,rho);
      OneLoop2Pt(1,0,q,m1,m2,1,1,rho)
      > a = tensor_reduction(a, eps);
      1/2Scalar1Pt(m2,rho)q^(-1)-1/2q^(-1)Scalar1Pt(m1,rho)+Scalar2Pt(q,m1,m2,1,1,rho)*(-1/2m2^2q^(-1)+1/2m1^2q^(-1)-1/2q)
      > a = series(a,eps==0,1);
      (IPi^2*(-1/2m2^2q^(-1)+1/2m1^2q^(-1)-1/2q)+1/2IPi^2m2^2q^(-1)-1/2IPi^2m1^2q^(-1))eps^(-1)+Order(1)
      > normal(");
      (-1/2IPi^2q)eps^(-1)+Order(1)

If you are unfamiliar with GiNaC, we recommend that you read the GiNaC tutorial first because currently xloops-GiNaC is only usable in the form of GiNaC functions.

How to report bugs

If you have identified a bug in xloops you are welcome to send a detailed bug report to <xloops-bugs@thep.physik.uni-mainz.de>. Please think about your bug! This means that you should include

  • Information about your system
    • Which operating system and version (uname -a)
    • Which C compiler and version (gcc --version)
    • For Linux, which version of the C library

And anything else you think is relevant.

  • Information about your version of xloops
    • Version and release number
    • Which options xloops was configured with
  • How to reproduce the bug
    • If it is a systematical bug in the library, a short test program together with the output you get and the output you expect will help us to reproduce it quickly.

Patches are most welcome. If possible please make them with diff -c and include ChangeLog entries.


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.