INNER CODE UNIT · Python
prefix_or7
lschoe/mpyc · demos/PrefixOrExplained.py:349
def prefix_or7(x):
def pf(a, x): # prefix or with a as initial value plus aux. output
n = len(x)
if n == 1:
return [], x[0]
y0, b0 = pf(a, x[:n//2])
a_or_b0 = a | b0
y1, b1 = pf(a_or_b0, x[n//2:])
return y0 + [a_or_b0] + y1, b0 | b1
y, b = pf(0, x)
y.append(b)
return y
# In[23]: