I created http://code.google.com/p/sympy/issues/detail?id=3233 for this.

Aaron Meurer

On Wed, Apr 18, 2012 at 8:31 PM, Matthew Rocklin <[email protected]> wrote:
> The universe of FiniteSet is not well defined. The class fulfills two roles
> at the same time (this is bad).
>
> It must interact with Intervals on the real line, so, for example we want
> FiniteSet(1).complement == (-oo, 1) U (1, oo)
>
> But FiniteSets are also used to hold arbitrary objects like FiniteSet(1, 2,
> 'cow'). In this case the universe is implied to be larger. This is not
> clean, but has not yet caused problems (Sets are not used much.)
>
> If you are interested in discrete probability then I suggest SymPy's finite
> random variables in the development branch under sympy.stats. This is a way
> to assign probabilities to elements in a FiniteSet and then ask probability
> questions about them.
>
>
>
> On Wed, Apr 18, 2012 at 9:15 PM, Kjetil brinchmann Halvorsen
> <[email protected]> wrote:
>>
>> thanks!  see below.
>>
>> On Wed, Apr 18, 2012 at 15:47, [email protected]
>> <[email protected]> wrote:
>>>
>>> It would be a strain to say that sympy has a nicely abstracted rule
>>> set. In most of the code all such rules are just a part of the logic
>>> of the methods of the class in question.
>>>
>>> For example (a+a) ---> 2*a is just part of the Add __new__ method.
>>> When you call Add(a,a) it would apply appropriate rules and give you
>>> Mul(2,a).
>>>
>>> There is occasionally discussion about abstracting better such rules,
>>> but this is not yet done.
>>>
>>> So if you want an object that simplifies automatically in a certain
>>> way, just implement the rules in the __new__ method or a helper
>>> function and you will be good to go. It is not the cleanest solution,
>>> but is how most of the stuff is done at the moment.
>>>
>>> I hope that this answers you question.
>>>
>>> BTW, there is a statistics module that implements many useful idioms
>>> from probability theory and there is a set class that will definitely
>>> can be extended if you are interested in helping.
>>
>>
>> Looking into this. For now, most interested in FiniteSet, usefull for
>> discrete probability.
>> But to be usefull, a part of the definition of a FiniteSet should be its
>> Universe, I cannot see it is
>> that now. How should that be done? Extending the definition, as it is now,
>> or
>> assum that the user defines a superclass of FiniteSet (not sure about the
>> Python terminology here...)
>> in a certain way?
>>
>> Kjetil
>>>
>>>
>>> --
>>> 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.
>>>
>>
>>
>>
>> --
>> "If you want a picture of the future - imagine a boot stamping on the
>> human face - forever."
>>
>> George Orwell (1984)
>>
>>
>>
>> --
>> 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.
>
>
> --
> 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.

-- 
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.

Reply via email to