So recently I've been avoiding my research and instead working on SymPy. In particular I've been playing with sets.
I've been cleaning up how sets intersect with each other<https://github.com/sympy/sympy/pull/1133> . I've also been building a method to define new sets as algebraic expressions of other sets<https://github.com/mrocklin/sympy/tree/countable_set>. Currently I'm using the word Isomorphic for thus but ExpressionSet might also be appropriate. An isomorphic is a combination of a lambda acting on a base set. Here are two examples for clarity. In [2]: squares = Isomorphic(Lambda(x, x**2), S.Naturals) In [4]: FiniteSet(1,2,3,4,5,6,7,8,9,10).intersect(squares) Out[4]: {1, 4, 9} In [5]: r, th = symbols('r, theta', real=True) In [6]: L = Lambda((r, th), (r*cos(th), r*sin(th))) In [7]: halfcircle = Isomorphic(L, Interval(0, 1)*Interval(0, pi)) I have two questions: 1) What is a good name for what I'm currently calling Isomorphic? 2) Where should all this code live? Currently sets are part of the core. I think this is because Intervals are used by some core code. Things like Isomorphic don't seem that central to SymPy though and should maybe be in a module. Should sets live outside the core? Inside the core? Should we split them up somehow into coresets and fancysets? Best, -Matt -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
