Commit 1b1a9094 authored by ulrich_y's avatar ulrich_y

Added user interface

parent 81f13108
......@@ -28,7 +28,7 @@ FFLAGS += -DHAVE_GINAC
endif
files=globals.o ieps.o utils.o shuffle.o maths_functions.o mpl_module.o gpl_module.o
files=globals.o ieps.o utils.o shuffle.o maths_functions.o mpl_module.o gpl_module.o GPL.o
objects = $(addprefix build/,$(files))
all: libgpl.a gpl eval test
......
MODULE GPL
use globals, only: prec, GPLopts=>set_options
use ieps, only: inum, toinum, di0, abs, real, aimag
use gpl_module, only: G
implicit none
END MODULE GPL
PROGRAM eval
use globals
use gpl_module
use utils
use maths_functions
use shuffle
use GPL
implicit none
complex(kind=prec) :: res
......@@ -14,7 +9,7 @@ PROGRAM eval
call parse_cmd_args()
#endif
res = GPL([-1.,0.,0.,0.,1.])
res = G([-1.,0.,0.,0.,1.])
print*, res
! res = pending_integral(cmplx([1,3]),2,cmplx([2,4]))
......
......@@ -8,9 +8,9 @@ MODULE globals
real, parameter :: pi = 3.14159265358979323846
! The following parameters control the accuracy of the evaluation
integer :: MPLInfinity = 30 ! the default outermost expansion order for MPLs, formerly GPLInfinity
integer :: PolylogInfinity = 1000 ! expansion order for Polylogs
real(kind=prec) :: HoelderCircle = 1.1 ! when to apply Hoelder convolution?
integer, protected :: MPLInfinity = 30 ! the default outermost expansion order for MPLs, formerly GPLInfinity
integer, protected :: PolylogInfinity = 1000 ! expansion order for Polylogs
real(kind=prec), protected :: HoelderCircle = 1.1 ! when to apply Hoelder convolution?
integer :: verb = 0
......@@ -36,4 +36,12 @@ CONTAINS
END SUBROUTINE parse_cmd_args
#endif
SUBROUTINE SET_OPTIONS(mplinf, liinf, hcircle)
real(kind=prec), optional :: hcircle
integer, optional :: mplinf, liinf
if (present(mplinf)) MPLInfinity = mplinf
if (present(liinf)) PolyLogInfinity = liinf
if (present(hcircle)) HoelderCircle = hcircle
END SUBROUTINE
END MODULE globals
......@@ -8,9 +8,9 @@ MODULE gpl_module
use ieps
implicit none
INTERFACE GPL
INTERFACE G
module procedure G_flat, G_condensed, G_superflat, G_real, G_int
END INTERFACE GPL
END INTERFACE G
CONTAINS
FUNCTION GPL_zero_zi(l,y)
......@@ -68,7 +68,7 @@ CONTAINS
print*, 'PI with p=',real(p),'i=',m,'g =',real([zeroes(m-1),y2])
end if
#endif
res = GPL(a,y2)*pending_integral(p,m,[zeroes(m-1),y2])
res = G_flat(a,y2)*pending_integral(p,m,[zeroes(m-1),y2])
#ifdef DEBUG
if(verb >= 50) print*, 'also mapping to'
#endif
......
......@@ -99,7 +99,7 @@ CONTAINS
character(len=*) :: test_id
print*, ' ', 'testing GPL ', test_id, ' ...'
res = GPL(z)
res = G(z)
call check(res,ref)
end subroutine test_one_flat
......@@ -1288,12 +1288,12 @@ CONTAINS
if (ginacwhat=="values") then
print*, ' ', 'testing GPL ', test_id, ' ...'
ref = geval(z,size(z))
res = GPL(z)
res = G(z)
call check(res,ref)
elseif (ginacwhat=="speed1") then
ref = geval(z,size(z))
elseif (ginacwhat=="speed2") then
res = GPL(z)
res = G(z)
endif
end subroutine
subroutine do_muone_tests(x,y,msg)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment