When the third argument is a NaN, it is possible to choose first and second arguments such that the NaN is dropped and a 1.0 is returned. From some very limited trials, it seems like a zero as a first argument consistently drops the NaN as well as a first arg of 1 and a second arg greater than 1.
Python 3.6.8 (default, Oct 7 2019, 12:59:55)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from mpmath import *
>>> import numpy as np
>>> mp.hyp1f1(0, 1, np.nan)
mpf('1.0')
>>> mp.hyp1f1(1, 1, np.nan)
mpf('nan')
>>> mp.hyp1f1(1, 1.1, np.nan)
mpf('1.0')
>>> mp.hyp1f1(1, 2, np.nan)
mpf('1.0')
>>> mp.hyp1f1(1, 3, np.nan)
mpf('1.0')
>>> mp.hyp1f1(1, 4, np.nan)
mpf('1.0')
>>> mp.hyp1f1(2, 1, np.nan)
mpf('1.0')
>>> mp.hyp1f1(2, 2, np.nan)
mpf('nan')
>>> mp.hyp1f1(0, 2, np.nan)
mpf('1.0')
>>> mp.hyp1f1(0, 4, np.nan)
mpf('1.0')
mpmath version: 1.1.0
When the third argument is a NaN, it is possible to choose first and second arguments such that the NaN is dropped and a 1.0 is returned. From some very limited trials, it seems like a zero as a first argument consistently drops the NaN as well as a first arg of 1 and a second arg greater than 1.