Example #1
0
        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
Example #2
0
        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
Example #3
0
 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
Example #4
0
 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):
     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):
     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
Example #7
0
 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=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())
Example #9
0
 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
Example #10
0
 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