tag:blogger.com,1999:blog-11295132.post115661442411547778..comments2014-09-23T07:24:59.513-07:00Comments on A Neighborhood of Infinity: Algebraic Topology in HaskellDan Piponihttps://plus.google.com/107913314994758123748noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-11295132.post-80490150031263528452013-03-25T10:29:00.189-07:002013-03-25T10:29:00.189-07:00Hi!
First, great thanks for the nice post. Sadly, ...Hi!<br />First, great thanks for the nice post. Sadly, I cannot access the "notes" mentioned in the post any more. Can you give me some hint where one can find them?<br />Thanks a lot!<br />BestAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1157478967531709532006-09-05T10:56:00.000-07:002006-09-05T10:56:00.000-07:00bandika,I found the paper online. It gives all of ...bandika,<BR/><BR/>I found the paper online. It gives all of the code. Unfortunately it's 20 years since I last used APL so I couldn't actually read it.<BR/><BR/>I was recently surprised to find that people are now autonatically computing de Rham cohomology. Simplicial homology is very 'discrete' making it easy to code up. But de Rham cohomology is very different.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1157473170323143852006-09-05T09:19:00.000-07:002006-09-05T09:19:00.000-07:00There was a long time ago a paper by JO Shallit, "...There was a long time ago a paper by JO Shallit, <BR/>"Computational Simplicial Homology in APL" which appeared in the 1982 International Conference on APL. The paper quotes as the originator of this approach 2 papers by Pinkerton which appeared in "Mathematical Algorithms" in 1966. <BR/>You must also take a look at Lefschetz's books which still retain this flavor. <BR/><BR/>You must look over the Internet as there are some Maple implementations of this approach. <BR/><BR/>However, it would be very interesting if we can formalize the categorical approach too.bandikahttp://www.blogger.com/profile/01514797568776097118noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156782485803378092006-08-28T09:28:00.000-07:002006-08-28T09:28:00.000-07:00Someone on reddit pointed out that the algorithm I...Someone on reddit pointed out that the algorithm I need, to work over Z instead of Q, is reduction to <A HREF="http://en.wikipedia.org/wiki/Smith_normal_form" REL="nofollow">Smith normal form</A>.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156719324782554542006-08-27T15:55:00.000-07:002006-08-27T15:55:00.000-07:00slava,I had a look at your code. Your language is ...slava,<BR/><BR/>I had a look at your code. Your language is awesome! (I've always liked Forth.) And I like your homology code. It's superfically similar to mine in places - like you have a dmatrix function. But you've done things properly with hashes. Nice.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156711476286376312006-08-27T13:44:00.000-07:002006-08-27T13:44:00.000-07:00I'm working on some code to compute the cohomology...I'm working on some code to compute the cohomology of Lie algebras in my programming language <A HREF="http://factorcode.org" REL="nofollow">Factor</A>. You can take a look at <A HREF="http://factorcode.org/repos/Factor/contrib/topology/" REL="nofollow">the code</A>.Slava Pestovhttp://www.blogger.com/profile/06320065558397702966noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156698604267868392006-08-27T10:10:00.000-07:002006-08-27T10:10:00.000-07:00alpheccar,There are no arrays in that code. All of...alpheccar,<BR/><BR/>There are no arrays in that code. All of the algorithms work sequentially so I can use lists.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156694693899321852006-08-27T09:04:00.000-07:002006-08-27T09:04:00.000-07:00But you have not used the Haskell Array module in ...But you have not used the Haskell Array module in your code ?alpheccarhttp://www.blogger.com/profile/16135510633295968366noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156689300703057502006-08-27T07:35:00.000-07:002006-08-27T07:35:00.000-07:00augustss,With Haskell it's very tempting to keep s...augustss,<BR/><BR/>With Haskell it's very tempting to keep simplifying code by using more and more higher order functions. But eventually you just have to stop being obsessed. Still, what changes might you make?<BR/><BR/>Mikael,<BR/><BR/>1. I was wondering about fields other than Q myself. I think it might work fine as my rank algorithm is really stupid - it just uses +, *, -, / and zero detection. (A real rank algorithm would probably do smarter pivoting and assume that the field has a norm.) What I really want to is to work over abelian groups.<BR/><BR/>2. The performance of this code is bad. The rank algorithm is crude. Also it does a lot of equality testing between non-trivial objects. Some kind of hashing of the vertex and simplex labels might speed things up. Oh...and the vectors aren't simplified - ie. it stores a+b+a as a+b+a without simplifying it to 2a+b. I chose simplicity over efficiency.<BR/><BR/>3. It starts going annoyingly slow with just (bary torus), not only for Gigs of matrix. Haskell's big weakness is array operations.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156684731753662332006-08-27T06:18:00.000-07:002006-08-27T06:18:00.000-07:00I always like your blog entries and this is no exc...I always like your blog entries and this is no exception. It's fun to see people use Haskell in their own fields and appreciate the power.<BR/><BR/>BTW, your code could be even shorter by using a few more predefined Haskell functions.augustsshttp://www.blogger.com/profile/05153404423721072935noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156683217497533152006-08-27T05:53:00.000-07:002006-08-27T05:53:00.000-07:00Whoa!I wish I had this post in front of me four ye...Whoa!<BR/><BR/>I wish I had this post in front of me four years ago, when I started with my poincare project (Mathematical Reviews: MR2227050, ArXiv: math.AC/0502348).<BR/><BR/>My immediate questions to this expose are:<BR/>1) Does the algorithm work for finite fields? Say giving characteristic as a parameter and then calculating matrix rank over Q or over Z/p depending on the given characteristic.<BR/>2) How does it compare complexity-wise? Is it fast enough that you'd want to do Large Things with it?<BR/>3) How does hugs or ghci work with memory management? If I could expect ending up with several gigs worth of a matrix, would the interpreter choke?Michihttp://www.blogger.com/profile/04492458231737217248noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156640082733668472006-08-26T17:54:00.000-07:002006-08-26T17:54:00.000-07:00alpheccar,I can't find the original paper on I rea...alpheccar,<BR/><BR/>I can't find the original paper on I read on "fat graphs" by RC Penner. It was actually pretty tough, 3 or 4 of us read it together in a reading seminar. It needed both physicists and pure mathematicians working together for us to make sense of it. But there are some really neat ideas buried in there that aren't too hard to understand and maybe at some point someone will write the easy version.<BR/><BR/>Ocaml isn't bad. You can get good performance out of ocaml. But ocaml has ugly syntax and I its lack of operator overloading is annoying.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-1156625037099176292006-08-26T13:43:00.000-07:002006-08-26T13:43:00.000-07:00I am a newcomer to Haskell. I just started my stud...I am a newcomer to Haskell. I just started my study a few weeks ago and I discovered your blog while I was looking for some info about monads.<BR/><BR/>I like that kind of posts because they are not just examples to learn Haskell so it is more interesting and we learn a bit more than just Haskell.<BR/><BR/>The more I learn about this language and the more I like it. I spent years using Ocaml which is also a very good language but I think Haskell is much more elegant.<BR/><BR/>I am totally lost with the fat graphs and the homology groups for poset :-) But, slides are generally not enough to start learning about a topic.alpheccarhttp://www.blogger.com/profile/16135510633295968366noreply@blogger.com