IRC channel logs

2014-11-15.log

back to list of logs

***dje is now known as xdje
***fangism is now known as fangism-hongry
<ijp>mark_weaver: do you know what the current state of the art for square matrix exponentiation is?
<mark_weaver>ijp: do you mean matrix^k, or e^matrix ?
<mark_weaver>I learned a rather interesting way to compute e^matrix, but as for matrix^k, I don't know of a better way than the usual exponentiation algorithm that does O(log(k)) matrix multiplications
<mark_weaver>but I'm hardly an expert in this area, so the fact that I don't know a better way doesn't mean much.
<mark_weaver>See https://en.wikipedia.org/wiki/Matrix_exponential for some info about e^matrix
<sethalves>this is the r7rs branch? http://git.savannah.gnu.org/gitweb/?p=guile.git;a=log;h=r7rs-wip
<sethalves>i guess it must be
<sethalves>wip for work-in-progress?
<ijp>yes
<ijp>mark_weaver: I was meaning matrix^k, I had been thinking about the "multiplicationless" way by taking advantage of the cayley-hamilton theorem, but after thinking about it more, it's not really a good solution, particularly for large matrices, as it requires more space
<ijp>I know there is the other method by decomposing to a diagonal matrix and exponentiating that, but IIRC that doesn't work in general
<sethalves>that branch builds and runs. is there a command-line switch or such that I need to make it act as a r7rs scheme?
<ijp>pass
<sethalves>it seems to understand (import (scheme base)) and loads module/scheme/base.scm, but errors out at the first define inside the begin
<jmd>How long does it take to build guile?
<ijp>jmd: master or stable?
<ijp>master takes like half an hour here, stable would be much quicker
<jmd>You must have some very fast hardware :)
<ijp>jmd: on my old computer I couln't even build master :)
<jmd>I've been building 2.0.11 for the last hour-and-a-half
<sethalves>don't watch it
<wingo>jmd: what bdw-gc do you have?
<wingo>jmd: did it progress any farther? there is a bug with an old bdw-gc that causes a hang
<jmd>wingo: Its finished now.
<ArneBab>ijp: I think you can decompose everything to a diagonal matrix by singular value decomposition, but that’s extremely expensive.
<mark_weaver>sethalves: r7rs-wip is not really ready for public usage yet, but if you want to get a mostly working R7RS-repl with it, first you need to set the associated reader and printer options:
<mark_weaver>(read-enable 'r6rs-hex-escapes) (read-enable 'hungry-eol-escapes) (read-enable 'r7rs-symbols) (print-enable 'r7rs-symbols) (print-enable 'datum-labels)
<mark_weaver>then, from the REPL, do this: (module-add! (resolve-module '(r7rs-user)) 'import (module-variable (resolve-module '(guile)) 'import)
<mark_weaver>and then: ,m r7rs-user
<mark_weaver>and then you'll be in a REPL that has nothing but 'import' defined, so you can proceed to import the appropriate modules.
<mark_weaver>the first thing you're likely to notice is that module names like (srfi 1) are not yet supported. You'll have to import (srfi :1) instead (r6rs-style)
<mark_weaver>other than that, the remaining omissions are mostly obscure, and you'll probably be good to go. I'd be curious to hear how it goes!
<mark_weaver>taylanub: ^^ this might also be of interest to you.
*mark_weaver goes afk
<sethalves>thanks, I'll try it
<taylanub>ArneBab: I just stumbled upon https://gitorious.org/guile-bench/guile-bench/ Does it work? Will you send it to the maintainer of the benchmarksgame page?
<ArneBab>taylanub: I did not get it to work :(
<taylanub>ah, ok
<taylanub>ArneBab: are you just missing benchmark implementations in Guile, or was there something wrong with the benchmark framework?
<ArneBab>taylanub: I would just have to port the benchmarks to guile
<ArneBab>(IIRC they are mostly the racket-scripts)
<ArneBab>problem: I saw here how big the difference gets between a bad but working implementation and a masterful implementation. For wisp string-handling it was factor 20…
<taylanub>ok
<taylanub>by the way if anyone knows how to make merge requests on Gitorious, please teach me and sethalves :)
***sethalve_ is now known as sethalves
***jjmarin_ is now known as jjmarin
***cluck` is now known as cluck
<sethalves>mark_weaver -- do you expect to support (import (srfi 1)), or should I go through my code and add cond-expands for guile's imports?
<sethalves>(the r7rs-setup incantation you indicated seem to work for me)
<mark_weaver>sethalves: yes, certainly we will support (import (srfi 1))
<mark_weaver>I just haven't gotten around to doing it yet.