<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>saptman</title>
	<atom:link href="http://saptman.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://saptman.wordpress.com</link>
	<description>My symply awesome gsoc summer</description>
	<lastBuildDate>Sun, 14 Aug 2011 21:25:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='saptman.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>saptman</title>
		<link>http://saptman.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://saptman.wordpress.com/osd.xml" title="saptman" />
	<atom:link rel='hub' href='http://saptman.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Summer is ending :(</title>
		<link>http://saptman.wordpress.com/2011/08/14/summer-is-ending/</link>
		<comments>http://saptman.wordpress.com/2011/08/14/summer-is-ending/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 21:25:54 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=32</guid>
		<description><![CDATA[A beautiful summer is coming to an end and I am at the last leg of my Gsoc. I must apologize for the erratic posts but its mostly because I was &#8220;busy&#8221; with other things (mostly enjoying myself in the US of A, eating steaks, going out for barbecues, and enjoying the beautiful Maryland summer&#160;&#8230; <a href="http://saptman.wordpress.com/2011/08/14/summer-is-ending/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=32&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A beautiful summer is coming to an end and I am at the last leg of my Gsoc. I must apologize for the erratic posts but its mostly because I was &#8220;busy&#8221; with other things (mostly enjoying myself in the US of A, eating steaks, going out for barbecues, and enjoying the beautiful Maryland summer weather.)</p>
<p>In the last few weeks I spent a bit of time cleaning up Gray code. It went through a few API changes and I hope to have the subsets and partitions branches merged in within this week. I also implemented a demo of the Permutations branch that involves Polyhedron rotations. I hope to show one involving a Rubik&#8217;s cube when I have the Permutation group module in (more on that in a while). I also implemented a residue class and a residue group module as that was missing in the number theory branch of Sympy. That branch needs an overhaul both in terms of functionality as well as the code that is already there and I hope I can get some momentum going in that direction with the code I have written. I also wrote some generators for Permutation groups. This is fairly easy to do now, the basic algorithm is to generate all permutations and filter out those that do not fit the criteria. Of course, generating all permutations is inefficient, and some generators have certain special properties that we can use. For example, the Cyclic group can be generated in linear time as that simply involves a single rotation. Alternating group however requires the generation of all even permutations. Some group generators will probably make use of the specialized algorithms that have been implemented in the iterables section of Sympy.</p>
<p>I have also managed to implement the Schreier sims algorithm but its extremely ugly and unpythonic for now. Algorithms for generating orbits and stabilizer chains are also there but they are fairly inefficient. I hope to clean them up and submit them for a pull request in this week before the hard pencils down date.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=32&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/08/14/summer-is-ending/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Update</title>
		<link>http://saptman.wordpress.com/2011/07/31/update-2/</link>
		<comments>http://saptman.wordpress.com/2011/07/31/update-2/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 01:45:27 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=29</guid>
		<description><![CDATA[This week I implemented generational routines for Fixed density Lyndon words, necklaces and Debruijn cycles. Its still not completely tested so caveat emptor! You can check it out in my iterables branch. Apart from this I got the Permutations branch merged in this week. This was a long standing pull request and will allow folks&#160;&#8230; <a href="http://saptman.wordpress.com/2011/07/31/update-2/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=29&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This week I implemented generational routines for Fixed density Lyndon words, necklaces and Debruijn cycles. Its still not completely tested so caveat emptor! You can check it out in my iterables branch. Apart from this I got the Permutations branch merged in this week. This was a long standing pull request and will allow folks to do all sorts of stuff that combinatorica allows for Permutations. Currently some graph related stuff is missing but that will be taken care of once I clean up my NetworkX branch. I still need to clean up the Partitions and Subsets pulls which will add another large chunk to the combinatorics module.</p>
<p>I will probably spend this week cleaning up older pull requests rather than creating newer ones. Even so, those interested can keep track of my permutation_groups branch where most of my work related to that will go.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=29&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/07/31/update-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Permutation groups and Prufer codes</title>
		<link>http://saptman.wordpress.com/2011/07/23/permutation-groups-and-prufer-codes/</link>
		<comments>http://saptman.wordpress.com/2011/07/23/permutation-groups-and-prufer-codes/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 15:21:39 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=26</guid>
		<description><![CDATA[The last week was a bit hectic. It was the first time I had even been on a 13 hour flight. I had implemented Prufer codes before I left, which is basically a one-to-one mapping to labelled trees. Using Prufer codes, we can generate trees in an ordered manner, rank and unrank them and do&#160;&#8230; <a href="http://saptman.wordpress.com/2011/07/23/permutation-groups-and-prufer-codes/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=26&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The last week was a bit hectic. It was the first time I had even been on a 13 hour flight.</p>
<p>I had implemented Prufer codes before I left, which is basically a one-to-one mapping to labelled trees. Using Prufer codes, we can generate trees in an ordered manner, rank and unrank them and do all sorts of other cool stuff. By placing some restrictions on the enumerated Prufer codes, we can get the number of spanning trees of a complete bipartite graph. Apart from Prufer codes, I was also fixing up the algorithms I had implemented for bracelets, fixed-density and fixed-content necklaces, Lyndon brackets (these form the basis for free Lie algebra), meanders and stamp foldings. These are really specialized routines but it was decided in the mailing list that it would be really helpful for others to read.</p>
<p>Once I get the Permutations branch in, I can begin work on the Permutation Groups module, so that will be my immediate task.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=26&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/07/23/permutation-groups-and-prufer-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Networkx integration</title>
		<link>http://saptman.wordpress.com/2011/07/10/networkx-integration/</link>
		<comments>http://saptman.wordpress.com/2011/07/10/networkx-integration/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 03:18:51 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=24</guid>
		<description><![CDATA[So this week I managed to integrate the work I had done on the generation algorithm for iterables. It seems that people want implementations of complex objects for the sake of completeness as well as for its educative value. More on this later. So networkx integration is almost done. The code is a clinical wrapper&#160;&#8230; <a href="http://saptman.wordpress.com/2011/07/10/networkx-integration/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=24&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>So this week I managed to integrate the work I had done on the generation algorithm for iterables. It seems that people want implementations of complex objects for the sake of completeness as well as for its educative value. More on this later.</p>
<p>So networkx integration is almost done. The code is a clinical wrapper over the networkx API exposed via a Graph object which is derived from the Basic class. Most of the algorithms are accessed via properties of the Graph. Doctests and docstrings are currently missing, I plan on adding them later. Currently I am working on a particularly hairy algorithm for generating all spanning trees. If things do not work soon enough I&#8217;ll just put in the brute force technique. Another thing not present right now is pygraphviz integration but this is a matter of a single function call. A related generation algorithm that will get integrated in iterables was one to generate all rooted oriented forests.</p>
<p>In the upcoming week I will move on to Permutation groups. Initially, I will need to revise my notes on group theory and take a look at some texts for computational group theoretic algorithms. Knuth&#8217;s book has material on Sims tables as well so lets see what I can glean from that front. Other than that, I hope to clean up my pull requests that have been lying around for so long and get them integrated. Concurrently, I intend to publish the algorithms I had written for Lyndon, Dyck gray codes, various necklaces, etc.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=24&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/07/10/networkx-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Update</title>
		<link>http://saptman.wordpress.com/2011/07/03/update/</link>
		<comments>http://saptman.wordpress.com/2011/07/03/update/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 04:47:17 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=21</guid>
		<description><![CDATA[I spent the last week implementing some rather esoteric combinatorial objects such as Necklaces, Lyndon words and Chord diagrams. Up until now, all such generation algorithms were being dumped in the /sympy/utilities/iterables.py file. With the introduction of slightly more complex generation algorithms community member Chris Smith raised the question of the underlying motivation of such&#160;&#8230; <a href="http://saptman.wordpress.com/2011/07/03/update/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=21&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I spent the last week implementing some rather esoteric combinatorial objects such as Necklaces, Lyndon words and Chord diagrams. Up until now, all such generation algorithms were being dumped in the /sympy/utilities/iterables.py file. With the introduction of slightly more complex generation algorithms community member Chris Smith raised the question of the underlying motivation of such algorithms and if they belong there in the first place. This is an interesting discussion, do we implement all the algorithms or do we simply provide some of the tools to the user who can use them to develop these routines himself. Its a question that I am at a loss to answer and I will leave it to the community to decide. IMO, the algorithms should be there if only for their educative value. I have postponed the development of such advanced combinatorial structures for now as they are not covered by my proposal. If it elicits enough interest later I can always implement them.</p>
<p>The other task that I was going to look up as networkx integration. This was rather easy. I have used pygraphviz for graph drawing. My mentor, Haz, suggested that I hook up some sort of a ascii drawer as well for the graph but that would look hideous IMO. At any rate, I could not find a decent ascii graph printing package. Once the code for this is reasonably polished, I will probably integrate some of David Eppstein&#8217;s python routines for various graph operations.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=21&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/07/03/update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Derangements, bell permutations, involutions and more</title>
		<link>http://saptman.wordpress.com/2011/06/25/derangements-bell-permutations-involutions-and-more/</link>
		<comments>http://saptman.wordpress.com/2011/06/25/derangements-bell-permutations-involutions-and-more/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 17:17:03 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=18</guid>
		<description><![CDATA[The last few days I have been implementing mostly generic iterables algorithms to generate various combinatorial objects such as Bell permutations, involutions and derangements, cyclic permutations and up-and-down permutations. As I have mentioned before, this goes more into the exercises portion of TAOCP. This is why the algorithms implemented for these routines are not the&#160;&#8230; <a href="http://saptman.wordpress.com/2011/06/25/derangements-bell-permutations-involutions-and-more/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=18&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The last few days I have been implementing mostly generic iterables algorithms to generate various combinatorial objects such as Bell permutations, involutions and derangements, cyclic permutations and up-and-down permutations. As I have mentioned before, this goes more into the exercises portion of TAOCP. This is why the algorithms implemented for these routines are not the most optimized versions but are good enough. Another point to note is that these areas are still an active topic of research and many new papers are available that show how to generate these kinds of specialized combinatorial objects in a more efficient manner.</p>
<p>One favorite example of mine is this paper by Vincent <span style="font-family:Times;font-size:small;">Vajnovszki</span> in which he introduces the ECO operator <a href="http://www.dmtcs.org/dmtcs-ojs/index.php/dmtcs/article/download/704/2887" rel="nofollow">http://www.dmtcs.org/dmtcs-ojs/index.php/dmtcs/article/download/704/2887</a></p>
<p>Although several efficient, loopless, constant amortized time algorithms exist, they are all fairly distinct in their approaches. The above paper seeks to unify such structures using the ECO operator as a common theme. Another theme the author has addressed is the generation of p-ary Dyck Gray codes. To implement this I will be leveraging the already existing gray code infrastructure. To what extent though, I am not too sure.</p>
<p>There has also been a lot chatter lately on a Graph theory module for Sympy. Before the Gsoc started I had already written some code that tried to interface networkx and pygraphviz with Sympy and this sort of served as a prototype of the project. Anyway, I did mention that I would be integrating networkx into Sympy for implementing spanning tree generation. There is also the fact that a lot of stuff in the previous modules that is implemented by Mathematica that is incomplete because there is no Graph module. The presence of a graphing module, whether native or imported, is almost axiomatic to any complete CAS. Thus integrating networkx will be my task for the following week.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=18&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/06/25/derangements-bell-permutations-involutions-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Week 3</title>
		<link>http://saptman.wordpress.com/2011/06/15/week-3/</link>
		<comments>http://saptman.wordpress.com/2011/06/15/week-3/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 01:50:32 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=15</guid>
		<description><![CDATA[This week I continued with my work on partitions. The multiset algorithm I had implemented earlier had bugs involving overgeneration and generating incorrect output for some cases. Those were fixed by adding a cache, although the problem of overgeneration remained. That can be fixed to an extent by sorting in the canonical order before we&#160;&#8230; <a href="http://saptman.wordpress.com/2011/06/15/week-3/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=15&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This week I continued with my work on partitions. The multiset algorithm I had implemented earlier had bugs involving overgeneration and generating incorrect output for some cases. Those were fixed by adding a cache, although the problem of overgeneration remained. That can be fixed to an extent by sorting in the canonical order before we put it there but I would prefer if the implementation can be made a bit more robust. This algorithm was quite difficult to implement and thanks go out to smichr, haz and mwhansen for all their helpful comments and suggestions.</p>
<p>I also implemented a rather cute partitioning algorithm that breaks up numbers into powers of 2. This is referenced as an exercise in Knuth. In fact, since most of combinatorica&#8217;s functionality as far as permutations, partitions and subsets go, have been replicated, I am veering off into TAOCP&#8217;s exercises. These extend the theory developed in a rich and beautiful manner. A nice example is that of a partition lattice. This is basically a poset where the ordering between elements is decided on the basis of which majorizes the other. Majorization has been discussed earlier, so its a matter of generating all the partitions and figuring out an algorithm that can rapidly populate a lattice based this comparison measure. Comparisons between general partitions will be on the basis of their rank for now although a concept similar to majorization has been discussed for them in TAOCP.</p>
<p>Other things that were implemented this week was stuff related to restricted growth strings and Ferrers diagram which is a cute way to visualize a partition. RGS are fun because they are the basis of another type of gray codes. Currently I have implemented routines to extract the partition from the RGS, convert a partition to an RGS, enumerating all the RGS and ranking and unranking RGS. This will form the basis of stateful generation of lexicographically ordered partitions because I could not really find any other way of doing it cleanly.</p>
<p>Some pending work that I still need to do however is ranking and unranking ksubsets as well as their stateful generation. Once I have all of these things taken care of, hopefully I can move on to trees and graphs.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=15&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/06/15/week-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Week 2</title>
		<link>http://saptman.wordpress.com/2011/06/06/week-2/</link>
		<comments>http://saptman.wordpress.com/2011/06/06/week-2/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 01:25:59 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=12</guid>
		<description><![CDATA[The last week I worked mainly on subsets, gray codes and partitions. Most of the functionality for subsets and gray codes is complete and a lot of progress has been made on the partitions front as well. Since last week Chris Smith updated the integer partition algorithm to include compositions as well. So apart from&#160;&#8230; <a href="http://saptman.wordpress.com/2011/06/06/week-2/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=12&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The last week I worked mainly on subsets, gray codes and partitions.</p>
<p>Most of the functionality for subsets and gray codes is complete and a lot of progress has been made on the partitions front as well. Since last week Chris Smith updated the integer partition algorithm to include compositions as well. So apart from listing all the partitions, it also lists partitions of a specific size as well as partitions whose elements don&#8217;t exceed a particular value.</p>
<p>Today I wrote the multiset partitions algorithm prescribed in Knuth. This algorithm effectively generates multipartitions in decreasing lexicographic order. Apart from that, I implemented functionality for generating restricted growth strings from partitions and generating partitions from restricted growth strings. My next task will be to investigate the relationships between Gray codes and partitions. My primary reference for this is a paper by Frank Ruskey who demonstrates the construction of a simple recursive gray code which utilizes the restricted growth strings of the partition.</p>
<p>Regarding gray codes themselves, I basically implemented a class that describes the basic functionality of a binary reflected gray code. Various tasks such as generating the next and previous gray code, ranking and unranking, etc have been implemented. Other gray code implementations need only inherit the gray code class and override the relevant functions. Functionality demonstrating the interplay between gray codes and subsets has also been implemented. The additions to subsets have been quite comprehensive. You can generate subsets in a binary order, lexicographically and gray code ordered. Ranking and unranking can also be done in a similar manner. Functionality to generate ksubsets has also been implemented. Generating, ranking and unrankng ksubsets is still incomplete and is currently my next task that I hope to undertake.</p>
<p>In the midst of all this, I will need to clean up my commit history for permutations and add tests for the partitions branch. Hopefully I will get on to trees later this week.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=12&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/06/06/week-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Week 1</title>
		<link>http://saptman.wordpress.com/2011/05/28/week-1/</link>
		<comments>http://saptman.wordpress.com/2011/05/28/week-1/#comments</comments>
		<pubDate>Sat, 28 May 2011 17:21:44 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=6</guid>
		<description><![CDATA[I had been working on implementing the functionality provided by combinatorica for the Permutation object. Most of the features provided by combinatorica are now implemented for Sympy but a few outstanding issues need some resolving. The most egregious of which is the lack of a next() and a prev() function. Some of the extras that&#160;&#8230; <a href="http://saptman.wordpress.com/2011/05/28/week-1/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=6&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I had been working on implementing the functionality provided by combinatorica for the Permutation object. Most of the features provided by combinatorica are now implemented for Sympy but a few outstanding issues need some resolving. The most egregious of which is the lack of a next() and a prev() function.</p>
<p>Some of the extras that have been implemented however are a few distance metrics, addition and subtraction of permutations on the basis of their Lehmer codes (inversion vectors) and linear time non lexicographic ranking and unranking.</p>
<p>Users will note that for now the Permutation class only supports numbers ordered from 0 to n. This design is deliberate as it significantly simplifies the implementation and keeps everything consistent. If one wishes to use the permutation class for objects other than integers then they would need to provide for some sort of mapping themselves. I will probably create a tutorial illustrating this in the future.</p>
<p>Regarding the work on partitions, thanks go out to community member Christopher Smith for correcting an implementation of mine of the k partitions and compositions algorithm. I have reposted the k partitions algorithm and started work on the integer partitions module. Currently we can compare two integer partitions based on the concept of majorizing which says that a partition majorizes another if the first k sum of its elements is greater than the first k sum of the other&#8217;s elements for all k &gt; 0.</p>
<p>More stuff coming up&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=6&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/05/28/week-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://saptman.wordpress.com/2011/05/12/hello-world/</link>
		<comments>http://saptman.wordpress.com/2011/05/12/hello-world/#comments</comments>
		<pubDate>Thu, 12 May 2011 09:45:46 +0000</pubDate>
		<dc:creator>saptman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://saptman.wordpress.com/?p=1</guid>
		<description><![CDATA[Hello world! This blog is intended to chronicle what I perceive is going to be an awesome summer. I have been selected in the GSoC program for the 2011 edition under Sympy. My task this summer will be to implement a combinatorics package. More details to follow.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=1&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Hello world!</p>
<p>This blog is intended to chronicle what I perceive is going to be an awesome summer. I have been selected in the GSoC program for the 2011 edition under Sympy. My task this summer will be to implement a combinatorics package.</p>
<p>More details to follow.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saptman.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saptman.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saptman.wordpress.com&#038;blog=23040289&#038;post=1&#038;subd=saptman&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saptman.wordpress.com/2011/05/12/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ddb5a3902c6c8b0bcb70533f774dfc01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">saptman</media:title>
		</media:content>
	</item>
	</channel>
</rss>
