MCPcopy
hub / github.com/ethereum/research / multi_inv

Method multi_inv

binary_fft.py:60–69  ·  view source on GitHub ↗
(self, values)

Source from the content-addressed store, hash-verified

58 return 1 if p == 0 else 0 if x == 0 else self.cache[(self.invcache[x] * p) % self.order]
59
60 def multi_inv(self, values):
61 partials = [1]
62 for i in range(len(values)):
63 partials.append(self.mul(partials[-1], values[i] or 1))
64 inv = self.inv(partials[-1])
65 outputs = [0] * len(values)
66 for i in range(len(values), 0, -1):
67 outputs[i-1] = self.mul(partials[i-1], inv) if values[i-1] else 0
68 inv = self.mul(inv, values[i-1] or 1)
69 return outputs
70
71 def div(self, x, y):
72 return self.mul(x, self.inv(y))

Callers 1

lagrange_interpMethod · 0.95

Calls 3

mulMethod · 0.95
invMethod · 0.95
appendMethod · 0.45

Tested by

no test coverage detected