Maybe I misremembered how it works. If it ever returns True based on
floating point evaluation alone then it is possible for it to be wrong.

Aaron Meurer

On Wed, Jan 27, 2016 at 7:25 PM, Chris Smith <[email protected]> wrote:

> I believe it is the intention that `equals` never (modulo errors in SymPy)
> returns True for questionable expressions. Are you aware of results to the
> contrary?
>
> On Saturday, January 16, 2016 at 12:43:22 AM UTC-6, Aaron Meurer wrote:
>
>> equals does a heuristic check using random floating point evaluation.
>> That obviously doesn't fit for PermutationGroup or O, but I think it
>> makes sense for an equals method on those objects to do mathematical
>> equality. For regular expressions we also recommend checking if
>> simplify(a - b) is 0, but that doesn't work in this case either.
>>
>> For O(), I believe the best way to check equality is to check
>> a.contains(b) and b.contains(a). For a permutation group I'd imagine
>> there are different algorithms depending on the representation of the
>> group so an equals method probably makes sense as an abstraction.
>>
>> The key thing with equals is that you either have to stipulate that a
>> True answer could be wrong (which is what Expr.equals does, since
>> random numerical testing doesn't prove two expressions are equal), or
>> allow it to return True, False, or None, like the assumptions system
>> does.
>>
>> Aaron Meurer
>>
>>
>>
>> On Sat, Jan 16, 2016 at 12:48 AM, Gaurav Dhingra <[email protected]>
>> wrote:
>> > Hi everyone,
>> >
>> >    I was interested to know what would be a good answer to the
>> question:
>> >  Q. How to check mathematical equality of objects in SymPy? (Here the
>> object
>> > is general, can be `PermutationGroup`, equality of `Order` or any other
>> > object possible)
>> > like mathematically `O( log(n!) , (n, oo) )` equals `O( n*log(n), (n,
>> oo)
>> > )`)   -> currently not done in SymPy )
>> >
>> >  For above question i read some past archives, one of them being:
>> >
>> https://groups.google.com/forum/#!searchin/sympy/Mathematical$20equality/sympy/nK7UjJx28J4/LEsdy_Otl90J
>> > Especially the @mrocklin 's comment.
>> > I also beforehand thought of `.equals` method ( definetly not good to
>> go
>> > with `==` ). But i suspect, since the mathematical equality in Symbolic
>> > system can be very difficult to check,
>> > so defining `.equals` would be difficult for every object also, but for
>> some
>> > objects it can be possible.
>> >
>> > The other thing i thought of is `.rewrite` methods.
>> > So in general what would be the answer to the above question? Perhaps
>> some
>> > light upon this will be helpful.
>> >
>> > Thanks
>> > Gaurav Dhingra (gxyd)
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "sympy" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an
>> > email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at https://groups.google.com/group/sympy.
>> > To view this discussion on the web visit
>> >
>> https://groups.google.com/d/msgid/sympy/5a91154a-eb2a-4b5f-ab6a-9dc32b4779eb%40googlegroups.com.
>>
>> > For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/f69f4ba4-8b2d-4ee3-b6eb-d7579d74b7e8%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/f69f4ba4-8b2d-4ee3-b6eb-d7579d74b7e8%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6KPX6NTx-Awa2X9Yq-f2uSzURZSO8fufJVqu4epguD9fg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to