<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Refine module</title>
	<atom:link href="http://fseoane.net/blog/2009/refine-module/feed/" rel="self" type="application/rss+xml" />
	<link>http://fseoane.net/blog/2009/refine-module/</link>
	<description>mostly about programming, machine learning and such</description>
	<lastBuildDate>Sun, 06 Nov 2011 19:17:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: Aaron Meurer</title>
		<link>http://fseoane.net/blog/2009/refine-module/#comment-28599</link>
		<dc:creator>Aaron Meurer</dc:creator>
		<pubDate>Wed, 19 Aug 2009 02:16:32 +0000</pubDate>
		<guid isPermaLink="false">http://fseoane.net/blog/?p=162#comment-28599</guid>
		<description>That&#039;s great.  Clearly, this is better than the old system.  Of course, the real work would be modifying refine to do things with those assumptions.  For example, the following should return 0:

&gt;&gt;&gt; refine(f(x, y).diff(x, y) - f(x, y).diff(y, x), Assume(f(x, y), Q.continuous))

And of course, once we have an interval class proper, you would assumedly be able to assign that assumption (or any assumption really) over an iterval.  There could be real power in that, especially if it can gather some of those things automatically, like knowing that sin(x)/x has a discontinuity at 0.  

You could probably make a whole new GSoC project out of just adding in assumptions next year :)</description>
		<content:encoded><![CDATA[<p>That&#8217;s great.  Clearly, this is better than the old system.  Of course, the real work would be modifying refine to do things with those assumptions.  For example, the following should return 0:</p>
<p>&gt;&gt;&gt; refine(f(x, y).diff(x, y) &#8211; f(x, y).diff(y, x), Assume(f(x, y), Q.continuous))</p>
<p>And of course, once we have an interval class proper, you would assumedly be able to assign that assumption (or any assumption really) over an iterval.  There could be real power in that, especially if it can gather some of those things automatically, like knowing that sin(x)/x has a discontinuity at 0.  </p>
<p>You could probably make a whole new GSoC project out of just adding in assumptions next year <img src='http://fseoane.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fabian</title>
		<link>http://fseoane.net/blog/2009/refine-module/#comment-28560</link>
		<dc:creator>fabian</dc:creator>
		<pubDate>Tue, 18 Aug 2009 00:42:05 +0000</pubDate>
		<guid isPermaLink="false">http://fseoane.net/blog/?p=162#comment-28560</guid>
		<description>Aaron, sure, that would be possible (although it is currently not implemented). f(x) is continuous would look like:

&gt;&gt;&gt; Assume(f(x), Q.continuous)

and diff(f(x, y), x) == diff(g(x, y), y):

&gt;&gt;&gt; Assume(diff(f(x, y), x) == diff(g(x, y), y))

You can see some hints on how to extend the assumption system looking at the code of sympy/queries/__init__.py and the last two examples of sympy/queries/tests/test_query.py, the first one at least should be straightforward to implement.</description>
		<content:encoded><![CDATA[<p>Aaron, sure, that would be possible (although it is currently not implemented). f(x) is continuous would look like:</p>
<p>>>> Assume(f(x), Q.continuous)</p>
<p>and diff(f(x, y), x) == diff(g(x, y), y):</p>
<p>>>> Assume(diff(f(x, y), x) == diff(g(x, y), y))</p>
<p>You can see some hints on how to extend the assumption system looking at the code of sympy/queries/__init__.py and the last two examples of sympy/queries/tests/test_query.py, the first one at least should be straightforward to implement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Meurer</title>
		<link>http://fseoane.net/blog/2009/refine-module/#comment-28550</link>
		<dc:creator>Aaron Meurer</dc:creator>
		<pubDate>Mon, 17 Aug 2009 18:25:38 +0000</pubDate>
		<guid isPermaLink="false">http://fseoane.net/blog/?p=162#comment-28550</guid>
		<description>It looks good, though now it needs expansion.  For example, in the example you give:
&gt;&gt;&gt; refine(exp(I*x*pi), Assume(x, Q.integer))
exp(pi*I*x)

This should return (-1)**x.  

Will the new assumptions system let us implement assumptions like &quot;f(x) is continuous&quot; or &quot;diff(f(x, y), x) == diff(g(x, y), y)&quot;?</description>
		<content:encoded><![CDATA[<p>It looks good, though now it needs expansion.  For example, in the example you give:<br />
&gt;&gt;&gt; refine(exp(I*x*pi), Assume(x, Q.integer))<br />
exp(pi*I*x)</p>
<p>This should return (-1)**x.  </p>
<p>Will the new assumptions system let us implement assumptions like &#8220;f(x) is continuous&#8221; or &#8220;diff(f(x, y), x) == diff(g(x, y), y)&#8221;?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

