Loading calculus/monte-carlo.lisp +4 −2 Original line number Diff line number Diff line ;; Monte Carlo Integration ;; Liam Healy Sat Feb 3 2007 - 17:42 ;; Time-stamp: <2011-01-10 17:59:20EST monte-carlo.lisp> ;; Time-stamp: <2011-08-16 23:54:40EDT monte-carlo.lisp> ;; ;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -208,7 +208,9 @@ (* (/ (expt dpi 3)) (/ (- 1 (* (cos x) (cos y) (cos z)))))) (defparameter *mc-lower* #m(0.0d0 0.0d0 0.0d0)) (defparameter *mc-lower* (grid:make-foreign-array 'double-float :initial-contents '(0.0d0 0.0d0 0.0d0))) (defparameter *mc-upper* (grid:make-foreign-array Loading eigensystems/symmetric-hermitian.lisp +8 −4 Original line number Diff line number Diff line ;; Eigenvectors and eigenvalues ;; Liam Healy, Sun May 21 2006 - 19:52 ;; Time-stamp: <2011-01-12 00:09:43EST symmetric-hermitian.lisp> ;; Time-stamp: <2011-08-17 00:18:16EDT symmetric-hermitian.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -159,9 +159,13 @@ (defun eigenvalue-eigenvectors-example () (let ((evecs (grid:make-foreign-array 'double-float :dimensions '(3 3))) (evals (grid:make-foreign-array 'double-float :dimensions 3)) (mat #m(20.0d0 -10.0d0 0.0d0 ^ -10.0d0 30.0d0 0.0d0 ^ 0.0d0 0.0d0 40.0d0))) (mat (grid:make-foreign-array 'double-float :initial-contents '((20.0d0 -10.0d0 0.0d0) (-10.0d0 30.0d0 0.0d0) (0.0d0 0.0d0 40.0d0))))) (eigenvalues-eigenvectors mat evals evecs) (values (grid:copy-to evals) (grid:copy-to evecs)))) Loading random/multinomial.lisp +7 −4 Original line number Diff line number Diff line ;; Multinomial distribution ;; Liam Healy, Sat Nov 25 2006 - 16:00 ;; Time-stamp: <2011-01-10 17:59:29EST multinomial.lisp> ;; Time-stamp: <2011-08-16 23:57:09EDT multinomial.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -77,11 +77,14 @@ ;;; Examples and unit test (save-test multinomial (let ((rng (make-random-number-generator +mt19937+ 0)) (p #m(0.1d0 0.2d0 0.3d0 0.4d0))) (p (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0)))) (grid:copy-to (sample rng :multinomial :sum 8 :probabilities p))) (let ((p #m(0.1d0 0.2d0 0.3d0 0.4d0)) (let ((p (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0))) (n #31m(5 0 1 2))) (multinomial-pdf p N)) (let ((p #m(0.1d0 0.2d0 0.3d0 0.4d0)) (let ((p (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0))) (n #31m(5 0 1 2))) (multinomial-log-pdf p n))) solve-minimize-fit/linear-least-squares.lisp +23 −14 Original line number Diff line number Diff line ;; Linear least squares, or linear regression ;; Liam Healy <2008-01-21 12:41:46EST linear-least-squares.lisp> ;; Time-stamp: <2011-05-26 12:37:31EDT linear-least-squares.lisp> ;; Time-stamp: <2011-08-16 23:46:14EDT linear-least-squares.lisp> ;; ;; Copyright 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -302,9 +302,18 @@ (defun linear-least-squares-univariate-example (&optional (print-steps t)) "First example in Section 36.5 of the GSL manual." ;; Results not given in manual so not verified yet. (let ((x #m(1970.0d0 1980.0d0 1990.0d0 2000.0d0)) (y #m(12.0d0 11.0d0 14.0d0 13.0d0)) (w #m(0.1d0 0.2d0 0.3d0 0.4d0))) (let ((x (grid:make-foreign-array 'double-float :initial-contents '(1970.0d0 1980.0d0 1990.0d0 2000.0d0))) (y (grid:make-foreign-array 'double-float :initial-contents '(12.0d0 11.0d0 14.0d0 13.0d0))) (w (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0)))) (multiple-value-bind (c0 c1 cov00 cov01 cov11 chisq) (linear-fit x y w) (when print-steps Loading solve-minimize-fit/minimization-multi.lisp +33 −27 Original line number Diff line number Diff line ;; Multivariate minimization. ;; Liam Healy <Tue Jan 8 2008 - 21:28> ;; Time-stamp: <2011-05-26 12:37:32EDT minimization-multi.lisp> ;; Time-stamp: <2011-08-17 00:50:24EDT minimization-multi.lisp> ;; ;; Copyright 2008, 2009 Liam M. Healy ;; Copyright 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License ;; ;; This program is free software: you can redistribute it and/or modify Loading Loading @@ -372,7 +372,9 @@ (let ((minimizer (make-multi-dimensional-minimizer-f method 2 'paraboloid-scalar #m(5.0d0 7.0d0) step-size))) (grid:make-foreign-array 'double-float :initial-contents '(5.0d0 7.0d0)) step-size))) (loop with status = T and size for iter from 0 below 100 while status Loading Loading @@ -437,7 +439,9 @@ paraboloid-vector and paraboloid-derivative expect vectors. Contrast this with multimin-example-derivative-scalars, which expects and returns the scalar components." (let* ((initial #m(5.0d0 7.0d0)) (let* ((initial (grid:make-foreign-array 'double-float :initial-contents '(5.0d0 7.0d0))) (minimizer (make-multi-dimensional-minimizer-fdf method 2 Loading Loading @@ -481,7 +485,9 @@ paraboloid-scalar and paraboloid-derivative-scalar expect scalars. Contrast this with multimin-example-derivative, which expects and returns vectors." (let* ((initial #m(5.0d0 7.0d0)) (let* ((initial (grid:make-foreign-array 'double-float :initial-contents '(5.0d0 7.0d0))) (minimizer (make-multi-dimensional-minimizer-fdf method 2 Loading Loading
calculus/monte-carlo.lisp +4 −2 Original line number Diff line number Diff line ;; Monte Carlo Integration ;; Liam Healy Sat Feb 3 2007 - 17:42 ;; Time-stamp: <2011-01-10 17:59:20EST monte-carlo.lisp> ;; Time-stamp: <2011-08-16 23:54:40EDT monte-carlo.lisp> ;; ;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -208,7 +208,9 @@ (* (/ (expt dpi 3)) (/ (- 1 (* (cos x) (cos y) (cos z)))))) (defparameter *mc-lower* #m(0.0d0 0.0d0 0.0d0)) (defparameter *mc-lower* (grid:make-foreign-array 'double-float :initial-contents '(0.0d0 0.0d0 0.0d0))) (defparameter *mc-upper* (grid:make-foreign-array Loading
eigensystems/symmetric-hermitian.lisp +8 −4 Original line number Diff line number Diff line ;; Eigenvectors and eigenvalues ;; Liam Healy, Sun May 21 2006 - 19:52 ;; Time-stamp: <2011-01-12 00:09:43EST symmetric-hermitian.lisp> ;; Time-stamp: <2011-08-17 00:18:16EDT symmetric-hermitian.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -159,9 +159,13 @@ (defun eigenvalue-eigenvectors-example () (let ((evecs (grid:make-foreign-array 'double-float :dimensions '(3 3))) (evals (grid:make-foreign-array 'double-float :dimensions 3)) (mat #m(20.0d0 -10.0d0 0.0d0 ^ -10.0d0 30.0d0 0.0d0 ^ 0.0d0 0.0d0 40.0d0))) (mat (grid:make-foreign-array 'double-float :initial-contents '((20.0d0 -10.0d0 0.0d0) (-10.0d0 30.0d0 0.0d0) (0.0d0 0.0d0 40.0d0))))) (eigenvalues-eigenvectors mat evals evecs) (values (grid:copy-to evals) (grid:copy-to evecs)))) Loading
random/multinomial.lisp +7 −4 Original line number Diff line number Diff line ;; Multinomial distribution ;; Liam Healy, Sat Nov 25 2006 - 16:00 ;; Time-stamp: <2011-01-10 17:59:29EST multinomial.lisp> ;; Time-stamp: <2011-08-16 23:57:09EDT multinomial.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -77,11 +77,14 @@ ;;; Examples and unit test (save-test multinomial (let ((rng (make-random-number-generator +mt19937+ 0)) (p #m(0.1d0 0.2d0 0.3d0 0.4d0))) (p (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0)))) (grid:copy-to (sample rng :multinomial :sum 8 :probabilities p))) (let ((p #m(0.1d0 0.2d0 0.3d0 0.4d0)) (let ((p (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0))) (n #31m(5 0 1 2))) (multinomial-pdf p N)) (let ((p #m(0.1d0 0.2d0 0.3d0 0.4d0)) (let ((p (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0))) (n #31m(5 0 1 2))) (multinomial-log-pdf p n)))
solve-minimize-fit/linear-least-squares.lisp +23 −14 Original line number Diff line number Diff line ;; Linear least squares, or linear regression ;; Liam Healy <2008-01-21 12:41:46EST linear-least-squares.lisp> ;; Time-stamp: <2011-05-26 12:37:31EDT linear-least-squares.lisp> ;; Time-stamp: <2011-08-16 23:46:14EDT linear-least-squares.lisp> ;; ;; Copyright 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License Loading Loading @@ -302,9 +302,18 @@ (defun linear-least-squares-univariate-example (&optional (print-steps t)) "First example in Section 36.5 of the GSL manual." ;; Results not given in manual so not verified yet. (let ((x #m(1970.0d0 1980.0d0 1990.0d0 2000.0d0)) (y #m(12.0d0 11.0d0 14.0d0 13.0d0)) (w #m(0.1d0 0.2d0 0.3d0 0.4d0))) (let ((x (grid:make-foreign-array 'double-float :initial-contents '(1970.0d0 1980.0d0 1990.0d0 2000.0d0))) (y (grid:make-foreign-array 'double-float :initial-contents '(12.0d0 11.0d0 14.0d0 13.0d0))) (w (grid:make-foreign-array 'double-float :initial-contents '(0.1d0 0.2d0 0.3d0 0.4d0)))) (multiple-value-bind (c0 c1 cov00 cov01 cov11 chisq) (linear-fit x y w) (when print-steps Loading
solve-minimize-fit/minimization-multi.lisp +33 −27 Original line number Diff line number Diff line ;; Multivariate minimization. ;; Liam Healy <Tue Jan 8 2008 - 21:28> ;; Time-stamp: <2011-05-26 12:37:32EDT minimization-multi.lisp> ;; Time-stamp: <2011-08-17 00:50:24EDT minimization-multi.lisp> ;; ;; Copyright 2008, 2009 Liam M. Healy ;; Copyright 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License ;; ;; This program is free software: you can redistribute it and/or modify Loading Loading @@ -372,7 +372,9 @@ (let ((minimizer (make-multi-dimensional-minimizer-f method 2 'paraboloid-scalar #m(5.0d0 7.0d0) step-size))) (grid:make-foreign-array 'double-float :initial-contents '(5.0d0 7.0d0)) step-size))) (loop with status = T and size for iter from 0 below 100 while status Loading Loading @@ -437,7 +439,9 @@ paraboloid-vector and paraboloid-derivative expect vectors. Contrast this with multimin-example-derivative-scalars, which expects and returns the scalar components." (let* ((initial #m(5.0d0 7.0d0)) (let* ((initial (grid:make-foreign-array 'double-float :initial-contents '(5.0d0 7.0d0))) (minimizer (make-multi-dimensional-minimizer-fdf method 2 Loading Loading @@ -481,7 +485,9 @@ paraboloid-scalar and paraboloid-derivative-scalar expect scalars. Contrast this with multimin-example-derivative, which expects and returns vectors." (let* ((initial #m(5.0d0 7.0d0)) (let* ((initial (grid:make-foreign-array 'double-float :initial-contents '(5.0d0 7.0d0))) (minimizer (make-multi-dimensional-minimizer-fdf method 2 Loading