Skip to content

Instantly share code, notes, and snippets.

@Shekharrajak
Last active August 28, 2016 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Shekharrajak/fdf771cdcbbf00d31530b76ac35421b4 to your computer and use it in GitHub Desktop.
Save Shekharrajak/fdf771cdcbbf00d31530b76ac35421b4 to your computer and use it in GitHub Desktop.
# args = list(FiniteSet(*args))
length = len(args)
reduced = [[None for x in range(length)] for x in range(length)]
# base case
reduced[0][0] = [args[0]]
# first row
for i in range(1, length - 1):
new_set = reduced[0][i - 1][0]._union(args[i])
if new_set is not None:
reduced[0][i] = [new_set]
else:
reduced[0][i] = reduced[0][i - 1]
for i in range(1, length - 1):
j = i
imageset_i = args[i]
prev_reduced = reduced[i - 1][j]
new_set = None
for red in prev_reduced:
new_set = imageset_i._union(red)
if new_set is not None:
reduced[i][j] = list(set(prev_reduced) - set(red) + set(new_set))
break
j = j +1
while(j < length):
if new_set:
new_set2 = new_set._union(imageset_i)
if new_set is not None:
reduced[i][j] = set(reduced[i][j-1]) + set()
@Shekharrajak
Copy link
Author

Shekharrajak commented Aug 28, 2016

img1 = ImageSet(Lambda(n, 2*n*pi + pi/2), S.Integers)
img2 = ImageSet(Lambda(n, 2*n*pi + 3*pi/2), S.Integers)
img3 = ImageSet(Lambda(n, 2*n*pi + 4*pi/3), S.Integers)
img4 = ImageSet(Lambda(n, 2*n*pi + 2*pi/3), S.Integers)
img5 = ImageSet(Lambda(n, 2*n*pi + 5*pi/3), S.Integers)
img6 = ImageSet(Lambda(n, 2*n*pi + pi/3), S.Integers)
img7 = ImageSet(Lambda(n, 2*n*pi + 7*pi/6), S.Integers)
img8 = ImageSet(Lambda(n, 2*n*pi + 5*pi/6), S.Integers)
img9 = ImageSet(Lambda(n, 2*n*pi + 11*pi/6), S.Integers)
img10 = ImageSet(Lambda(n, 2*n*pi + pi/6), S.Integers)
Union(img1, img2, img3, img4, img5, img6, img7, img8, img9, img10)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment