def sinh_effective_mass_errors(self, dt, fast=True, period=None): if fast: logging.info("sinh emass computed fast method") T = self.period_check(period) jkasv = self.jackknife_average_sub_vev() jkemass = {} for cfg in self.configs: asvc = jkasv[cfg] emass = {} for t in self.times[dt:-dt]: if t in self.emass_skip_times: emass[t] = 0.0 continue try: guess = (1.0 / float(dt))*math.asinh((asvc[t+dt] + asvc[t-dt])/(2.0*asvc[t])) if fast: emass[t] = guess else: emass[t] = newton.newton_sinh_for_m(t,t+dt,asvc, guess, T) except ValueError: #logging.debug("invalid argument to log, setting to zero") emass[t] = 0.0 except ZeroDivisionError: logging.debug("div by zero, setting to zero") emass[t] = 0.0 except KeyError: logging.error("index out of range") jkemass[cfg] = emass jkemassobj = configtimeobj.Cfgtimeobj.fromDataDict(jkemass) effmass_dt = self.sinh_effective_mass(dt, fast=fast, period=T) return {t: jackknife.errorbars(effmass_dt[t], jkemassobj.get(time=t)) for t in self.times[dt:-dt]}
def cosh_const_effective_mass_errors(self, dt): jkasv = self.jackknife_average_sub_vev() jkemass = {} for cfg in self.configs: asvc = jkasv[cfg] emass = {} asvct = {t: asvc[t+dt] - asvc[t] for t in self.times[:-dt]} for t in self.times[dt:-(dt+1)]: if t in self.emass_skip_times: emass[t] = 0.0 continue try: emass[t] = (1.0 / float(dt))*math.acosh((asvc[t+dt] + asvc[t-dt])/(2.0*asvc[t])) except ValueError: #logging.debug("invalid argument to log, setting to zero") emass[t] = 0.0 except ZeroDivisionError: logging.debug("div by zero, setting to zero") emass[t] = 0.0 except KeyError: logging.error("index out of range") jkemass[cfg] = emass jkemassobj = configtimeobj.Cfgtimeobj.fromDataDict(jkemass) effmass_dt = self.cosh_const_effective_mass(dt) return {t: jackknife.errorbars(effmass_dt[t], jkemassobj.get(time=t)) for t in self.times[dt:-(dt+dt)]}
def jackknifed_errors(self): jk = Cfgtimeobj.fromDataDict(self.jackknifed_averages()) aoc = self.average_over_configs() return {t: jackknife.errorbars(aoc[t], jk.get(time=t)) for t in self.times}
def jackknifed_errors(self): jk = configtimeobj.Cfgtimeobj.fromDataDict(self.jackknife_average_sub_vev()) asv = self.average_sub_vev() return {t: jackknife.errorbars(asv[t], jk.get(time=t)) for t in self.times}