Home
LoopTools 2.7 User's Guide
Contents
1. Di pa m pi t pad pa m 14 1 3 6 Five point functions Function call a real E0i id a E0iC id a Eget a EgetC a special case EO a EOC a CHAPTER 1 LOOPTOOLS compie five point tensor coefficient id all four point tensor coefficients scalar five point function a pi D gt pa Pa Pi Pa pa ps pa Pa pa Ds ps pr p2 ptm inP 2 rp 2 2 2 2 2 TI Mg M3 My Ms J numerator d q a mi a p a p pa 1 q p po 2 ma 2 M3 a F p pa 1 3 7 Tensor Functions The NOi functions BOi COi etc are generic functions for all tensor coefficients of the respective N point function A specific coefficient is selected with the first argument denoted id in the following For example COT edd Col COi cc00 m Cool C0i ccli2 a Cial 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 called for a different coefficient These coefficients are then of course stored so that re peated calls to NOi with the same set of
2. LoopTools offers three interfaces Fortran C C and Mathematica so most programming tastes should be served 1 1 Installation To 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 lt the LoopTools command line executable bin fcc a script to aid C C compilation bin LoopTools the MathLink executable Use make lib 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 E directory for the five point functions util directory for utility routines tools scripts for co
3. b mostly Denner is used and whether checking is performed This is determined by the version key O key compute version a 1 key compute version b 2 key compute both compare return a 3 key compute both compare return b Usage is as in call setversionkey k k getversionkey Fortran setversionkey k k getversionkey C C 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 KeyA0 KeyBget KeyC0 KeyDO KeyEget KeyEgetC KeyA11 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 18 CHAPTER 1 LOOPTOOLS call setmaxdev e 7 getmaxdev Fortran setmaxdev getmaxdev C C SetMaxDev Le e GetMaxDev Mathematica export LTMAXDEV 8 bash setenv LTMAXDEV e tcsh Debugging output can be turned on likewise with e g call setdebugkey k k getdebugkey Fortran setdebugkey k k getdebugkeyO C C SetDebugKey k k GetDebugKey Mathematica export LTDEBUG k bash setenv LTDEBUG k tesh where k is e g of the form DebugC DebugD Identifiers range f
4. 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 Alternately the current cache pointers can be stored using call markcache Fortran markcache C C MarkCache Mathematica and restored at a later point using 16 CHAPTER 1 LOOPTOOLS 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 preci
5. arguments will simply retrieve the value from 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 15 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 V 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 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
6. calculated in this array We assume that puq paa pa P Pis Dua Pua and D 6 P Dia With all vectors incoming The 3 x 3 determinant d13q piis m which occurs in expressions for tensor integrals is calculated by subroutine ffd13q d13q piDpj ii i2 13 j1 j2 j3 t isn1 isn2 isn3 jsn1 jsn2 jsn3 ier integer 11 12 13 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 pi ismnpi if j is unequal to zero This routine should still be extended 48 APPENDIX A THE ORIGINAL FF MANUAL A 8 3 4 x 4 determinants To calculate the 4 x 4 determinant d14p 6p p 2p 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 Pi 1 Pii 2 P 3 P 4 D n 5 Pii n H D n11 with all vectors incoming again References dACTP98 E del Aguila A Culatti R Mu oz Tapia and M P rez 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 P rez Victoria Comput Phys Commun 118 1999 153 hep ph 9807565 PaV79 G Passarino and M Veltman Nucl Phys B160 1979 151 tHV79 G t H
7. elsewhere The following routines allow to set and retrieve the regularization parameters Note that y A and Mmin always enter squared call setdelta A A getdelta Fortran call setmudim 7 u getmudim call setlambda A A getlambda call setminmass m m getminmass setdelta A A getdeltaO C C setmudim j u getmudim setlambda A A getlambda setminmass m m2 getminmass SetDelta A A GetDelta Mathematica SetMudim pi u GetMudim SetLambda j A GetLambda SetMinMass m2 m2 GetMinMass export LTDELTA A bash export LTMUDIM export LTLAMBDA A export LTMINMASS mf setenv LTDELTA A tcsh setenv LTMUDIM u setenv LTLAMBDA A setenv LTMINMASS m min 1 4 USING LOOPTOOLS WITH FORTRAN 23 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
8. 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 chosen 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 gt 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 A 6 SCALAR N POINT FUNCTIONS 43 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 t
9. momenta k which are the sums of the external momenta p see Eq 1 2 De93 In this basis the tensor coefficient functions are totally symmetric in their indices For the integrals up to the four point function the decomposition reads explicitly Bye By Juv Poo a ky ky By gt 2 C kiuC1 kop Co Ei gt i 1 2 C av d Juv C o0 L KE Co gt i j 1 2 2 C y Guskip Oaks Gupk iv Coo y ki kj ke C ijl i 1 1 L 1 3 Dw E gu Doo T y Euh gt i j 1 3 3 Duvp y g9uvkip a volu sp Gupk iv Doo y KipkjvkepD ijl gt i 1 i j 0 1 1 2 ONE LOOP INTEGRALS 9 Dis des a 9up9vo x Guo 9vp Doooo 3 y Guvkipkie Jvpkiukjo IupKivkjo ij 1 JuoKivkjp dolia Dass Dooij s y kipkjvkepkmo Dijem G i j m 1 Of all scalar and tensor coefficient functions implemented in LoopTools only Ao Bo Bi Boo Bit 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
10. toy toy Diode A bog S Cp CE ceps e d Ur coo 32 Installation CREER TEE A T TT A E a Aa e 32 Mtz atorado EU EU UP EM A EO Viet doe diete 34 The error reporting system al koe Ne te e UR EE HEURE Ras 35 AST Overview A PP m 35 dur Using thesystemn uus eee ew Bd penne 3o His side 309 ads 35 A 5 3 Debugging possibilities dato dg beg ed AG 37 ASA UAM aca saa a a A a QUALA UR I CEDE OE AAA 38 Scalar n point functions NR E da Ar A a 38 AL One point MUNCHON s setae des des ddp Oe gne p tes edes 39 5 2 TWO DOMME functo 5a 3 um eine ae oder a d Bei ds 39 A 6 3 Three point function said aa abeto a aetie abeto we Ba 40 A 6 4 Pour pont function utor a a a Bde gS Rer Aon 41 A 6 5 Five point function dodo x des dt e 43 dehb5or I0testals cce reos er rat redet rede ei ode it dd 44 Aog l Vector testa Ss Aeon Ee A doen agere a AAA 44 Determunalts podia Zab ntt AE er A ios Ao Anu Sat dne Se Mr ge veio i 45 ASL 22 909 determinants og mw p e ee e e es 46 2 04 3 x 3 determinants uo RE RR RUE ak a ek eM 47 A 83 4x 4determinants a 48 1 Looplools 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
11. 0 d0 xmu ck cma cmb ier integer ier DOUBLE COMPLEX cbO ck cma cmb DOUBLE PRECISION xmu dO subroutine ffxb0 cb0 d0 xmu xk xma xmb ier integer ier DOUBLE COMPLEX cbO DOUBLE PRECISION d0 xmu xk xma xmb with d0 and xmm as in the one point function xk k in Bjorken and Drell metric and xma b m are the internal masses squared 40 APPENDIX A THE ORIGINAL FF MANUAL 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 my lt lt m and K lt lt m Note that this function uses Pauli metric internally A 6 3 Three point function Calling sequence The three point function cc0 Co m m3 m3 pi p2 p3 is calculated in the subroutines subroutine ffccO ccO cpi ier integer ier DOUBLE COMPLEX cc0 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 p p can be used to test the accuracy There is an
12. 30 APPENDIX A THE ORIGINAL FF MANUAL thus calculated with the routine ff xd0 the complex dilogarithm in f z1i2 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 have 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 ffxq0 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 7 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
13. 7x I Vv 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 Introduction 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 case
14. Complex sig SigmaH s printf AgNtAgA giNn 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 statement e g in cshrc 1 6 USING LOOPTOOLS WITH MATHEMATICA 27 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 2 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 cc0 gt 0 0003683322958259527 0 00144304878124425x 1 cci gt 0 00003691991146686607 0 0008063637675463306 I cc2 gt 0 0002186870966525929 0 0003255577507551812 I ccOO0 gt 1 468122864600498 0 6620214671984382 I cc11 gt 0 0001383963649940767 0 0005211388919006447 I cc12 gt 0 00005607420875500784 0 0001466442566605745 I cc22 0 0001038232033882128 0 0001572866825209231 I cc001 0 4339544374355454 0 1905346035793642 I cc002 0 5179247985708856 0 2390535391455292 I cc111 0 0001637407816195954 0 0003561351446381443 I cc112 gt 0 00001499429891688691 0 00008510756809075344 I cc122 gt 0 00002351641063613291 0 00005055502592614985 I cc222 gt 0 00005956786867352272 0 00010196296953909
15. LATION 33 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 loss 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 DBLEC 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 f
16. LoopTools 2 7 User s Guide March 7 2012 Thomas Hahn The dreadful legal stuff LoopTools is free software but is not in the public domain Instead itis 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 wrote this software If you use it in a program you must acknowledge somewhere in your publication that you ve used our code If you re a lawyer you will rejoice at the exact wording of the license at http www fsf org copyleft lgpl html LoopTools is available from http www feynarts de looptools FormCalc is available from http www feynarts de formcalc FeynArts is available from http www feynarts de FF is available from ftp ftp nikhef nl pub ff FF html If you make this software available to others please provide them with this manual too There exists a mailing list where updates will be announced To subscribe to this list send a mail any text to hahn looptools subscribe particle uni karlsruhe de If you find any bugs or want to make suggestions or just write fan mail address it to Thomas Hahn Max Planck Institut f r Physik Werner Heisenberg Institut Fohringer Ring 6 D 80805 Munich Germany e mail hahn feynarts de Contents 1 LoopTools 5 LX Installati n uana uS phe ad
17. 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 77 To use the LoopTools functions in a Fortran program the file looptools 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 tinclude looptools h call ltini print BO 1000D0 50DO 80D0 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 24 CHAPTER 1 LOOPTOOLS 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 tinclude looptools h double precision s double complex S
18. ON 17 LTWARN 19 Mathematica 26 momenta conventions for 7 9 MS 20 renormalization scale 7 reset heap 15 setcmpbits 16 setdebugkey 18 setdebugrange 18 setdelta 22 seterrdigits 19 setlambda 22 setmaxdev 18 51 setminmass 22 setmudim 22 setting the path 26 setversionkey 17 setwarndigits 19 summary of errors 23 tensor coefficients 8 tensor functions 14 tensor structure 8 UV regularization parameters 20 warning messages 19
19. OPTOOLS 13 3 Derivatives of Two point functions Function call a real a complex BOi id a BOiC id a two point tensor coefficient id Bget a BgetC a all two point tensor coefficients special cases 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 DBOO1 a DBOO1C a derivative of B001 DB111 a DB111C a derivative of B111 a pmi mi as above All derivatives are with respect to the momentum squared Note that the BOi and Bget coefficients include the derivatives so there is no DBOi or DBget 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 13 13 4 Three point functions Function call a real a complex COi id a COiC id a three point tensor coefficient id Cget a CgetC a all three point tensor coefficients special case CO a COC a scalar three point function 0M 522 2 2 2 2 a pt pa P p M4 Mg M3 P mape uP J numerator dq 2 L D Sp 99 Fu 00 4 yx inr Jm a p nij a px p3 mi 13 5 Four point functions Function call a real a complex DOi id a DOiC id a four point tensor coefficient id Dget a DgetC a all four point tensor coefficients special case DO a DOC a scalar four point function a pi pos P3 P P1 p2 Da Pa m m5 m5 mi P p2 ma ue numerator dPq m3 inP 2 rp a iu m a m m
20. THE ORIGINAL FF MANUAL machine NP1 0 2 ms 4 5 ms 13 ms 65 ms Sun4 0 9 ms 8 1 ms 20 ms 90 ms Apollo 10020 0 08 ms 1 5 ms 49 ms 24 ms Atari ST 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 been 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 A 3 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 A 3 INSTAL
21. ally 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 2 and 1 e e For 1 gt 0 photon mass regularization is used with a photon mass A where A is treated as an infinitesimal quantity however which means that terms of order A or higher are discarded i e only the log A terms are kept 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 21 Since the final result should not depend on A 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 10 to decisively check IR finiteness e In dimensional regularization A 2 returns the coefficient of amp M 1 the coefficient of and A 0 indeed all other non positive values the finite piece In this case testing IR finiteness numerically proceeds through checking the coef Ll amp coefficients which have to add up to zero in observable quan ficients of tities This can be done particularly conveniently through the LTLAMBDA environ ment variable see below such that no recompilation of the pr
22. alternative entry point which can be used if there are significant cancellations among the input parameters subroutine ffxcOa ccO xpi dpipj ier integer ier DOUBLE COMPLEX ccO DOUBLE PRECISION xpi 6 dpipj 6 6 All differences between the input parameters should be given in the array dpipj i j xpi i xpi j A 6 SCALAR N POINT FUNCTIONS 41 In the testing stages one can use subroutine ffccOr ccO cpi ier integer ier DOUBLE COMPLEX cc0 cpi 6 subroutine ffxcOr ccO 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 9 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 xloss Numerical instabilities again occur very close to thresholds p mj mj 1 There are discrepancies with FormF for t channel diagrams in case t 0 but there a
23. e 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 described in VOV90 A 7 1 Vector integrals Two point function The vector two point function Byp f d Q Q mi Q p m3 is calculated in subroutine ffxb1 cb1 cb0 ca0i xp xm1 xm2 ier integer ier DOUBLE PRECISION xp xm xm2 COMPLEX cb1 cb0 ca0i 2 A 8 DETERMINANTS 45 The input parameters are cb0 By the scalar two point function ca0i i Ao 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 Cipt Ci2ph S d Q Q mi Q pi m3 Q pi pa m3 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 pi m3 m3 Further xpi are the masses as in ffxc0 and piDpj del2 the dotproducts and kinematical determinant as saved by ffxc0 when 1dot is TRUE Four point function The calling sequence for the vector four point function cd1i which returns Di Di2 D13 the coefficients of p ps and p is subrout
24. e 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 reporting 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
25. e it DR OD E PLAT RE ge AAR RN 5 1 2 One Loop Integrals 4 2 gaa angst ESE AAA Poss 7 1 2 1 Tensor Coefficients 12 3 9 3 eh 9 ERE 8 1 22 Conventions forthe Momenta 9 1 3 Functions provided by LoopTools 4 2 ds br wake hc e em e 11 1 3 1 One point function and 958 0o edo Ore ees 11 1 3 2 Two point functions 2 pes doe YU Eb dC RES EU es 11 1 3 3 Derivatives of Two point functions less 12 1 3 4 Three point functions heads o eight edo die on edi t a 13 1 30 Fourpoint F UDclOBs Aa Trl a Dl age ert ots 13 1 3 6 Five point functions posee YE Sue vs xeu 14 1 3 7 TENSOR FUNCIONS a a A A A 14 1 3 8 Cache Mechanism uuu Ee Eu e Re Bch ets 15 13 97 Guadruple Precision ete es este qe eto prece e p nece es 16 1 3 10 Versions and Debugging xo xot wem 17 1 3 11 On Warning Messages and Checking Results 18 1 3 12 Ultraviolet Infrared and Collinear Divergences 19 1 4 Using Loopfools with Fortran 22 si at Rad Aw e SA e 23 1 5 Using Loop TOOLS WD CIC I ee sew dee Boe rw Ove Se ie Mode SS de 25 1 6 Using Loop tools with Mathematica 66g ud RR ARA 26 A The original FF Manual 28 SEN IRON a focis uana Gee iOS he Uo o 2 a 28 A 2 Brief description of the scalar loop routines sls 29 AGLI JQVetwIeW a 323b uo uio v aiio dee d Ren RU re die 29 A22 HINES ud o d dco ox e edo X edo deos due dicat xe 31 A 3 A 4 A 5 A 6 A 7 A 8 CONTENTS 2055 NOSIS niti ets
26. es can be checked with the two variables A and y The first one replaces 20 CHAPTER 1 LOOPTOOLS the actual divergence A 2 4 D w log 47 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 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 ufo e us 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 T0 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 not be introduced by hand if a requested integral is IR divergent LoopTools automatic
27. external momenta as C pi p gt pi p2 mi ma m3 or in terms of the momenta k as C k ki ke k2 m1 m2 m3 In both cases the same function is called with the same arguments since of course k pi and kz p p2 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 C112 are the coef ficients respectively of k and Kk k E not of p and pi pispop 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 a real a complex AO a AOC a one point function A00 a AOOC a coefficient of guv a m je numerator dPq m A d inP rp q m2 1 3 2 Two point functions Function call a real a complex BOi id a BOiC id a two point tensor coefficient id Bget a BgetC a all two point tensor coefficients special cases BO a BOC a scalar two point function Bi a Bic a coefficient of py BOO a BOOC a coefficient of g B11 a B11C a coefficient of p p B001 a B001C a coefficient of gupp B111 a B111C a coefficient of p p p 2 2 a p Mi ma up numerator d q g m3 q p mi inP 2 rp 12 CHAPTER 1 LO
28. 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 functions 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 38 APPENDIX A THE ORIGINAL FF MANUAL 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 5 4 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 Doa 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 ca
29. fwarn 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 one can lose significant precision is in taking the logarithm of a number close to 1 AII calls to the logarithm are checked by a wrapper routine for this case A routine dfflo1 zfflo1 is provided to evaluate log 1 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 x1oss 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 32 APPENDIX A
30. gh the rest of the algebra is performed in 4 dimensions u plays the r le of a renormalization scale that keeps track of the 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 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 T B for T etc The scalar integrals are denoted by a sub scripted zero Ao Bo etc 1 2 1 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 9 and the
31. he 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 contain either 0 or p pi 3 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 ffxeOa ce0 cd0Oi 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 44 APPENDIX A THE ORIGINAL FF MANUAL 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 ar
32. icularly 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 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 d 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 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 divergenc
33. igmaH external SigmaH call ltini do s 100 1000 50 print s SigmaH s enddo call ltexi end double complex function SigmaH k2 double precision k2 tinclude looptools h double precision MH2 MZ2 MW2 Alfa pi SW2 parameter MH2 100D0 2 amp MZ2 91 188D0 2 MW2 80 39D0 2 amp Alfa 1 137 0359895D0 amp pi 3 14159265358979D0 amp SW2 1 MW2 MZ2 SigmaH Alfa 32 pi SW2 MW2 amp 3 MH2 AO MH2 9 MH2 2 BO k2 MH2 MH2 amp Q MH2 2 4 MW2 k2 3 MW2 BO k2 MW2 MW2 amp 2 6 MW2 MH2 AO MW2 24 MW2 2 amp MH2 2 4D0 MZ2 k2 3 MZ2 BO k2 MZ2 MZ2 amp 6 MZ2 MH2 A0 MZ2 12 MZ2 2 end 1 5 USING LOOPTOOLS WITH C C 25 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 co
34. ine ffxd1 cd1i cd0 ccO0i xpi piDpj del3 del2i ier integer ier DOUBLE PRECISION xpi 13 piDpj 10 10 de13 del2i 4 COMPLEX cdii 3 cd0 ccOi 4 The input parameters are as follows cd0 Dp is the scalar four point function cc0i i Co without m the scalar three point functions xpi the masses as in ffxdO 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 46 APPENDIX A THE ORIGINAL FF MANUAL 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 2x2 determinants Pij Pio To calculate the 2 x 2 determinant de12 65 52 ps p1 p2 given the dotproducts use subroutine ffcel2 del2 piDpj ns ii i2 i3 lerr ier integer ns i1 i2 i3 lerr ier DOUBLE COMPLEX del2 piDpj ns ns subroutine ffdel2 del2 piDpj ns ii i2 i3 lerr ier integer ns i1 i2 i3 lerr ier DOUBLE PRECISION del2 piDpj ns ns In this piDpj i j p p is the dotproduct of vectors p and p i1 i2 i3 give the position of
35. 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 warnings 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 A 5 THE ERROR REPORTING SYSTEM 35 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 erro
36. lerable everyday loss occurs the subroutine ffwarn 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 occurring 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 ffwarn 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 delta_ lost 1 digits The number of digits lost gives the number of digits which 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 warnings which 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 warning message which does not increase ier the remark that there are cancellations among the input parameters This is the responsibility of the user Most A 5 THE ERROR REPORTING SYSTEM 37 routines have an alternati
37. mpilation The hosttype is a string identifying the system e g 1686 Linux or alpha OSF1 Its pur pose as a directory name is to separate the binaries for different platforms To see what its value is on your system type the following 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 LoopToo1s 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 following general one loop diagram The integral contained in this diagram is O ii fas Se So 1 1 Malr ce q mi a 1 m Ca Kv mi I 1 amp e r 1 m 1 amp T 1 Pade I 1 22 l where the momenta k that appear in the denominators are related to the external mo menta p as p k po ka k EE pn ky kx N 1 2 k p ko p po ee kn Y ps i 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 althou
38. mplex 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 ltini must be called and at the end 1texi may be called to get a summary of errors In C an elementary program would be include lt iostream gt tinclude clooptools h int main ltiniO 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 26 CHAPTER 1 LOOPTOOLS 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 return Alfa 32 pi SW2 MW2 3 MH2 AO 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 4 MZ2 k2 3 MZ2 BO k2 MZ2 MZ2 6 MZ2 MH2 A0 MZ2 12 MZ2 MZ2 int mainO Real s ltiniO for s 100 s lt 1000 s 50
39. n turn off 1warn 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 complex 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 A 6 SCALAR N POINT FUNCTIONS 39 A 6 1 One point function The one point function ca0 Ao m 2 fd 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 yu 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 m k is calculated in the subroutines subroutine ffcb0 cb
40. ogram 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 m5 s so the fermion mass acts as a natural regulator In sufficiently inclusive observables these logs cancel due to the Kinoshita Lee Nauenberg theorem KLN In non confined theories for example the electroweak Standard Model it is possible to observe non inclusive observables where 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 and 1 e 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 c 1 e and the finite piece respectively 22 CHAPTER 1 LOOPTOOLS 2 min e To facilitate mass regularization LoopTools acts on the variable mz in the follow ing way On calling a loop integral all arguments less than mf are set to zero If it is discovered that the function truncated thus has a collinear divergence m2 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
41. 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 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 ffx1i2 and ffz1i2 These expect their arguments to lie in the region z 1 Re z 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 A 2 BRIEF DESCRIPTION OF THE SCALAR LOOP ROUTINES 31 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 Xx y z xmax max abs x abs y if abs sum 1t xloss xmax call f
42. ooft 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 Math Phys 3 1962 650 T D Lee M Nauenberg Phys Rev 133 1964 1549 N Nakanishi Progr Theor Phys 19 1958 159 49 Index Ao 11 A00 11 AOOC 11 AOC 11 Bo 11 BOO 11 B001 11 B001C 11 BOOC 11 BOC 11 BOi 11 B01C 11 B1 11 B11 11 B111 11 B111C 11 B11C 11 B1C 11 Bget 11 BgetC 11 C preprocessor 23 C 25 c command line 25 co 13 coi 13 cache 14 15 Cget 13 27 cross checks 18 DO 13 DOC 13 DOi 13 DOiC 13 DBO 12 DBOO 12 DB1 12 DB11 12 decomposition 8 Dget 13 27 DgetC 13 EO 14 EOC 14 E0i 14 EOiC 14 Eget 14 EgetC 14 environment variable 23 error messages 19 F77 23 77 command line 23 FF 5 19 flushing the cache 15 Fortran 23 getcmpbits 16 getdebugkey 18 getdelta 22 getlambda 22 getmaxdev 18 getminmass 22 getmudim 22 getversionkey 17 Higgs self energy 24 hosttype 6 Install 26 50 INDEX installation LoopTools 5 internal heap 15 IR regularization parameters 20 LoopTools 26 looptools h 23 Lorentz covariant tensors 8 LTCMPBITS 16 LTDEBUG 18 LTDELTA 22 LTERR 19 ltexi 23 ltini 23 LTLAMBDA 22 LTMAXDEV 18 LTMINMASS 22 LTMUDIM 22 LTRANGE 18 LTVERSI
43. or the intrinsic functions sqrt log and 10g10 are used everywhere so these need not be changed 34 APPENDIX A THE ORIGINAL FF MANUAL Note that all subroutines have names starting with ff the functions have the ff in the middle of the name It is hoped 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 When using the FF routines a few 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
44. r 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 error eta is not defined for real The first part of the id must be defined by the user It 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 36 APPENDIX A THE ORIGINAL FF MANUAL 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 to
45. re good reasons to distrust FormF there the limit is not approached smoothly The Z vertex correction to an eey vertex with one of the electrons slightly off shell is stable only for one mirror image A 6 4 Four point function Calling sequence cdo Do mi m m mi pi P2 P3 p2 px pa pa p3 the four point function is calculated in the subroutine 42 APPENDIX A THE ORIGINAL FF MANUAL 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 p 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 ffxd0r cd0 xpi ier integer
46. rom 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 in call setdebugrange f t Fortran setdebugrange f t C C SetDebugRange f t Mathematica export LTRANGE f t bash setenv LTRANGE f t tcsh This makes it easy to monitor suspicious integrals 13 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 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 19 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 part
47. s 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 evaluate 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 1 d Q Yon a EPP A 1 e the vector three and four point functions e some determinants Planned additions are e The other Form factors la FormF 28 A 2 BRIEF DESCRIPTION OF THE SCALAR LOOP ROUTINES 29 e The six point function Note however that the reduction of these can be done analytically The aim of the routines is to provide a reliable answer 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 work 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 b
48. sion number has 128 bits of which 112 are the mantissa 13 9 Quadruple Precision For most calculations double precision is quite sufficient to yield satistyingly 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 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 1 3 FUNCTIONS PROVIDED BY LOOPTOOLS 17 make f makefile quad lt tag gt make f makefile quad lt tag gt install where the makefile is one of the following Alpha HP Tru64 Unix makefile quad alpha ifort Linux Mac OS makefile quad ifort xlf IBM RS6000 Mac OS PPC makefile quad xlf The resulting libraries and executables carry the suffix quad e g libooptools quad a 1 3 10 Versions and Debugging For checking the results LoopTools 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
49. 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 a2 a3 which is 2 times the determinant if ai p subroutine ffclmb clambd cci cc2 cc3 cci2 cci3 cc23 ier integer ier DOUBLE COMPLEX clambd cc cc2 cc3 cc 2 cci3 cc23 subroutine ffxlmb xlambd al a2 a3 a12 a13 a23 ier integer ier DOUBLE PRECISION xlambd a1 a2 a3 a12 a13 a23 The aij ai ajare again differences of the parameters in these routines An arbitrary 2 x 2 determinant dio can be obtained from ffd12i subroutine ffdl2i dl2i piDpj ns 11 12 13 18n 1 32 3 A 8 DETERMINANTS 47 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 dp with pj islk issp pk and no relationship between p p assumed A 8 2 3x3 determinants To calculate the 3 x 3 determinant d13p 55 525 given the dotproducts piDpj one can use subroutine ffdl3p dl3p piDpj ns ii ier integer ns ii 6 ier DOUBLE PRECISION d13p piDpj ns ns The array ii j gives the position of the vectors of the determinant has to be
50. ve entry point with the differences of the parameters required as input The user can edit the routines ffwarn and fferr in the file ffini to customize the error and warning reporting A 5 3 Debugging possibilities There are a few 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 answer This gives roughly 1000 lines of output for a four point function It is turned off by ffini The second one 1test turns on a lot of internal consistency checking If something is found wrong a message like ffdot4 error dotproducts with p 10 wrong 1795 9 5E 12 is given The last number gives the deviation from the expected result in this case a relative precision of 107 was found instead of the expected 10 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
Download Pdf Manuals
Related Search
Related Contents
Le Correspondant Défense - format : PDF - 0,42 Mb Manuale d`uso Blanco 515-652 User's Manual Sencor SKS 5300 Model PUS400G Ultrasonic Oscillator FB-718取扱説明書 MI Regulation TAC4 DG + RC F LED Matrix Blinder 5x5 DMX blinder manual de instrucciones DESLIZADERA DE SEGURIDAD PARA CUERDA(ES2096897) Copyright © All rights reserved.
Failed to retrieve file