Home

LoopTools 2.8 User's Guide

image

Contents

1. C C 20 CHAPTER 1 LOOPTOOLS SetVersionkey k k GetVersionKey Mathematica export LTVERSION K bash setenv LTVERSION k tcsh where k is e g of the form 2 KeyCO 3 KeyDO The following keys for alternate ver sions are currently available KeyBget KeyDO KeyEget KeyEgetC KeyAll comprises all of these These symbols are not available in the shell therefore it is most common to set all bits of the version key by putting the value 1 The comparison by default takes a relative deviation of 107 as a threshold for issuing warnings but this can be changed with call setmaxdev e getmaxdev Fortran setmaxdev e getmaxdev C C SetMaxDev lt e GetMaxDev Mathematica export LTMAXDEV 8 bash setenv LTMAXDEV tcsh Debugging output can be turned on likewise with e g call setdebugkey k k getdebugkey Fortran setdebugkey Kk k getdebugkeyO C C SetDebugKey K k GetDebugKey Mathematica export LTDEBUG k bash setenv LTDEBUG k tcsh where k is e g of the form DebugC DebugD Identifiers range from DebugB to DebugE and are summarized by DebugA11 Again these identifiers are not available in the shell so the most common solution is to set all bits by choosing 1 The integrals are listed in the output with a unique serial number If the list of integrals becomes too long one can select only a range of serial numbers for viewing as
2. subroutine ffclmb clambd cc1 cc2 cc3 cc12 cc13 cc23 ier integer ier DOUBLE COMPLEX clambd cci cc2 cc3 cc12 cc13 cc23 subroutine ffxlmb xlambd a1 a2 a3 a12 a13 a23 ier integer ier DOUBLE PRECISION xlambd a1 a2 a3 a12 a13 a23 The aij ai aj are again differences of the parameters in these routines An arbitrary 2 x 2 determinant Oe ae can be obtained from ffd12i subroutine ffdl2i dl2i piDpj ns i1 i2 i3 isn j1 j2 j3 50 APPENDIX A THE ORIGINAL FF MANUAL jsn ier integer ns i1 12 13 isn j1 j2 j3 jsn ier DOUBLE PRECISION d12i piDpj ns ns Here the vector pj isn p p and analogously for j Note that the sign is important here If there is no connection between the two vectors one should use subroutine ffdl2t dlps piDpj i j k l lk islk iss ns ier integer in jn ipi kn ln lkn islk iss ns ier DOUBLE PRECISION dlps piDpj ns ns to calculate 05 5 with pi islk issp pk and no relationship between p p assumed A 8 2 3x3 determinants To calculate the 3 x 3 determinant d13p 55 575 given the dotproducts piDpj one can use subroutine ffdl3p dl3p piDpj ns ii ier integer ns ii 6 ier DOUBLE PRECISION dl3p piDpj ns ns The array ii j gives the position of the vectors of the determinant has to be calculated in this array We assume that Dua Pi P g D s P Pi T Pia and Pus Pii 2 Dia With all vectors incoming The 3 x 3 determinant d13q pe be 2 which occurs in express
3. All differences between the input parameters should be given in the array dpipj i j xpi i xpi j 44 APPENDIX A THE ORIGINAL FF MANUAL In the testing stages one can use subroutine ffccOr ccO cpi ier integer ier DOUBLE COMPLEX ccO cpi 6 subroutine ffxcOr cc0 xpi ier integer ier DOUBLE COMPLEX ccO DOUBLE PRECISION xpi 6 It tries 2 different permutations of the input parameters and the two different signs of the root in the transformation and takes the best one This permutation can later be chosen directly in the code If the requested three point function is infra red divergent i e one internal mass 0 and the other two on shell the terms log A with A the regulator mass are replaced by log 6 In all other terms the limit A 0 is taken The value of the cutoff parameter delta should be provided via the common block ffcut in which it is the first and only variable This infra red option does not yet work in case some of the masses have a finite imaginary part Comments The maximum loss of precision without warning is x1oss Numerical instabilities again occur very close to thresholds p m mj41 There are discrepancies with FormF for t channel diagrams in case t 0 but there are good reasons to distrust FormF there the limit is not approached smoothly The Z vertex correction to an ee vertex with one of the electrons slightly off shell is stable only for one mirror image A 6 4
4. CUE k k k2 m2 m2 m2 In both cases the same function is called with the same arguments since of course k pi and ky p p The arguments are given in the conventions of LoopTools 10 CHAPTER 1 LOOPTOOLS It is however important to realize that LoopTools functions like C and C4112 are the coef ficients respectively of k and ki k ko not of pi and pi PivP2p 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 11 1 3 Functions provided by LoopTools The distinction in the following for real and complex arguments is for Fortran and C C only Mathematica automatically chooses the right version 13 1 One point function Function call z real z complex Description AO a AOC a one point function A00 a A00C a coefficient of gu a m a numerator 424 izD 2yr q m 12 1 3 2 Tvvo point functions CHAPTER 1 LOOPTOOLS Function call a real a complex Description BOi id a BOiC id a Bget a BgetC a Bput res a BputC res 4 special cases BO a BOC a B1 a B1C a B00 a BOOC a B11 a B11C a B001 a B001C a B111 a B111C a two point tensor coefficient id all two point tensor coefficients all two point tensor coefficients scalar two point function coefficient of p coefficient of coefficient of p p coefficient of coefficient of p p p 2 2 a p Mi Ma ms num
5. Math Phys 3 1962 650 T D Lee M Nauenberg Phys Rev 133 1964 1549 N Nakanishi Progr Theor Phys 19 1958 159 52 Index A0 11 A00 11 A00C 11 Aoc 11 BO 12 B00 12 B001 12 B001C 12 BOOC 12 BOC 12 BOi 12 B01C 12 B1 12 B11 12 B111 12 B111C 12 B11C 12 B1C 12 Bget 12 BgetC 12 Bput 12 BputC 12 C preprocessor 25 C 27 c command line 27 CO 14 COi 14 cache 16 17 Cget 14 29 Cput 14 cross checks 20 DO 15 DOC 15 DOi 15 DOiC 15 DBO 13 DBOO 13 DB1 13 DB11 13 decomposition 8 Dget 15 29 DgetC 15 Dput 15 DputC 15 EO 16 EOC 16 E0i 16 03 16 Eget 16 EgetC 16 environment variable 25 Eput 16 EputC 16 error messages 21 ETT 25 77 command line 25 Fh5 21 flushing the cache 17 Fortran 25 getcmpbits 18 getdebugkey 20 getdelta 25 getlambda 25 getmaxdev 20 53 54 getminmass 25 getmudim 25 getversionkey 20 Higgs self energy 26 hosttype 6 Install 29 installation Loop lools 5 internal heap 17 IR regularization parameters 23 LoopTools 29 looptools h 25 Lorentz covariant tensors 8 LTCMPBITS 18 LTDEBUG 20 LTDELTA 25 LTERR 22 ltexi 25 ltini 25 LTLAMBDA 25 LTMAXDEV 20 LTMINMASS 25 LTMUDIM 25 LTRANGE 20 LTVERSION 20 LTWARN 21 Mathematica 29 momenta conventions for 7 9 MS 22 renormalization scale 7 reset heap 17 setcmpbits 18 INDEX s
6. There are a fevv flags to control the package in great detail These are contained in the common block ffflags The first one lwrite if on gives a detailed account of all steps taken to arrive at the ansvver This gives roughly 1000 lines of output for a four point function It is turned off by ffini The second one ltest turns on a lot of internal consistency checking If something is found wrong a message like ffdot4 error dotproducts vith p 10 vrong 1795 9 5E 12 is given The last number gives the deviation from the expected result in this case a relative precision of 1071 was found instead of the expected 10715 The ier counter is not changed as these are usually rounding off errors Please report any serious errors This flag is turned on by ffini turn it off manually once you are convinced that your corner of parameter space does not present any problems The next two flags 14also and 1dc3c4 control the checking of some extra algorithms This takes time and may even lead to worse results in some rare cases If you are pressed for speed try running with these flags off and only switch them on when you get the warning message Cancellations in final adding up If you get mysterious warn ings with the flags on try turning them off Another flag for internal use 1mem controls a rudimentary memory mechanism which is mainly used when trying different permutations of the parameters of the three and four point funct
7. with a safety margin Unfortunately the choices made are not always the best especially on the higher levels complete Co s or 5 s This is the reason the user can influence the possibilities considered with the flags 14a1so and 1dc3c4 which switch on or off the 16 dilogarithm algorithm and the expanded difference between two three point functions The dilogarithms are evaluated in ffxli2 and ffz1i2 These expect their arguments to lie in the region z lt 1 Re z lt 1 2 already more general functions used for testing are ffzxdl and ffzzdl The algorithm used is the expansion in log 1 z described in 34 APPENDIX A THE ORIGINAL FF MANUAL tHV79 As the precision of the computer is unknown in advance fancy Chebychev polynomials and the like are not used The values of the logarithms and dilogarithms are placed in a big array which is only summed at the last moment This is done to prevent false alarms of the warning system Every single addition in the whole program of which one cannot prove that both operands have the same sign is checked for numerical problems with a line like sum xtyt z xmax max abs x abs y if abs sum 1t xloss xmax call ffwarn n ier sum xmax with xloss set to 1 8 by ffini A theoretically better way would be to compare the result to the partial sums We are however only interested in the order of magnitude of the cancellation and for that this method suffices The only other place where
8. FUNCTIONS PROVIDED BY LOOPTOOLS 1 3 5 Four point functions Function call a real a complex Description DOi id a DOiC id a Dget a DgetC a Dput res 4 DputC res a special case DO a DOC a four point tensor coefficient id all four point tensor coefficients all four point tensor coefficients scalar four point function Di P2 ma 4 D a Pi P2 P3 Pi p T p p pa m ma m m 2 numerator 424 1 3 irP 2 rr Pa P3 q mil a 1 m a pi p mi a pi pa ps 2 mi 15 16 CHAPTER 1 LOOPTOOLS 1 3 6 Five point functions Function call a real a complex Description EOi id a EOiC id a five point tensor coefficient id Eget a EgetC a all four point tensor coefficients Eput res 4 EputC res 4 all four point tensor coefficients special case EO a EOC a scalar five point function a pi pa pa pas pi p pa pa pa pa ps bs Di mi m m ma P P2 m m _ qom numerator dq l 8 irP y 2 52 2 r g ml a tp m3 2 2 ds D 7 js kq pi m 4 q pi pa pa mal q pi p2 pa mg Pa 1 3 7 Tensor Functions The N0i functions B0i C0i etc are generic functions for all tensor coefficients of the respective N poi
9. Four point function Calling sequence 0 Do mi m m mi pi P2 p3 pa Pi p pa p the four point function is calculated in the subroutine A 6 SCALAR N POINT FUNCTIONS 45 subroutine ffxd0 cd0 xpi ier integer ier DOUBLE COMPLEX cdO DOUBLE PRECISION xpi 13 The array xpi should contain the internal masses squared in positions 1 4 the external momenta squared in 5 8 and s pi p2 t pa p3 in 9 10 Positions 11 13 should contain either 0 or xpi 11 u xpi 5 xpi 6 xpi 7 xpi 8 xpi 9 xpi 10 xpi 12 v xpi 5 xpi 6 xpi 7 xpi 8 xpi 9 xpi 10 xpi 13 w xpi 5 xpi 6 xpi 7 xpi 8 xpi 9 xpi 10 Unfortunately the complex four point function does not yet exist in a usable form There are two alternative entry points The first one can be used if there are significant cancellations among the input parameters subroutine ffxd0a cd0 xpi dpipj ier integer ier DOUBLE COMPLEX cdo DOUBLE PRECISION xpi 13 dpipj 10 13 in which these last elements are required and all differences between the input param eters are given in dpipj i j xpi i xpi j The second one can be used in the testing stages subroutine ffxdOr cd0 xpi ier integer ier DOUBLE COMPLEX cdO DOUBLE PRECISION xpi 13 It tries 6 different permutations of the input parameters and the two different signs of the root in the transformation and takes the best one This permutation can later be c
10. easily overlooked For this reason the FF warning system has largely been disabled in LoopTools FF does report the estimated number of digits lost however on which LoopTools acts as follows e If more than the Warning Digits default 9 are lost a more thorough version of the integral is used which uses e g different permutations of the input argu ments The Warning Digits can be set as follows call setwarndigits d d getwarndigits Fortran setwarndigits d 4 getwarndigits C C SetWarnDigits d d GetWarnDigits Mathematica export LTWARN d bash setenv LTWARN d tcsh e If in the end more than the Error Digits default 100 are reported lost LoopTools invokes the alternate version see Sect 1 3 10 The Error Digits are set via call seterrdigits d d geterrdigits Fortran seterrdigits d d geterrdigits C C SetErrDigits d d GetErrDigits Mathematica 22 CHAPTER 1 LOOPTOOLS export LTERR d bash setenv LTERR d tcsh 1 3 12 Ultraviolet Infrared and Collinear Divergences Ultraviolet divergences are regularized dimensionally in LoopTools The cancellation of the divergences can be checked with the two variables A and ju The first one replaces the actual divergence A 2 4 D w log 4r The second one is the dimensionful parameter introduced to keep the integral s mass dimension the same in all dimensions D see Sect 1 2 The initial value for A is 0 the MS
11. one can lose significant precision is in taking the logarithm of a number close to 1 All calls to the logarithm are checked by a wrapper routine for this case A routine dfflo1 zff1o1 is provided to evaluate log 1 lt x Finally a word on the determinant routines They use in general a very simplistic al gorithm to find the linearly independent combination of vectors which gives the most accurate answer try until it works All sets are tried in order until the sum in no smaller than xloss times the largest term In the larger determinants this set is remembered and tried first the next time the routine is called A 2 2 Timings In table A 1 we give the timings of the scalar n pint functions on different machines The numbers given can only be an indication as the path taken varies wildly with the com plexity of the problem A numerical unstable set of parameters might mean much more time spent in the determinant routines and a bit less in the dilogarithms for instance The flag 1test was turned off for these tests For a Do approximately 10 of the time is spent in the dilogarithms 50 in the deter minants and the rest in the sorting out and summing A 3 INSTALLATION 9D machine Bo Co Do Es NP1 0 2 ms 45 ms 13 ms 65 ms Sun4 0 9 ms 8 1 ms 20 ms 90 ms Apollo 10020 0 08 ms 15 ms 4 9 ms 24 ms AtariST 40 ms 400 ms 900 ms 5800 ms Table A 1 Timings of the scalar n point functions A 2 3 Tests The Bo has bee
12. 14159265358979D0 SW2 1 MW2 MZ2 ss 2 FP 1 5 USING LOOPTOOLS WITH C C 27 SigmaH Alfa 32 pi SW2 MW2 amp 3xMH2xA0 MH2 9 MH2 2 BO k2 MH2 MH2 amp 2x MH2xx2 4 MW2 k2 3 MW2 BO k2 MW2 MW2 amp 2 6 MW2 MH2 AO MW2 24xMW2 2 amp MH2 2 4D0 MZ2 k2 3 MZ2 BO k2 MZ2 22 amp 6 22 MH2 A0 MZ2 12 MZ2 2 end 1 5 Using LoopTools with C C Some technical details e Like in the Fortran case it saves a lot of typing to specify the location of LoopTools once in an environment variable For example in the tcsh use setenv LT HOME LoopTools HOSTTYPE Then compile the programs that use LoopTools with the following command LT bin fcc I LT include source files L LT lib looptools fcc is a script to compile C and C programs and link them with Fortran li braries in this case libooptools a Note that in a makefile you have to use parentheses around the environment variables i e LT instead of LT e To produce code valid for both C and C one can use the Complex data type defined by clooptools h which maps to std complex lt double gt in C and to double complex in C Note that the latter type is available only in C99 To use the LoopTools functions in a C C program the file clooptools h must be in cluded Similar to the Fortran case before making the first call to any LoopTools function ltiniO must be called and at the end 1texi may be called to g
13. A is treated as an infinitesimal quantity however which means that terms of order A or higher are discarded i e only the log terms are kept Since the final result should not depend on X after successful removal of the IR divergences can be given an arbitrary numerical value despite its infinitesimal character To test IR finiteness numerically one can proceed just as in the ultraviolet case calculate the expression for two values of A and check whether the results agree As mentioned the A dependence is logarithmic hence one has to change A on a big scale say from 1 to 1010 to decisively check IR finiteness e In dimensional regularization A 2 returns the coefficient of 2 2 A 1 the coefficient of e and A 0 indeed all other non positive values the finite piece In this case testing IR finiteness numerically proceeds through checking the coef ficients of 21 coefficients which have to add up to zero in observable quan tities This can be done particularly conveniently through the LTLAMBDA environ ment variable see below such that no recompilation of the program is necessary Collinearsingularities arise for vanishing momentum square of an external leg sand wiched between two massless internal propagators as in The divergence is logarithmic of the form log m7 s so the fermion mass acts as a natural regulator In sufficiently inclusive observables these logs cancel due to the
14. Fortran program the file 1ooptools h must be in cluded in every function or subroutine in which the LoopTools functions are called Be fore using any LoopTools function the subroutine 1tini must be called At the end of the calculation 1texi may be called to obtain a summary of errors A very elementary program would for instance be program simple_program include looptools h 26 CHAPTER 1 LOOPTOOLS call ltini print kx BO 1000DO 5000 8000 call ltexi end Note that as for all preprocessor commands the must stand at the beginning of the line It is important to include the 1ooptools h via the preprocessor command include instead of the include directive many Fortran compilers offer This is because prepro cessor variables are used in looptools h which would otherwise not take effect Inci dentally if you do run this program the result should be 4 40593283 2 7041431 To give a more realistic example here is the calculation of the bosonic part of the Higgs self energy in the electroweak Standard Model program HiggssE include looptools h double precision s double complex SigmaH external SigmaH call ltini do s 100 1000 50 print x s SigmaH s enddo call ltexi end double complex function SigmaH k2 double precision k2 include looptools h double precision MH2 MZ2 MW2 Alfa pi SW2 parameter MH2 10000 2 MZ2 91 188D0 2 MW2 80 39D0 2 Alfa 1 137 0359895DO pi 3
15. IONS PROVIDED BY LOOPTOOLS 19 Quadruple precision 16 byte real and 32 byte complex variables has a mantissa of ap proximately 33 decimal digits and can cope with even severe cancellations Quadruple precision does slow down the calculation though and is also not available on all plat forms The procedure to build the quadruple precision version is as follows Configure as usual then run make as make f makefile quad lt tag gt make f makefile quad lt tag gt install where the makefile is one of the following gfortran 4 6 all platforms makefile quad gfortran 177 HP Tru64 Unix makefile quad alpha ifort Linux Mac OS makefile quad ifort x f IBM RS6000 Mac OS PPC makefile quad x1f The resulting libraries and executables carry the suffix quad e g libooptools quad a 1 3 10 Versions and Debugging For checking the results Loop Tools has alternate implementations of various functions included most of which are based on an implementation by Denner The user can choose at run time whether the default version a mostly FF or the alternate version b mostly Denner is used and whether checking is performed This is determined by the version key O key compute version a 1 compute version b 2xkey compute both compare return a 3 key compute both compare return b Usage is as in call setversionkey k k getversionkey Fortran setversionkey getversionkey
16. Kinoshita Lee Nauenberg theorem KLN In non confined theories for example the electroweak 24 CHAPTER 1 LOOPTOOLS Standard Model it is possible to observe non inclusive observables vvhere the large effects due to small fermion masses can be seen In QCD it is again customary to regularize the collinear divergences dimensionally such that instead of large logs the divergences manifest themselves as poles in 1 e and 1 2 e For dimensional regularization QCD the collinear divergences are controlled in the same way as the IR divergences above setting A 2 1 0 returns the coef ficients of 1 1 and the finite piece respectively e To facilitate mass regularization LoopTools acts on the variable m2 in the follow ing way On calling a loop integral all arguments less than m2 are set to zero If it is discovered that the function truncated thus has a collinear divergence m is substituted back into the p This procedure makes it possible for LoopTools to use the regulator mass only in actually divergent configurations and avoid numerical problems due to small finite masses elsewhere The following routines allow to set and retrieve the regularization parameters Note that yu A and Mmin always enter squared call setdelta A A getdelta Fortran call setmudim u u getmudim call setlambda A A getlambda call setminmass m m2 getminmass setdelta A A getdelta C C set
17. Loop Tools 2 8 User s Guide September 18 2012 Thomas Hahn The dreadful legal stuff LoopTools is free software but is not in the public domain Instead it is covered by the GNU library general public license In plain English this means 1 We don t promise that this software works But if you find any bugs please let us know 2 You can use this software for whatever you want You don t have to pay us 3 You may not pretend that you vvrote this softvvare If you use it in a program you must acknovvledge somevvhere in your publication that you ve used our code If you re a lawyer you will rejoice at the exact wording of the license athttp gnu org licenses lgpl html LoopTools is available from http feynarts de looptools FormCalc is available from http feynarts de formcalc FeynArts is available from http feynarts de FF is available from http givo home xs4a11 n1 FF html If you make this softvvare available to others please provide them vvith this manual too If you find any bugs or want to make suggestions or just write fan mail address it to Thomas Hahn Max Planck Institut fiir Physik Werner Heisenberg Institut F hringer Ring 6 D 80805 Munich Germany e mail hahn feynarts de Contents 1 LoopTools 5 TA Installation td e Ode iade Ede tas Tat AR t A S 5 1 2 One Loop Integrals 4 23 AAA SER E RV 7 1 2 1 Tensor Coefficients o 5 b b ac a ba baa 8 1 2 2 Conventions f
18. a debut US 37 The error reporting system 4 044 ain a we a RES BS 38 25 17 A s n m aa ene desig Qa DV tes SE tein 38 2 52 Usina thesysteM sso o s bs a te ote ee s n s 38 A 5 3 Debugging possibilities Ses Ta ded ee 40 ADUANA AS E 41 ecalarm polmrunehins o doge de og unte Toe RARA 41 A61 desit ette toe tee tos woes 42 A 6 2 Two point function e a yaa d eua eun dT Sua x eg Re d eg 42 A 6 3 Three point function din acte doo oben ben sten soda Ee Rte 43 A 6 4 Four point function a 303 8 ce erac A as et Se 44 A 6 5 T vespolnt function 4 bed dose Sos dese Se ad da b 46 Tensor integrals s Terri eio S e mede epe eir ep Suc oily ees s dread 47 Peel a x od 1030000060 47 Determinants opor r A AAA a LATA 48 AS T 2 002 determinants Uv 49 A 8 2 3 X 3 determinants Vague a Re a a eda ma b RON d 50 A 83 4x4determinants 5 1 LoopTools LoopTools is a package for evaluation of scalar and tensor one loop integrals based on the FF package by G J van Oldenborgh vOV90 It provides the actual numerical imple mentations of the functions appearing in FormCalc output These are the scalar one loop functions of FF and the 2 3 4 and 5 point tensor coefficient functions in the conven tions of De93 LoopTools offers three interfaces Fortran C C and Mathematica so most programming tastes should be served 1 1 Installation T
19. ain either 0 or p the analogon of u There are two alternative entry points The first one can be used if there are significant cancellations among the input parameters subroutine ffxe0a ce0 cd0i xpi dpipj ier integer ier DOUBLE COMPLEX ce0 cd0i 5 DOUBLE PRECISION xpi 20 dpipj 15 20 in which these last elements are required and all differences between the input param eters are given in dpipj i j xpi i xpi j A 7 TENSOR INTEGRALS 47 The second one can be used in the testing stages subroutine ffxe0r ce0 cd0i xpi ier integer ier DOUBLE COMPLEX ce0 cd0i 5 DOUBLE PRECISION xpi 20 It tries the 12 different permutations of the input parameters and the two different signs of the root in the transformation and takes the best one This permutation can later be chosen directly in the code Comments The five point function has not yet been adequately tested The maximum loss of precision without warning is xloss There may be problems with diagrams with masses and or momenta squared exactly zero If you get a division by zero or the like try with a small non zero mass A 7 Tensor integrals At this moment only the vector two three and four point functions are available of which the two point functions is very badly implemented These tensor integrals are scheme independent the higher order functions differ between the Passarino Veltman scheme PaV79 and the kinematical determinant scheme d
20. ar four point function cc0i i Co without m the scalar three point functions xpi the masses as in ffxd0 and piDpj de13 and de12i the dotproducts and kinematical determinant as saved by ffxd0 and ffxcO when ldot is TRUE A 8 Determinants A knowledge of a few of the determinant routines may be useful to the user as well On the one hand they can be used in other parts of the calculation e g in the reduction A 8 DETERMINANTS 49 to scalar integrals but they also are the place where the numerical instabilities have been concentrated It is often useful or even necessary to import the required determi nants directly from the kinematics section We therefore list all the routines calculating determinants of external vectors and some containing internal vectors A 8 1 2 x 2 determinants To calculate the 2 x 2 determinant de12 p Di p given the dotproducts use subroutine ffcel2 del2 piDpj ns ii i2 i3 lerr ier integer ns il i2 i3 lerr ier DOUBLE COMPLEX del2 piDpj ns ns subroutine ffdel2 del2 piDpj ns ii i2 i3 lerr ier integer ns i i i2 i3 lerr ier DOUBLE PRECISION del2 piDpj ns ns In this piDpj i j pi p is the dotproduct of vectors p and p i1 i2 i3 give the position of the three vectors of which the determinant has to be calculated in this array lerr should be 1 If the dotproducts are not known there is a routine for xlambd A a a5 a3 which is 2 times the determinant if ai p
21. ave tried hard to make switching between real and double precision as easy as possible The packages roughly consists of six kind of routines e The high level and user callable routines such as ffxd0 e Dotproduct calculation routines such as ffdot4 e The determinant routines such as ffdl4p the number indicates the size of the determinant and the letter the kind e Routines to get combinations of dilogarithms for instance ffcxr the names roughly follow the names given in vOV90 e Low level routines the logarithms dilogarithms functions e Support routines initialisation the error and warning system taylor series boundaries and consistency checking The high level routines first compute missing arguments such as the differences of the input parameters Next the parameters are permuted to a position in which the eval uation is possible All dotproducts are calculated and from these the necessary deter minants are determined In the case of the four point function we now perform the projective transformation and compute all transformed dotproducts and differences The determinants and dotproducts allow us to find the combinations of roots needed which are passed on to the routines which evaluate the combinations of dilogarithms The most difficult part is to anticipate the cancellations among the dilogarithms without actually calculating them This is usually done by comparing the arguments mapped to the unit circle c
22. correct dimension of the integral in D space time dimen sions In constrained differential renormalization the mass scale enters in a conceptually different way however the dependence of the one loop integrals on y is the same as for dimensional regularization for details see HaP98 The denominators arise from the propagators running in the loop P the number of q s in the numerator determines the Lorentz tensor structure of the whole integral i e P 0 denotes a scalar integral P 1 a vector integral etc From the definition it is obvious that the integrals are symmetric under permutation of the Lorentz indices 8 CHAPTER 1 LOOPTOOLS The q s in the numerator arise typically from fermion propagators or from vertices that correspond to terms with derivatives in the Lagrangian The nomenclature is A for 71 B for T etc The scalar integrals are denoted by a sub scripted zero Ao Bo etc 1 21 Tensor Coefficients The integrals with a tensor structure can be reduced to linear combinations of Lorentz covariant tensors constructed from the metric tensor g and a linearly independent set of the momenta PaV79 The choice of this basis is not unique LoopTools provides not the tensor integrals themselves but the coefficients of these Lorentz covariant tensors It works in a basis formed from g and the momenta k which are the sums of the external momenta p see Eq 1 2 De93 In this basis the tensor coefficien
23. ement e g in cshrc The Mathematica interface is probably the simplest to use In 1 Install LoopTools Out 1 LinkObject LoopTools 1 1 In 2 BO 1000 50 80 Out 121 4 40593 2 70414 I The Nget routines return a list of rules containing all tensor coefficients e g In 3 Cget 80 80 10000 300 100 200 InputForm Out 3 InputForm 1 0 gt 0 0003683322958259527 0 00144304878124425 I cci gt 0 00003691991146686607 0 0008063637675463306 I 2 gt 0 0002186870966525929 0 0003255577507551812x1 cc00 gt 1 468122864600498 0 6620214671984382 I cc11 gt 0 0001383963649940767 0 0005211388919006447x1 cc12 gt 0 00005607420875500784 0 0001466442566605745 I 30 CHAPTER 1 LOOPTOOLS cc22 gt 0 0001038232033882128 0 0001572866825209231 I cc001 gt 0 4339544374355454 0 1905346035793642 I cc002 gt 0 5179247985708856 0 2390535391455292 I cc111 gt 0 0001637407816195954 0 0003561351446381443 I cc112 gt 0 00001499429891688691 0 00008510756809075344 I cc122 gt 0 00002351641063613291 0 00005055502592614985 I 222 gt 0 00005956786867352272 0 000101962969539097 1 One loop functions containing non numeric arguments e g BO 1000 MW2 MW2 re main unevaluated If it becomes necessary to switch off the evaluation of the LoopTools functions LoopTools can be uninstalled In 10 37 Uninstall 1 A The original FF Manual A 1 Intr
24. erator 424 h inP rp q m l q p m3 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 13 3 Derivatives of Two point functions Function call a real a complex Description BOi id a Bget a Bput res a special cases BOiC id a BgetC a BputC res a two point tensor coefficient id all two point tensor coefficients all two point tensor coefficients DBO a DBOC a derivative of BO DB1 a DB1C a derivative of B1 DBOO a DBOOC a derivative of BOO DB11 a DB11C a derivative of B11 DB001 a DB001C a derivative of B001 DB111 a DB111C a derivative of B111 a pmi mi as above Bput coefficients include the derivatives so there is no DBOi DBget or DBput 13 All derivatives are with respect to the momentum squared Note that the 01 Bget and 14 1 3 4 Three point functions CHAPTER 1 LOOPTOOLS Function call a real a complex Description COi id a Cget a Cput res 4 special case CO a CoiC id a CgetC a CputC res a COC a three point tensor coefficient id all three point tensor coefficients all three point tensor coefficients scalar three point function P ma m3 P3 2 2 2 2 2 a pi po pi p mi m m3 4 D T inP rp numerator 424 q mi q pi m3 a pi p m3 1 3
25. escribed in VOV901 A 71 Vector integrals Two point function The vector two point function Bip f d Q Q m2 Q p m3 is calculated in subroutine ffxb1 cb1 cb0 ca0i xp xm1 xm2 ier integer ier DOUBLE PRECISION xp xm1 xm2 COMPLEX cb1 cb0 ca0i 2 48 APPENDIX A THE ORIGINAL FF MANUAL The input parameters are cb0 By the scalar two point function ca0i i Ag m2 the scalar one point functions and the rest as in xb0 This function must will be improved Three point function The subroutine for the evaluation of the vector three point function Cipi Ci2ph f d Q Q mi Q pi m3 Q p mj is subroutine ffxc1 cc1i ccO cb0i xpi piDpj del2 ier integer ier DOUBLE PRECISION xpi 6 piDpj 6 6 de12 COMPLEX cc1i 2 cc0 cb0i 3 The required input parameters are cc0 Co the scalar three point function cb0i i the two point functions with m missing cb0i 1 Bo p m3 Further xpi are the masses as in ffxc0 and piDpj del2 the dotproducts and kinematical determinant as saved by fxc0 when 1dot is TRUE Four point function The calling sequence for the vector four point function cd1i which returns Di D Di the coefficients of p p and p is subroutine ffxdi cdii cd0 ccOi xpi piDpj del3 del2i ier integer ier DOUBLE PRECISION xpi 13 piDp 10 10 de13 de12i 4 COMPLEX cd1i 3 cd0 cc0i 4 The input parameters are as follows cd0 Dp is the scal
26. et a summary of errors 28 CHAPTER 1 LOOPTOOLS In C an elementary program would be include lt iostream gt include clooptools h int main ltini cout lt lt BO 1000 50 80 lt lt endl ltexi In the following the same example as for the Fortran case is given the bosonic part of the Higgs self energy in the electroweak Standard Model This code is given in C syntax though it compiles also with C thanks to the Complex data type a true C aficionado would eschew the use of stdio however include lt stdio h gt include clooptools h define MH2 100 100 define MZ2 91 188 91 188 define MW2 80 4 80 4 define Alfa 1 137 0359895 define pi 3 14159265358979 define SW2 1 MW2 MZ2 static Complex SigmaH double k2 1 return Alfa 32 pi SW2 MW2 3xMH2xAO MH2 9 MH2 MH2 BO k2 MH2 MH2 2 MH2 MH2 4 MW2 k2 3 MW2 BO k2 MW2 MW2 2 6 MW2 MH2 A0 MW2 24 MW2 MW2 MH2 MH2 4xMZ2x k2 3 MZ2 BO k2 MZ2 MZ2 6 MZ2 MH2 AO MZ2 12 MZ2 MZ2 int main Real s 1 6 USING LOOPTOOLS WITH MATHEMATICA 29 ltini for s 100 s lt 1000 s 50 Complex sig SigmaH s printf gWt g tgiWn s Re sig Im sig ltexi 1 6 Using LoopTools with Mathematica Modify your path to include LoopTools HOSTTYPE bin e g in tcsh use set path path HOME LoopTools HOSTTYPE bin It is probably a good idea to include this stat
27. etdebugkey 20 setdebugrange 20 setdelta 25 seterrdigits 22 setlambda 25 setmaxdev 20 setminmass 25 setmudin 25 setting the path 29 setversionkey 20 setwarndigits 21 summary of errors 25 tensor coefficients 8 tensor functions 16 tensor structure 8 UV regularization parameters 22 warning messages 21
28. hosen directly in the code If the requested four point function is infra red divergent i e one internal mass 0 and the adjoining lines on shell the terms log A with A the regulator mass are replaced by log 0 In all other terms the limit A 0 is taken The numerical value of delta 6 should be placed in a common block ffcut Due to problems in the transformation at this moment at most one propagator can have zero mass 46 APPENDIX A THE ORIGINAL FF MANUAL Comments The maximum loss of precision without warning is xloss There may be problems with diagrams with masses and or momenta squared exactly zero If you get a division by zero or the like try with a small non zero mass The following diagrams are known not give an accurate answer a Again any configuration with an external momentum very close to threshold b yy y for s lt m A 6 5 Five point function Calling sequence The five point function ce0 Eo m p pi Pi 1 1 1 5 and the five four point functions which one obtains by removing one internal leg are calculated in the subrou tine subroutine ffxe0 ce0 cd0i xpi ier integer ier DOUBLE COMPLEX ce0 cd0i 5 DOUBLE PRECISION xpi 20 The array xpi should contain the internal masses squared in positions 1 5 the external momenta squared in 6 10 and the sum of two adjacent external momenta squared in 11 15 the analogons of s and t in the four point function Positions 16 20 should cont
29. in call setdebugrange t Fortran setdebugrange f t C C SetDebugRangeLf t Mathematica export LTRANGE f t bash setenv LTRANGE f t tcsh This makes it easy to monitor suspicious integrals 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 21 1 3 11 On Warning Messages and Checking Results Computing reliable numeric values for the one loop integrals is a highly non trivial task because of possible cancellations and requires to take into account many special cases to achieve a reasonable accuracy also in problematic corners of phase space Such regions are typically thresholds and high energies LoopTools is built on the FF library which tries very hard to produce correct values Nevertheless it is essential to have means of cross checking the results particularly if such tell tale signs of numerical problems as unsmoothness of a curve e g unexpected bumps or peaks in the cross section are observable FF has a built in warning system that checks for critical loss of accuracy Unfortunately the warnings issued by FF concerning the loss of accuracy are somewhat overzealous and particularly for a large number of consecutive calls to FF e g when computing a cross section over a sizeable region of phase space can add up to ridiculous numbers e g lost a factor 10 Unless a very detailed checking of these warnings is performed they are pretty useless and tend to numb the user to a degree where severe errors are
30. ing facilities which also need some assistance from the user A list of the available routines for the scalar n point functions section A 6 and determinants section A 8 is given listing parameters loss of precision and comments A 2 Brief description of the scalar loop routines This section will give an overview of the structure of the scalar loop routines which implement the algorithms of vOV90 The purpose of this is to provide a map for the adventurous person who wants to understand what is going on Some details of the algorithms chosen are also given A 2 1 Overview The language chosen is Fortran mainly because so much of the calculations are done with complex variables There are currently about 26000 lines of code Some of it is repetitious as many routines exist in a real and complex version which hardly differ Global names subprograms common blocks almost all start with the letters FF for FormFactor the only exceptions are the functions dfflo1 zfflo1 zfflog and zxfflg For this reason I refer to the set as the FF package The third letter of the name often indicates whether a routine is complex z or c or real The real four point function is A 2 BRIEF DESCRIPTION OF THE SCALAR LOOP ROUTINES 33 thus calculated with the routine ffxd0 the complex dilogarithm in ffz1i2 All common blocks are included via a single include file which also defines some constants such as one and 7 in the precision currently used I h
31. ions Its use is taken care of by the system Next there is the possibility to save the array of dotproducts used by the three and four point function These arrays are used by the tensor integrals Finally there is the possibility to to turn off all warning reporting by setting lwarn to FALSE Do not do this until you are completely satisfied that there are no problems left It will also invalidate the value of ier so you will have no warning whatsoever if something goes horribly wrong A 6 SCALAR N POINT FUNCTIONS 41 It may be advantageous to change the flags to parameters and recompile for extra speed and smaller size Approximately half the code of the package is for debugging purposes A 54 Summary The following sequence has been found to be very convenient a Make sure that the system can find fferr dat and ffwarn dat and that the routine ffini is called b Do a pilot run with 1test on to check for internal problems within the FF routines One can also look for the best permutation of the input parameters at this stage Please report anything irregular c Run a full Monte Carlo with 1test off but lwarn still on to check for numerical problems d Only if there are no numerical problems left you can turn off lwarn to gain the last percents in speed A 6 Scalar n point functions In general there are two routines for almost every task one for the case that all parame ters are real and one to use if one or more are co
32. ions for tensor integrals is calculated by subroutine ffdl3q dl3q piDpj i i i2 13 j1 j2 j3 isni isn2 isn3 jsn1 jsn2 jsn3 ier integer i1 i2 i3 j1 j2 j3 isn1 isn2 isn3 jsn1 jsn2 jsn3 ier DOUBLE PRECISION d13q piDpj 10 10 Now the only assumptions that are made are that p jsn p isn p if j is unequal to zero This routine should still be extended A 8 DETERMINANTS 51 A 8 3 4 x 4 determinants To calculate the 4 x 4 determinant d14p p p2p 2p 2 given the dotproducts piDpj one can use subroutine ffdl4p dl4p piDpj ns ii ier integer ns ii 10 ier DOUBLE PRECISION dl4p piDpj ns ns The array ii j gives the position of the vectors of the determinant has to be calculated in this array We assume that pis Pa Pii 2 Puta P n 5 Pii n with all vectors incoming again References dACTP98 E del Aguila A Culatti R Mu oz Tapia and M Perez Victoria Nucl Phys B537 1999 561 hep ph 9806451 De93 A Denner Fortschr Phys 41 1993 307 arXiv 0709 1075 HaP98 T Hahn and M Perez Victoria Comput Phys Commun 118 1999 153 hep ph 9807565 PaV79 G Passarino and M Veltman Nucl Phys B160 1979 151 tHV79 G t Hooft and M Veltman Nucl Phys B153 1979 365 vdH90 M van der Horst Ph D thesis Universiteit van Amsterdam 1990 vOV90 G J van Oldenborgh J A M Vermaseren Z Phys C46 1990 425 KLN T Kinoshita J
33. mplex Infra red divergent diagrams are calculated with a user defined cutoff on the divergent logarithms Planned extensions are e the derivative of BO e fast special cases e six point functions Please note that there is also an entry point npoin which returns the scalar integrals plus the supported tensor integrals in a form compatible with FormF The number of digits lost cannot be included this way however It is provided on request to allow old code which used FormF to run without a CDC 42 APPENDIX A THE ORIGINAL FF MANUAL A 6 1 One point function The one point function Ao m gt f a Q Q m is calculated with the subroutines subroutine ffca0 ca0 d0 xmm cm ier integer ier DOUBLE COMPLEX ca0 cm DOUBLE PRECISION d0 xmm subroutine ffxa0 ca0 d0 xmm xm ier integer ier DOUBLE COMPLEX ca0 DOUBLE PRECISION d0 xmm xm with d0 A 2 e y log 47 the infinity from the renormalisation scheme and the mass xmm 1 arbitrary The final result should not depend on it xm m is the internal mass squared This is of course a trivial function A 6 2 Two point function Calling sequence The two point function cb0 Bo m mf k is calculated in the subroutines subroutine ffcb0 cb0 d0 xmu ck cma cmb ier integer ier DOUBLE COMPLEX cb0 ck cma cmb DOUBLE PRECISION xmu d0 subroutine ffxb0 cb0 d0 xmu xk xma xmb ier integer ier DOUBLE COMPLEX cbO DOUBLE PRECISION d0 xmu xk xma
34. mudim u getmudim setlambda A A getlambda setminmass m m getminmass SetDelta A A GetDelta Mathematica SetMudim y7 u GetMudim SetLambda 7 A GetLambdall SetMinMass mj m GetMinMass export LTDELTA A bash export LTMUDIM u export LTLAMBDA export LTMINMASS m2 min 1 4 USING LOOPTOOLS WITH FORTRAN 25 setenv LTDELTA A tcsh setenv LTMUDIM setenv LTLAMBDA A setenv LTMINMASS m min 1 4 Using LoopTools with Fortran Some technical details concerning compilation e Specify the location of LoopTools once in an environment variable this saves a lot of typing later on For example in the tcsh use setenv LT HOME LoopTools HOSTTYPE When compiling a program that uses LoopTools use I LT include source files L LT lib looptools on the 77 command line As Unix linker are one pass linkers the library flags L 1 must come after the Fortran or object files on the command line In a makefile you have to use parentheses around the environment variables i e LT instead of LT e Fortran files that use LoopTools must have the extension F not f This tells the Fortran compiler that the files need to be run through the C preprocessor first If you are using an older Fortran compiler which does not recognize the F exten sion use the script F77 in the LT bin subdirectory instead of the normal f77 To use the LoopTools functions in a
35. n tested against FormF over all parameter space the Co for some 100 physical configurations and the Do for about 30 The Eo is as yet untested except for internal consistency The only differences were in very low t channel configurations and I have reason to distrust FormF The limit is not approached smoothly and very ex treme kinematical configurations such as those occurring in the ZEUS luminosity mon itor vdH90 often give a DMPX FF approaches the theoretically correct limit smoothly Installation In this section the installation of the FF routines on a computer is discussed We will first discuss the problems which may be caused by the Fortran used Next the use of data files is discussed The routines have been written in standard ANSI Fortran 77 with a few exten sions which most compilers allow The package compiles without changes on the Gould Encore fort Apollo SR10 ftn Meiko mf77 and VAX fortran g float Changes are necessary for the Apollo SR9 ftn Sun 77 CDC ftn5 Atari ST Ab soft and possibly other compilers The extensions used are e the use of tabs e the use of lower case letters e the use of implicit none 36 APPENDIX A THE ORIGINAL FF MANUAL e the use of the include directive to include the file ff h which contains parameters and common blocks used throughout the package e the use of DOUBLE COMPLEX data type In principle FF can also run in single pre cision but the l
36. ng with the same value of the event counter nevent are remembered This queue is printed when ffwarn is called with error number 998 The reason for this is simply that I do not like hundreds of meaningless warnings to clutter the important ones in a big Monte Carlo I therefore include a line like if ier gt 10 call ffvarn 998 ier x0 x0 at the end of the calculation of one event causing the system to report only those errors which led to a fatal loss of precision The warning messages produced are similar to an error message id nr 41 4 event nr 2265 warning nr 138 ffdl3p warning cancellations in Mdelta 1 lost 1 digits The number of digits lost gives the number of digits vvhich have become unreliable in the answer due to this step over the normal loss of zloss Another special error number is 999 this causes a list of all vvarnings vvhich have oc curred up to that point to be printed out plus the maximum loss suffered at that point The routine ffexi uses this There is one vvarning message vvhich does not increase ier the remark that there are cancellations among the input parameters This is the responsibility of the user Most 40 APPENDIX A THE ORIGINAL FF MANUAL routines have an alternative entry point vvith the differences of the parameters required as input The user can edit the routines ffvarnand fferr in thefile ffini to customize the error and vvarning reporting A 5 3 Debugging possibilities
37. nings encountered Finally on systems on which error trapping is possible it may be advantageous to use a call call qsetrec ffrcvr This forwards any floating point errors to the error reporting system The routine qse trec is available in the CERN library for VAX VMS one has to add the non standard READONLY to the open statement 38 APPENDIX A THE ORIGINAL FF MANUAL A 5 The error reporting system A 5 1 Overview One of the goals of this package was to give reliable answers For this purpose a rather elaborate error reporting system has been built in First there are a few flags which govern the level of internal checking Secondly a count of the number of digits lost in numerical cancellations above some acceptable number this number is defined for each function in section A 6 is default returned with any result This count is quite conservative Do not forget the few digits normal everyday loss on top of the reported losses however the acceptable loss Finally a message can be given to the user where the error or warning occurred For this to be useful the user has to update some variables A 5 2 Using the system Errors A distinction is made between errors and warnings An error is an internal inconsis tency or a floating point error if trapped If an error occurs a message is printed on standard output like this the output is truncated to fit on the page id nr 41 7 event nr 16 error nr 32 nffeta e
38. nt function A specific coefficient is selected with the first argument denoted id in the following For example COi cc0 24 2 Col COi cc00 Cool a COi cc112 pas Cis a etc The indices are symmetric and therefore the identifiers are assumed to be ordered i e there is only cc122 but not cc212 Internally what happens when an N0i is called is that actually all N point coefficients for the given set of momenta and masses are calculated This is because there are a lot of intermediate results which would have to be recalculated every time the function is 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 17 called for a different coefficient These coefficients are then of course stored so that re peated calls to N0i with the same set of arguments will simply retrieve the value from memory So in a very real sense the identifiers cc0 cc001 etc can be thought of as array indices in fact they are just integer constants to the compiler In an unoptimized pro gram the savings incurred by this mechanism can be sizeable typically 90 of integrals requested can be retrieved from cache The N get functions Bget Cget etc compute all N point coefficients together Their use is slightly more involved one needs to keep track of an extra index but results in faster code since only one cache lookup is needed and not one for every coefficient The Nput subroutines Bput Cput etc have the same functionality as
39. o compile the package a Fortran 77 compiler and the GNU C compiler gcc are re quired LoopTools comes in a compressed tar archive LoopTools 2 7 tar gz Execute the fol lowing commands to unpack and compile the package gunzip c LoopTools 2 7 tar gz tar xvf cd LoopTools 2 7 configure make make install make clean The configure script finds out the necessary system information for the compilation make then makes the following objects in the LoopTools hosttype directory lib libooptools a the LoopTools library include looptools h the include file for Fortran include clooptools h the include file for C C bin 1t the LoopTools command line executable bin fcc a script to aid C C compilation bin LoopTools the MathLink executable Use make 1ib to build only the library part without the MathLink executable 5 6 CHAPTER 1 LOOPTOOLS The resulting directory structure is LoopTools the LoopTools directory hosttype directory for the compiled programs and libraries include directory of the include files A directory for the one point functions B directory for the two point functions C directory for the three point functions D directory for the four point functions EZ directory for the five point functions util directory for utility routines tools scripts for compilation The hosttype is a string identifying the system e g 1686 Linux or alpha OSF1 Its pur pose as a directory name is to
40. oduction The evaluation of scalar loop integrals is one of the time consuming parts of radiative correction computations in high energy physics Of course the general solution has long been known tHV79 but the use of these formulae is not straightforward If one encodes the algorithms directly in a numerical language one finds that for most physical configurations the answer is extremely unreliable due to numerical cancellations It is not at all difficult to find examples where more than 80 digits accuracy are lost There are two ways in which these problems have been solved M Veltman has pro grammed these algorithms using a very large precision up to 120 digits for the in termediate results in the program FormF which enabled him to do some very compli cated calculations PaV79 However these routines are written in assembler language and thus only available on certain computers Also the use of multiple precision makes them fairly slow and even so there are many soft t channel configurations for which the answer is incorrect or correct only for one permutation of the input parameters The other solution is to evaluate by hand all special cases needed and make sure that these are numerically stable in this way building a library of physically interesting cases This costs much time and has to be extended for every new calculation as often the limits taken are no longer valid We present here a set of Fortran routines that eval
41. or the Momenta 9 1 3 Functions provided by LoopTools 11 1 3 1 One point function y sta ala ales m aa AS a aber 11 1 3 2 Two point functions 4 1 gt 5 14 24 i S 12 1 53 Derivatives of Two point functions 13 es Three p int f nctio s i s ache ak save seie eo ree k a 14 1 3 5 Four point functions uto a oS d Sta a se tete a A op 15 1 3 6 Five point functions 4 29 E g Se 16 1 3 7 Tensor FUNCHONS e tuor ata ap e ba Saa Tay a eu il 16 Tiss Cache Mechanism qu ya ada dE S a dand ara 17 Loo Wiad ruple Precision wn acetum a S shoe we gx des 18 1 3 10 Versions and Debugging o do e deo mee a era Gees 19 1 3 11 On Warning Messages and Checking Results 21 1 3 12 Ultraviolet Infrared and Collinear Divergences 22 1 4 Using Loopfools with Fortran Eb RES eR 25 1 5 Using LoopTools WC CE eed deed eere eir ee e edi ect een Dens 27 1 6 Using Loop Tools with Mathematica ceu a REOR de 29 A The original FF Manual 31 A1 Introduction o un a V rite Get Ond deco A a sa alas de 31 A 2 Brief description of the scalar loop routines 32 AZI 32 2222 HNES 43 3 34 63 du dob d 7 34 4 A 5 A 6 A 7 A 8 CONTENTS UL TESTS oes ds odd ka to s l m docs io ceto e So oto unes 35 11 01 Otia cies Y sla ales Tin olea a uota lea a uot lea dl 35 Initialization 4 2 54 2 44 abd d a bd a a d
42. oss of 3 5 digits can often not be avoided in the evaluation of an n point function This may leave too little information All these extensions can easily be removed with a good editor The following commands will convert the source to ANSI Fortran The syntax is that of the editor STEDI mark include ff h deleteline read ff h implicit none implicit logical a z DBLE REAL DIMAG AIMAG DCMPLX CMPLX DOUBLE COMPLEX COMPLEX end convert to uppercase ctrl u expand the tabs te Note that all names that have to be converted when switching from single to double precision are in capitals It is possible to run the package in double precision real and single precision complex the error reporting system might underestimate the accuracy in this case To convert to single precision real for instance on a CDC use DOUBLE PRECISION REAL It may be necessary to convert to systems with other names for the double pre cision complex data types and functions e g IBM The double complex functions to be transformed are zfflo1 zfflog and zxfflg They are now declared as DOUBLE COMPLEX function args change this to COMPLEX function 16 args Generic names for the intrinsic functions sqrt log and 10g10 are used everywhere so these need not be changed A 4 INITIALIZATION 37 Note that all subroutines have names starting vvith ff the functions have the ff in the middle of the name It is hoped
43. rror eta is not defined for real The first part of the id must be defined by the user t is given by the variable id in the common block ffflags I tend to use 41 for the first four point function 42 for the second one etc id 41 call ffxd0 cd0 xpil ier id 42 call ffxd0 cd0 xpi2 ier The second part idsub is maintained internally to pinpoint the error The event num ber is assumed to be nevent in the same common block It too has to be incremented by the user The error number is used internally to fetch the message text from the file A 5 THE ERROR REPORTING SYSTEM 39 fferr dat which also includes the name of the routine in which the error occurred If an error has occurred the variable ier is incremented by 100 A call to fferr with the error number 999 causes a list of all errors so far to be printed out and this list to be cleared This is used by ffexit Warnings A warning is a loss of precision because of numerical cancellations Only losses greater than a certain default value are noticed This is controlled by the variable xloss in the common block ffprec which is set to 1 8 by ffini A power of 2 is highly recommended If a loss of precision greater than this tolerable everyday loss occurs the subroutine ffvarn is called The default action is to only increment the variable ier by the number of digits lost over the standard tolerated loss of xloss Nothing is printed but all calls occurri
44. separate the binaries for different platforms To see vvhat its value is on your system type the follovving command at the shell prompt echo uname m uname s In contrast to the original FF library the LoopTools libraries and executables depend on no additional files error message catalogues etc so they may be installed in some public place instead of LoopTools hosttype To this end configure with e g configure prefix usr local whereupon make install will put the libraries include files and executables in usr local lib include and bin respectively Note To write on usr local su peruser privileges are usually required 1 2 ONE LOOP INTEGRALS 7 1 2 One Loop Integrals Consider the follovving general one loop diagram The integral contained in this diagram is urn E E 1 1 pa tone E GD py Te mil q hi m3 a kv my I 1 g T 1 T 1 22 Tr D 4 2e where the momenta K that appear in the denominators are related to the external mo menta p as pi ki k ki mE DN ky ky N 1 2 k pis ko pi po ee ky Y ps 1 The representation given in 1 1 is correct for dimensional regularization or dimen sional reduction In the latter case the integrals are kept D dimensional although the rest of the algebra is performed in 4 dimensions u plays the r le of a renormalization scale that keeps track of the
45. t functions are totally symmetric in their indices For the integrals up to the four point function the decomposition reads explicitly Bicis Bus guy Boo kygEi B11 2 Gu ki Ci ka Co de ki Co i 1 2 Cub GuvCoo 2 kiukjv ij iui 2 Cis y guokis Yvpki uo kas Cooi y kis kj keoCije i 1 1 jL 1 3 Dw gu Doo y Rat gt i j 1 3 3 Duvp Y d s r T Gupk iv Doo y ki kj ki D ijl gt i 1 i j 1 1 2 ONE LOOP INTEGRALS 2 Dar Gus ias ES YupYvo Ed 9uo9vp Dooo0 3 F y Kipkjo Qupkipkjo Iupkivkjo ij l a Guckivk p k Rio dite Dooij y kinkjvkepkmo Dijem i j 0 m 1 Of all scalar and tensor coefficient functions implemented in LoopTools only Ao Bo Bi Boo Bis Boo Biss Boo the C coefficients with at least two indices zero and the D coefficients with at least four indices zero are actually UV divergent 1 2 2 Conventions for the Momenta A large source of mistakes is the way of specifying the momenta in the one loop inte grals The prime error in this respect is the confusion of the external momenta p with the momenta k appearing in the denominators which are the sums of the p see Eq 1 2 Consider for example the following diagram The three point function corresponding to this diagram can be written either in terms of the external momenta as C pi P2 pi p mi mz m3 or in terms of the momenta k as
46. that this naming convention will minimise conflicts with user defined names The author is aware of the possible conflict with the Cern library package ffread but could not think up another key The FF package uses three data files fferr dat ffwarn dat and ffperm5 dat The mechanism for locating these is very simple in the subroutine which reads these files ffopen and ffwarn in the file ffini the variable fullname is defined You will have to fill in here a directory readable by everyone using the routines that contains the datafiles A 4 Initialization VVhen using the FF routines a fevv initialisations have to be performed in the program that calls these routines The common blocks used are all listed in the file ff h If your system does not auto matically save common blocks like Absoft Fortran it is easiest to include this file in the main program Furthermore before any of the subroutines are called a call must be made to ffini to initialise some arrays of Taylor series coefficients This routine also tries to establish the machine precision and range causing two underflows If this is a problem e g with Gould dbx edit this routine to a hardwired range Finally it sets up reasonable defaults for the tracing flags these are listed in A 5 3 This call is made automatically if one uses the npoin entry point A call to ffexi will check the integrity of these arrays and give a summary of the errors and war
47. the Nget functions but allow the user control over the storage location i e the first argument is a complex array of dimension Nbb Ncc into which the coefficients are stored This is important e g for parallel execution 1 3 8 Cache Mechanism The cache functionality of LoopTools has already been alluded to above and for small calculations the cache is just transparent to the user In large calculations however it is worthwhile to flush the cache at strategic places to reduce lookup times and avoid memory overflows For example when computing a cross section in a loop over the energy it makes sense to flush the cache every time one moves to another energy Most loop integrals depend on the energy and the few that don t are not very time consuming to compute so chances are slim that any of the cache integrals can be recycled Cache memory is actually never really freed but only marked as overwritable This is because in a setup like above every turn of the loop computes exactly the same number of integrals so freeing and re allocating the memory would just produce additional overhead There are two ways to clear the cache To completely remove all integrals from the cache execute call clearcache Fortran clearcache C C ClearCache Mathematica 18 CHAPTER 1 LOOPTOOLS Alternately the current cache pointers can be stored using call markcache Fortran markcache C C MarkCache Mathema
48. tica and restored at a later point using call restorecache Fortran restorecache C C RestoreCache Mathematica One can for example do the energy independent integrals first mark the cache and restore it after every turn of the loop over the energy Another issue concerns the depth of the comparison when looking up cache entries Floating point variables should in general never be compared verbatim i e one should always convert a eq b into abs a b 1t e because one does not want the compari son to fail due to numerical noise For technical reasons the cache lookup precision is specified through the number of bits rather than an e in LoopTools call setcmpbits b b getcmpbits Fortran setcmpbits b b getcmpbits C C SetCmpBits b b GetCmpBits Mathematica export LTCMPBITS b bash setenv LTCMPBITS b tcsh The defaults are 62 for double precision a double precision number has 64 bits of which 52 are the mantissa and 64 for quadruple precision a quadruple precision number has 128 bits of which 112 are the mantissa 1 3 9 Quadruple Precision For most calculations double precision is quite sufficient to yield satisfyingly accurate results In some cases however cancellations between diagrams can cause double digit loss of precision Since the mantissa of a double precision number has only about 15 decimal digits the result may thus be correct only to very few digits 1 3 FUNCT
49. uate the one loop scalar integrals using a standard precision The algorithms used have been published before VOV90 This paper describes version 1 0 which contains the following units e the scalar one two three four and five point functions defined by EN d Xo im cs m2 Q P m2 A 1 e the vector three and four point functions some determinants Planned additions are The other Form factors a la FormF 31 32 APPENDIX A THE ORIGINAL FF MANUAL e The six point function Note hovvever that the reduction of these can be done analytically The aim of the routines is to provide a reliable ansvver for any conceivable physical combination of input parameters This has not been fully met in the case of the four point function but an impressive list of cases does indeed vvork Problems normally occur when many parameters are almost equal i e when an analytical calculation is most feasible The layout of this paper is as follows First we give a brief description of the design of the package and some details that may be of of relevance to the user like timings Next we give a complete user s guide The problems which might be encountered when installing FF on a computer system are discussed in section A 3 The initialisation of the routines which has to be done by the user in the program which uses the FF routines is outlined in section A 4 The next section is about the use of the error report
50. value Putting A 2 reproduces the one loop functions of constrained differential renormalization as published in AACTP98 A is actually a redundant parameter since yy can be adjusted to have the same effect uzu A UV finite result must not depend on either A or u It is hence straightforward to check UV finiteness numerically calculate the expression with two different values for A or yu or both and check whether the result stays the same within numerical preci sion Note that y enters logarithmically this means that to decisively check whether an expression is really independent of ju it must be varied on a large scale e g from 1 to 1019 Infrared divergences appear in processes with charged external particles They orig inate from the exchange of virtual photons More precisely they come from diagrams containing structures of the form Such diagrams are IR divergent because the photon is massless if the photon had a mass A the divergent terms would be proportional to log A NB such a photon mass should 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 23 not be introduced by hand if a requested integral is IR divergent LoopTools automatically substitutes regularization parameters see below In QCD calculations the custom is rather to regularize the IR divergences dimension ally in which case they show up as poles in 1 and 1 2 e For A gt 0 photon mass regularization is used with a photon mass A where
51. xmb with dO and xmm as in the one point function xk k in Bjorken and Drell metric and xma b m are the internal masses squared A 6 SCALAR N POINT FUNCTIONS 43 Comments The maximum loss of precision without warning in the scalar two point function is xloss in the basic calculation plus xloss when adding the renormalisation terms Numerical instabilities only occur very close to threshold k m m The func tion can run into underflow problems if both m m l lt ma and k lt m2 Note that this function uses Pauli metric internally A 6 3 Three point function Calling sequence The three point function 0 Co mi m2 m3 pi p3 p is calculated in the subroutines subroutine ffccO ccO cpi ier integer ier DOUBLE COMPLEX ccO cpi 6 subroutine ffxcO ccO xpi ier integer ier DOUBLE COMPLEX ccO DOUBLE PRECISION xpi 6 The array xpi should contain the internal masses squared in positions 1 3 and the external momenta squared in 4 6 The momentum xpi 4 pi is the one between xpi 1 mi and xpi 2 m3 and so on cyclically The routine rotates the diagram to the best position so only the swap m m pi p can be used to test the accuracy There is an alternative entry point which can be used if there are significant cancellations among the input parameters subroutine ffxcOa ccO xpi dpipi ier integer ier DOUBLE COMPLEX ccO DOUBLE PRECISION xpi 6 dpipj 6 6

Download Pdf Manuals

image

Related Search

Related Contents

Beyma SD-35 car speaker  DeLOCK DisplayPort Mini M/FM  報道関係者各位 - Mars Flag  Instruções de instalação, operação e manutenção    User Manual - AdvanceTec™ Industries Inc.  PCI Express Board User`s Manual  SH-1L  Samsung SR10J5035UC Brugervejledning (Windows 7)  DSC-H9  

Copyright © All rights reserved.
Failed to retrieve file