예제 #1
0
파일: gs.py 프로젝트: Inpher/Inpher-SPDZ
        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
예제 #2
0
파일: gs.py 프로젝트: Inpher/Inpher-SPDZ
        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
예제 #3
0
파일: gs.py 프로젝트: lance6716/SPDZ-2
 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
예제 #4
0
파일: gs.py 프로젝트: lance6716/SPDZ-2
 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
예제 #5
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
예제 #6
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
예제 #7
0
파일: gs.py 프로젝트: lance6716/SPDZ-2
 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())
예제 #8
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())
예제 #9
0
파일: gs.py 프로젝트: lance6716/SPDZ-2
 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
예제 #10
0
파일: gs.py 프로젝트: lance6716/SPDZ-2
 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