HOW TO USE THE CODE Original instructions by A. Vinnikov 27/4/2006 0. There are two types of files here. One type has file names starting from "example_", such as "example_main_s.c". This are front-ends calling the actual evolution functions. Change them as you wish. In particular, if you want to change the limits of Q^2 variation, the number of Q^2 or x-intervals, you can do it in "example_main_*.c". If you want to use your own GPDs, replace files "gpdh.c" or "gpdh_pol.c" with your own. Change in these parts of the code is not fatal, since it does not touch the evolution itself. If you change any other program, you can harm the evolution code itself. In particular, it is highly recommended (unless you 100% know what you are doing), not to touch files like "*.h", "conv_int_*.c" and "evol_*.c" 1. To compile spin-independent non-singlet evolution program and get executable "a.out" run ./comp_ns To compile spin-dependent non-singlet evolution program and get executable "a.out" run ./comp_ns_pol To compile spin-independent singlet evolution program and get executable "a.out" run ./comp_s To compile spin-dependent singlet evolution program and get executable "a.out" run ./comp_s_pol These executables will take as an input the GPDs (spin-independent or spin-dependent, encoded in "gpdh.c" and "gpdh_pol.c" routines, evolve them according to the conditions written in "example_main_*.c" and give the output GPDs to the standard output. To do this, just run "./a.out" after the compilation step specified above. If you want the output to be written to some file, run "./a.out > my_output_file" It is a good idea to include optimization keys in the comp_* scripts, for example -O3 -mcpu=pentium4 This can increase the speed by a factor of 2-3. The computation times given in the write-up correspond to the optimized compilation. 2. To change the number of intervals in x or Q^2, look into "example_main_s.c". There you find description what is what and can input your own parameters Additional comments by M. Diehl 14/5/2007 3. The original routine for the running coupling, as described in A. Vinnikov's hep-ph/0604248, is called "alpha_s_orig.c". It selects the number of quark flavors N_F in alpha_s according to the scale at which it is evaluated. As an alternative, the routine "alpha_s.c" gives the strong coupling for the same value of N_F used in the evolution kernels, irrespective at the scale where alpha_s is evaluated. The value of N_F is taken from "qcd.h". The compiling scripts mentioned in point 1 use "alpha_s.c". 4. The original routines gpdh.c and gpdh_pol.c have been corrected and slightly modified by W. Kugler and M. Diehl. ----------------------------------------------------------------- LIST OF FILES: alpha_s.c - computes strong coupling constant alpha_s_orig.c - does the same, see point 3 above comp_ns - compiles main program for non-singlet evolution comp_ns_pol - compiles main program for non-singlet spin-dependent evolution comp_s - compiles main program for singlet evolution comp_s_pol - compiles main program for singlet spin-dependent evolution conv_int_gg.c - convolution integral for gluon-gluon part conv_int_gg_pol.c - convolution integral for spin-dependent gluon-gluon part conv_int_gq.c - convolution integral for gluon-quark part conv_int_gq_pol.c - convolution integral for spin-dependent gluon-quark part conv_int_ns.c - convolution integral for non-singlet (spin-dependent and spin-independent) part conv_int_qg.c - convolution integral for quark-gluon part conv_int_qg_pol.c - convolution integral for spin-dependent quark-gluon part conv_int_qq.c - convolution integral for singlet quark part conv_int_qq_pol.c - convolution integral for spin-dependent singlet quark part dd_int_simp.c - integration of double distribution to get GPD evol_ns.c - non-singlet evolution, 4-th order Runge-Kutta evol_s.c - singlet evolution, 4-th order Runge-Kutta evol_s_pol.c - singlet spin-dependent evolution, 4-th order Runge-Kutta example_main_ns.c - front end for evol_ns.c example_main_s.c - front end for evol_s.c example_main_ns_pol.c - front end for evol_ns.c with spin-dependent input example_main_s_pol.c - front end for evol_s_pol.c gammf.c - gamma - function. Required to cook input GPD gpd_evol.h - headers for evolution part gpd_grid_ns.c - populates the x-array for non-singlet evolution gpd_grid_s.c - populates the x-array for singlet evolution gpd.h - headers for input GPDs gpd_ns_integrate.c - integration of the non-singlet GPD gpd_s_integrate.c - integration of the singlet GPD gpdh.c - input spin-independent GPDs based on CTEQ6 PDFs, Diehl-Feldman-Jakob-Kroll t-dependence and Radyushkin profile functions gpdh_pol.c - input spin-dependent GPDs based on Blumlein-Bottcher PDFs and Radyushkin profile functions qcd.h - headers for general QCD parameters and functions README - this file test_conv_int_gg.c - test for conv_int_gg.c with H_G(x) = 1-x^2 test_conv_int_gg_pol.c - test for conv_int_gg_pol.c with \tilde H_G(x) = x-x^3 test_conv_int_gq.c - test for conv_int_gq.c with H_Q(x) = x-x^3 test_conv_int_gq_pol.c - test for conv_int_gq_pol.c with \tilde H_Q(x) = 1-x^2 test_conv_int_ns.c - test for conv_int_ns.c with H_NS(x) = 1-x^2 test_conv_int_qg.c - test for conv_int_qg.c with H_G(x) = 1-x^2 test_conv_int_qg_pol.c - test for conv_int_qg_pol.c with \tilde H_G(x) = x-x^3 test_conv_int_qq.c - test for conv_int_qq.c with H_Q(x) = x-x^3 test_conv_int_qq_pol.c - test for conv_int_qq_pol.c with \tilde H_Q(x) = 1-x^2