FUNCTION ajs_digamma, x, eps
compile_opt idl2
x = double(x)
IF n_elements(eps) EQ 0 THEN $
eps = 1e-12
gamma = 0.57721566490153286060651209008240243104215933593992d
psi = - gamma
n = 1
REPEAT BEGIN
delta_psi = (x - 1) / (n * (n + x - 1))
psi += delta_psi
n += 1
ENDREP UNTIL (abs(delta_psi) LT eps)
return, psi
END
PRO ajs_digamma_test
gamma = 0.57721566490153286060651209008240243104215933593992d
print, 'Zeros:'
print, ajs_digamma(1) - (- gamma)
print, ajs_digamma(0.5) - (- gamma - 2 * alog(2))
print, ajs_digamma(1./3) - (- !PI / 2 / sqrt(3) - 3. / 2 * alog(3) - gamma)
END