code: def _lognl(self):
          
          try:
              return self.__lognl
          except AttributeError:
              det_lognls = {}
              for (det, d) in self._data.items():
                  kmin = self._kmin
                  kmax = self._kmax
                  det_lognls[det] = -0.5 * d[kmin:kmax].inner(d[kmin:kmax]).real
              self.__det_lognls = det_lognls
              self.__lognl = sum(det_lognls.values())
              return self.__lognl
docs: Computes the log likelihood assuming the data is noise.
  
          Since this is a constant for Gaussian noise, this is only computed once
          then stored.