Liam Healy ([info]lhealy) wrote,
@ 2009-01-04 15:00:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Entry tags:gsl, lisp

GSLL new version
The new version GNU Scientific Library for Lisp (GSLL) is now available. This library has many mathematical functions used in science and engineering applications. It works on several Lisp implementations.


The most significant changes from the previous version include:


  • All objects are memory managed (garbage collected), which means they can have indefinite extent like any other Lisp object. There is no need to put the object creation in a letm; in fact letm doesn't exist anymore. Use let, or defparameter, etc.
  • All array (vector and matrix) element types that are supported by the platform, CL implementation, CFFI, and GSL, are supported by GSLL.
  • On SBCL both Lisp and C use the same representation for array contents; they are not copied between the two sides. Thanks to Tamas Papp's foreign-friendly arrays for the inspiration.


There have been some function name and argument changes, so users of the previous version will need to update their code. Please use the git repository and discontinue using the old svn repository.

Feedback welcome, here or on the mailing list.




(7 comments) - (Post a new comment)

Congratulations!
(Anonymous)
2009-01-06 12:26 am UTC (link)
This is great news! Especially the incorporation of Tamas' ffas. I got all weak in the knees reading this. I need a cigarette.

(Reply to this) (Thread)

Re: Congratulations!
(Anonymous)
2009-01-06 12:31 am UTC (link)
Oops, this is Glenn Ehrlich.

(Reply to this) (Parent)


(Anonymous)
2009-01-19 08:22 am UTC (link)
I tried to post on the mailing list, but it seems that didn't work. So here's my problem:

(let ((a (make-marray 'single-float :initial-contents
'((2.0 0.0 8.0 6.0 0.0)
(1.0 6.0 0.0 1.0 7.0)
(5.0 0.0 7.0 4.0 0.0)
(7.0 0.0 8.0 5.0 0.0)
(0.0 9.9 0.0 0.0 7.0))))
(v (make-marray 'single-float :dimensions (list 5 5)))
(s (make-marray 'single-float :dimensions 5))
(work (make-marray 'single-float :dimensions 5)))
(sv-decomposition a v s work))

gives me:

Matrix not square matrix V must be square in svd.c at line 70
[Condition of type NONSQUARE-MATRIX]

I tested with linux running SBCL on a 32 and a 64 bit machine.

Thanks

(Reply to this) (Thread)

Double float, argument order
[info]lhealy
2009-01-19 02:49 pm UTC (link)
Most GSL functions are double-float only, including the SVD functions.
Also, the argument order in #'sv-decomposition is a, s, v, work (maybe
this should be changed, but that's the way it is now). Try this:

(let ((a (make-marray 'double-float :initial-contents
		      '((2.0 0.0 8.0 6.0 0.0)
			(1.0 6.0 0.0 1.0 7.0)
			(5.0 0.0 7.0 4.0 0.0)
			(7.0 0.0 8.0 5.0 0.0)
			(0.0 9.9 0.0 0.0 7.0))))
      (v (make-marray 'double-float :dimensions (list 5 5)))
      (s (make-marray 'double-float :dimensions 5))
      (work (make-marray 'double-float :dimensions 5)))
  (sv-decomposition a s v work))

(Reply to this) (Parent)

Mailing list
[info]lhealy
2009-01-19 02:52 pm UTC (link)
Also, about the mailing list: due to spam problems it is a closed list, you must be a subscriber to post. Could that be the reason you couldn't post?

(Reply to this) (Parent)(Thread)

Re: Mailing list
(Anonymous)
2009-01-19 06:01 pm UTC (link)
I did subscribe to the list before posting and got the confirmation mail. Also, I'm listed on the subscribers list.

Thanks for the answer and the nice library

(Reply to this) (Parent)(Thread)

Re: Mailing list
(Anonymous)
2009-01-19 08:35 pm UTC (link)
OK, the lost mail was my fault: I supplied a gmail.com address to the mailing list, but gmail send its mails using the googlemail.com domain.

(Reply to this) (Parent)


(7 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…