def __call__(self, fermion_config): new_configs=[] new_vals=[] # for index in N.ndindex(self.coeffs.shape): # if abs(self.coeffs[index])>self.thresh: for index in self.coeffs_dict: sign, new_config=fermions.excite(fermion_config, index[0], index[1]) if sign: new_configs.append(new_config) new_vals.append(self.coeffs_dict[index[0],index[1]]*sign) return new_configs, new_vals
def __call__(self, fermion_config): new_configs=[] new_vals=[] for index in self.t_dict.keys(): sign, new_config=fermions.excite(fermion_config, index[0], index[1]) if sign: new_configs.append(new_config) new_vals.append(self.t_dict[index[0],index[1]]*sign) for pair in self.u_dict.keys(): if fermion_config[pair[0]] and fermion_config[pair[1]]: new_configs.append(fermion_config[:]) new_vals.append(self.u_dict[pair[0],pair[1]]) return new_configs, new_vals