First, note that union corresponds to max(a,b), and intersection to min(a,b).
Then note these identities:
abs(x) = pos(x) + pos(-x) abs(a - b) = pos(a - b) + pos(-a + b) a + b + abs(a - b) = 2*max(a,b) a + b - abs(a - b) = 2*min(a,b)So, for example:
[ r1 ] [ 1 1 1 ] [ pos[x1] ] [ 1 1 ] [ a ]
[ r2 ] = [ 1 -1 -1 ] [ pos[x2] ] [ 1 -1 ] [ b ]
[ pos[x3] ] [ -1 1 ]
expands to:
r1 = a + b + pos(a - b) + pos(-a + b) = 2*max(a,b) r2 = a + b - pos(a - b) - pos(-a + b) = 2*min(a,b)These are our two functions we want to reproduce:
set-union(f,g): [max(f[k],g[k]) for k in range(len(f))] set-intersection(f,g): [min(f[k],g[k]) for k in range(len(f))]And here they are in MatSumSig (ignoring a factor of 2):
[ U1 ] [ 1 1 1 0 0 0 0 0 0 0 0 0 ] [ pos[x1] ] [ 1 1 0 0 0 0 0 0 ] [ f1 ]
[ I1 ] = [ 1 -1 -1 0 0 0 0 0 0 0 0 0 ] [ pos[x2] ] [ 1 -1 0 0 0 0 0 0 ] [ g1 ]
[ U2 ] [ 0 0 0 1 1 1 0 0 0 0 0 0 ] [ pos[x3] ] [ -1 1 0 0 0 0 0 0 ] [ f2 ]
[ I2 ] [ 0 0 0 1 -1 -1 0 0 0 0 0 0 ] [ pos[x4] ] [ 0 0 1 1 0 0 0 0 ] [ g2 ]
[ U3 ] [ 0 0 0 0 0 0 1 1 1 0 0 0 ] [ pos[x5] ] [ 0 0 1 -1 0 0 0 0 ] [ f3 ]
[ I3 ] [ 0 0 0 0 0 0 1 -1 -1 0 0 0 ] [ pos[x6] ] [ 0 0 -1 1 0 0 0 0 ] [ g3 ]
[ U4 ] [ 0 0 0 0 0 0 0 0 0 1 1 1 ] [ pos[x7] ] [ 0 0 0 0 1 1 0 0 ] [ f4 ]
[ I4 ] [ 0 0 0 0 0 0 0 0 0 1 -1 -1 ] [ pos[x8] ] [ 0 0 0 0 1 -1 0 0 ] [ g4 ]
[ pos[x9] ] [ 0 0 0 0 -1 1 0 0 ]
[ pos[x10] ] [ 0 0 0 0 0 0 1 1 ]
[ pos[x11] ] [ 0 0 0 0 0 0 1 -1 ]
[ pos[x12] ] [ 0 0 0 0 0 0 -1 1 ]
which expands to:
[U1,U2,U3,U4] = 2* [max(f1,g1), max(f2,g2), max(f3,g3), max(f4,g4)] [I1,I2,I3,I4] = 2* [min(f1,g1), min(f2,g2), min(f3,g3), min(f4,g4)]So I guess you could say they are space based union and intersection. We can also do a time based one:
[ U[t] ] = [ 1 1 1 ] [ pos[x1] ] [ 1 1 ] [ f ]
[ I[t] ] [ 1 -1 -1 ] [ pos[x2] ] [ 1 -1 ] [ g ]
[ pos[x3] ] [ -1 1 ]
where U[t] is union of f[t] and g[t] with respect to time, and I[t] is intersection.
No comments:
Post a Comment