def merge(self, follower, m): if follower != self.creator: fdq = crane.mantisStore.load_one( { 'name': self.name, 'creator': follower }, { 'dq': True }).get('dq', []) fdq = FlexibleVector(generic=fdq) else: fdq = self.dq rd = (fdq.norm() + EPS) / (self.panda.z.norm() + EPS) if rd < self.eps: logger.debug('Converged, no need to merge') return False else: self.panda.z.add(fdq, 1.0 / (m + 1 / self.rho)) logger.debug('m = {0}'.format(m)) logger.debug('update z {0}'.format(self.panda.z)) logger.debug('relative difference of z {0}'.format(rd)) metricValue(self, 'rz', rd) #self.panda.update_fields({self.panda.FCONSENSUS:self.panda.z.generic()}) if fdq is not self.dq: del fdq return True
def merge(self, follower, m): if follower != self.creator: fdq = crane.mantisStore.load_one({'name':self.name, 'creator':follower}, {'dq':True}).get('dq',[]) fdq = FlexibleVector(generic=fdq) else: fdq = self.dq rd = (fdq.norm() + EPS) / (self.panda.z.norm() + EPS) if rd < self.eps: logger.debug('Converged, no need to merge') return False else: self.panda.z.add(fdq, 1.0 / (m + 1 / self.rho)) logger.debug('m = {0}'.format(m)) logger.debug('update z {0}'.format(self.panda.z)) logger.debug('relative difference of z {0}'.format(rd)) metricValue(self, 'rz', rd) #self.panda.update_fields({self.panda.FCONSENSUS:self.panda.z.generic()}) if fdq is not self.dq: del fdq return True