Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
 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