Using version 2.6 of GSL from ftp://ftp.gnu.org/gnu/gsl/gsl-2.6.tar.gz
OS is Ubuntu 18.04.2 LTS
Hardware is a Dell workstation with a 3.60 GHz Intel i7-4790 and 32 GB
of RAM
Compiler is gcc 7.4.0 with the -w option
Though the digamma function has poles at all negative integer values,
once the magnitude of the input is larger than 2,
GSL does not complain and returns incorrect values. For the inputs -1
and -2, the error handler is invoked with a domain error as might be
expected.
#include <gsl/gsl_sf.h>
#include <stdio.h>
#include <gsl/gsl_math.h>
#include <float.h>
int main (void){
double out;
out = gsl_sf_psi(-3);
printf("%.*f\n", DBL_DIG-1, out);
printf("%.21e\n", out);
return 0;
}