code: def read_dew_point(self, t=None, rh=None):
  		'With t and rh provided, does not access the hardware.'
  		if t is None: t, rh = self.read_t(), None
  		if rh is None: rh = self.read_rh(t)
  		t_range = 'water' if t >= 0 else 'ice'
  		tn, m = self.c.tn[t_range], self.c.m[t_range]
  		return ( # ch 4.4
  			tn * (math.log(rh / 100.0) + (m * t) / (tn + t))
  			/ (m - math.log(rh / 100.0) - m * t / (tn + t)) f read_dew_point(self, t=None, rh=None):
  		'With t and rh provided, does not access the hardware.'
  		if t is None: t, rh = self.read_t(), None
  		if rh is None: rh = self.read_rh(t)
  		t_range = 'water' if t >= 0 else 'ice'
  		tn, m = self.c.tn[t_range], self.c.m[t_range]
  		return ( # ch 4.4
  			tn * (math.log(rh / 100.0) + (m * t) / (tn + t))
  			/ (m - math.log(rh / 100.0) - m * t / (tn + t)) )
docs: With t and rh provided, does not access the hardware.