def f(i): time() types.cint(i).print_reg('fran') @for_range(self.M) def f(j): self.f_ranks[i][(j - i + self.N) % self.N] = j
def f(i): time() types.cint(i).print_reg('mpre') @for_range(self.M) def f(j): self.m_prefs[i][j] = (i + j) % self.N
def f(i): time() types.cint(i).print_reg('mpre') @for_range(inner_loops) def f(j): self.m_prefs[i][j] = (-i + j + self.N - 1) % (self.N - 1) if self.M < self.N: self.m_prefs[i][self.M-1] = (2 * self.N - 2 - i) % self.N else: self.m_prefs[i][self.N-1] = self.N - 1
def f(i): time() types.cint(i).print_reg('fran') @for_range(inner_loops) def f(j): if self.reverse: self.f_ranks[i] = tuple((-i - j + 2 * self.N - 2) % self.N \ for j in range(self.M)) else: self.f_ranks[i][(-i - j + 2 * self.N - 2) % self.N] = j
def f(i=None): rounds.iadd(1) time() man = self.unengaged.pop() #self.husbands.ram[0].x[0].reveal().print_reg('j') pref = self.int_type(propose[man]) if self.M < self.N and n_loops is None: @if_((pref == self.M).reveal()) def f(): print_ln('run out of acceptable women') crash() #self.husbands.ram[0].x[0].reveal().print_reg('k') propose[man] = pref + 1 #self.husbands.ram[0].x[0].reveal().print_reg('l') self.propose(man, self.m_prefs[man][pref], True) print_ln('man: %s, pref: %s, left: %s', \ *(x.reveal() for x in (man, pref, self.unengaged.size))) # self.wives[man].reveal().print_reg('wife') return types.regint((self.unengaged.size > 0).reveal())
def f(i): time() types.cint(i).print_reg('fran') @for_range(self.M) def f(j): self.f_ranks[i][(j-i+self.N)%self.N] = j