Known Issues

Here we make a list of known issues that have occurred. If you experience a problem with handyG, please do not hesitate to contact us. Ideally, your bug report should contain

  • The version of handyG you are using. This can be found at the end of the ./configure procedure. Please understand that older releases or development versions are not fully supported and that you may be required to update the latest version.

  • The logfile produced by the ./configure process. This can be obtained by prepending the ./configure call with for example LOGFILE=log.txt.

  • If applicable, a short example program demonstrating your problem. For a timely response, please provide the simplest program that still causes your issue.

  • Your issue may result in a new release or an addition on this page. By default, we will acknowledge you for your bug report and maybe publish parts of your example code. Please let us know if you object to this.

  • If you already have investigated your issue, please share your results, though this is not necessary.

Segmentation fault for arguments on the complex unit circle

Thanks to F. Buccioni for reporting this issue

Sometimes GPLs with arguments on the unit circle, i.e. \(G(z_1,...,z_m\ ;y)\) with \(y \in\{c\in \mathbb{C}\ :\ |c|=1\}\) result in segmentation faults.

! compile with gfortran -o demo demo.f90 libhandyg.a
program handyGdemo
  use handyG
  implicit none
  real(kind=prec) :: z
  complex(kind=prec) :: y
  complex(kind=prec), parameter :: i_ = (0._prec, 1._prec)

  z = 0.99592549661823904_prec
  y = (1._prec - 2*z + i_*sqrt(4*z-1._prec))/(2*z)

  print*, G([(-1._prec,0._prec),(-1._prec,0._prec)],y)

end program handyGdemo

The above code may result in a segmentation fault due to an infinite loop. GPLs with complex arguments are first normalised. In the above case, the GPL evaluate is \(G(-1/y, -1/y\ ;1)\). Due a numerical issue in Fortran abs(-1/y) may evaluate to a number slightly less than one. This problem can easily be circumvented by performing the normalisation analytically

moy = cmplx(1._prec-1/(2*z), sqrt(4*z-1._prec) / (2*z), kind=prec)
print*, G([moy, moy],(1._prec,0.))

GPLs with arguments close to one are not precise

Thanks to Xiofeng Xu for pointing out this issue

The function that calculates \(\Li_n(z)\) for \(z\in\mathbb{C}\) is not precise for \(z\sim 1\) because the series expansion converges too slow. This should be resolve in v0.1.4.

Parallel builds are not supported

Thanks to R. K. Eillis and J. Campbell for pointing out this issue

make -j fails because dependencies are not correctly implemented. This should be resolved on master and will be part of v0.1.5.