def METHOD_NAME(self, volume, temperature, VT_covariance=None):
    """
    Returns the pressure of the calibrant as a function of
    volume, temperature and (optionally) a volume-temperature
    variance-covariance matrix.
    :param volume: The volume of the calibrant [m^3/mol].
    :type volume: float
    :param temperature: The temperature of the calibrant [K].
    :type temperature: float
    :param VT_covariance: The volume-temperature
        variance-covariance matrix [optional].
    :type VT_covariance: 2x2 numpy.array
    :returns: The pressure of the calibrant [Pa] and the
        pressure-volume-temperature variance-covariance matrix
        if PT_covariance is provided.
    :rtype: float, tuple of a float and a numpy.array (3x3)
    """
    if VT_covariance is None:
        return self.pressure_function(volume, temperature, self.params)
    else:
        # Here we take the centered differences
        # We could alternatively use thermodynamic properties
        # but these have not yet been implemented.
        dV = volume / 1.0e7
        dT = 0.01
        PdV0 = self.pressure_function(volume - dV / 2.0, temperature, self.params)
        PdV1 = self.pressure_function(volume + dV / 2.0, temperature, self.params)
        PdT0 = self.pressure_function(volume, temperature - dT / 2.0, self.params)
        PdT1 = self.pressure_function(volume, temperature + dT / 2.0, self.params)
        METHOD_NAME = (PdV0 + PdV1 + PdT0 + PdT1) / 4.0
        gradPVT = np.zeros((2, 3))
        gradPVT[:, 1:] = np.eye(2)
        gradPVT[:, 0] = [(PdV1 - PdV0) / dV, (PdT1 - PdT0) / dT]
        PVT_covariance = gradPVT.T.dot(VT_covariance).dot(gradPVT)
        return METHOD_NAME, PVT_covariance