import math


def water_saturation_vapour_pressure_iapws(t):
    """Returns the water vapour pressure according to W. Wagner and A. Pruss (1992) J. Phys. Chem. Reference Data, 22,
    783–787.
    See http://www.kayelaby.npl.co.uk/chemistry/3_4/3_4_2.html
    Valid only above the triple point. The IAWPS formulation 1995 (Wagner and Pruß, 2002) is valid in the temperature
    range 273.16 K < T < 647.096 K. See http://cires1.colorado.edu/~voemel/vp.html
    :param t: water temperature (°C)
    :return: water vapour pressure in Pascal (Pa)
    """
    tc = 647.096  # K
    pc = 22064000   # Pa
    a1 = -7.85951783
    a2 = 1.84408259
    a3 = -11.7866497
    a4 = 22.6807411
    a5 = -15.9618719
    a6 = 1.80122502
    t += 273.15
    tau = 1 - t/tc
    return pc * math.exp((a1 * tau + a2 * tau**1.5 + a3 * tau**3 + a4 * tau**3.5 + a5 * tau**4 + a6 * tau**7.5) * tc / t)