On Jun 22, 2012, at 10:13 PM, Mateusz Paprocki <[email protected]> wrote:

Hi,

On 23 June 2012 01:25, [email protected] <
[email protected]> wrote:

> > simplify() is kind of a "catch all" simplification function, so
> > perhaps it should include refine() as well. refine() is still
> > relatively new, so I don't think it's been fleshed out beyond
> > "assumptions based simplification".
>
> Can we make this statement "the official rule"? I mean can we promise that:
>
> - "simplify() makes only general simplifications without checking
> assumptions"
> - "refine() makes only assumptions based simplifications"
>

We had this discussion with Ondrej some time ago and the conclusion, as far
I remember, is as follows. refine() takes an expression and rewrites it to
a new form wrt assumptions. This usually means that the new expression will
be shorter than the old one but refine() doesn't measure that, nor takes
any measures to optimize the size. simplify() can also take assumptions
into account (or actually output from refine()), but it is an optimization
function which (should, but it's not entirely true right now) find the
shortest equivalent output form. It means it can't blindly apply math
formulas as refine() can. simplify() isn't that smart currently, but this
is how it should work. Summing up:

- simplify() finds the shortest possible output form considering
assumptions and measures of complexity
- refine() applies assumptions to obtain specialized form of input
expression


+1. Can you give an example of where refine() might actually make an
expression bigger, though?

Aaron Meurer



>
> And consider different behavior a bug.
>
> Also "when and only when some kwarg with assumptions is provided to
> simplify() it will call refine()".
>
> --
> 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.
>
>
Mateusz

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