コード例 #1
0
ファイル: types.py プロジェクト: zeronek501/MP-SPDZ
 def if_else(self, x, y):
     assert(len(self.v) == 1)
     try:
         return self.from_vec(util.if_else(self.v[0], a, b) \
                              for a, b in zip(x, y))
     except:
         return util.if_else(self.v[0], x, y)
コード例 #2
0
ファイル: types.py プロジェクト: lance6716/SPDZ-2
 def if_else(self, x, y):
     assert(len(self.v) == 1)
     try:
         return self.from_vec(util.if_else(self.v[0], a, b) \
                              for a, b in zip(x, y))
     except:
         return util.if_else(self.v[0], x, y)
コード例 #3
0
ファイル: types.py プロジェクト: zeronek501/MP-SPDZ
 def Norm(self, k, f, kappa=None, simplex_flag=False):
     absolute_val = abs(self)
     #next 2 lines actually compute the SufOR for little indian encoding
     bits = absolute_val.bit_decompose(k)[::-1]
     suffixes = floatingpoint.PreOR(bits)[::-1]
     z = [0] * k
     for i in range(k - 1):
         z[i] = suffixes[i] - suffixes[i+1]
     z[k - 1] = suffixes[k-1]
     z.reverse()
     t2k = self.get_type(2 * k)
     acc = t2k.bit_compose(z)
     sign = self.bit_decompose()[-1]
     signed_acc = util.if_else(sign, -acc, acc)
     absolute_val_2k = t2k.bit_compose(absolute_val.bit_decompose())
     part_reciprocal = absolute_val_2k * acc
     return part_reciprocal, signed_acc