Brilliant! - thank you so much - that works just as it should. Why cannot the input to integration-qagp be simply a list or a vector? As in
(gsll:integration-QAGp 'integration-test-f454 '(0.0d0 1.0d0 (sqrt 2.0d0) 3.0d0) 0.0d0 1.0d-3 1000) or (gsll:integration-QAGp 'integration-test-f454 (vector 0.0d0 1.0d0 (sqrt 2.0d0) 3.0d0) 0.0d0 1.0d-3 1000) I'm not sure (told you I was a newbie!) what grid provides that a list or vector can't. And here's a tiny problem from my tiny brain: suppose the endpoints and singularities are given as a standard Lisp list, S say. Then (I'm using SBCL): (defvar S2) (setf S2 (grid:make-foreign-array 'double-float :dimensions (length S) :initial-contents S)) turns the list into a foreign array grid (is there an easier way?). But then, my attempts to use S2 as input to gaqp produces errors: (gsll:integration-QAGp 'my-fun 'S2 0.0d0 1.0d-3 1000) Basically I need a way of turning a numeric list into input for integration-QAGp. I'll keep fiddling! Many thanks again, Alasdair On Mon, Nov 2, 2015 at 1:34 PM, Liam Healy <lhe...@common-lisp.net> wrote: > On Sun, Nov 1, 2015 at 5:10 AM, Alasdair McAndrew <amc...@gmail.com> > wrote: > >> Hello, >> >> I am using the excellent gsll package (in the first instance), to provide >> an interface to quadpack for the mathematics system FriCAS. I'm slowly >> going through calculus/numerical-integration.lisp one function at a time >> and writing each one into FriCAS as I go. This means writing functions in >> FriCAS's own language SPAD which interface with gsll. >> >> This is made harder by me being a lisp newbie. >> >> However, I've come to integration-QAGP, and I've tried to run the test >> command (having first defined the function it calls). However, all I get >> is errors. >> >> I'm using SBCL in emacs-slime, and I have installed gsll with quicklisp, >> so that I can call an integration routine with >> >> * (gsll:integration-qng (lambda (x) (exp (- (* x x)))) 0.0 1.0) >> >> But the commands >> >> * (defun integration-test-f454 (x) >> (* (expt x 3) (* (log (abs (* (- (expt x 2) 1.0d0) (- (expt x 2) >> 2.0d0))))))) >> >> * (gsll:integration-QAGp >> 'integration-test-f454 >> (grid:copy-to (vector 0.0d0 1.0d0 (sqrt 2.0d0) 3.0d0)) >> 0.0d0 1.0d-3 1000) >> >> just produces a long list of errors. Is "grid" a standard library, or >> does it need to be loaded first? (Told you I was a newbie...) >> >> Thanks >> Alasdair >> -- >> > > Try this > > (setf grid:*default-grid-type* 'grid:foreign-array) > (gsll:integration-QAGp 'integration-test-f454 (grid:grid 0.0d0 1.0d0 (sqrt > 2.0d0) 3.0d0) 0.0d0 1.0d-3 1000) > > and let us know what happens. > > Thanks, > Liam > -- [image: http://www.facebook.com/alasdair.mcandrew] <http://www.facebook.com/alasdair.mcandrew> [image: https://plus.google.com/+AlasdairMcAndrew/posts] <https://plus.google.com/+AlasdairMcAndrew/posts> [image: https://www.linkedin.com/pub/alasdair-mcandrew/a/178/108] <https://www.linkedin.com/pub/alasdair-mcandrew/a/178/108> [image: https://twitter.com/amca01] <https://twitter.com/amca01> [image: http://numbersandshapes.net] <http://numbersandshapes.net>