From e4a26746ad39ec4385fe28f3d0575fec879afdec Mon Sep 17 00:00:00 2001 From: Liam Healy <lnp@healy.washington.dc.us> Date: Fri, 20 Mar 2009 15:08:55 -0400 Subject: [PATCH] Fixed arguments to linear least squares functions In both linear-mfit-nosvd and linear-mfit-svd, the arguments were in the wrong order, and the there was no #'mpointer call for covariance. There was a 'tolerance argument in the C arglist for non-svd function, which should not have been there. Also, 'weight needed to be declared as an input. This last was the cause of two test failures in non-native implementations. Now CCL64: TOTAL: 1454 assertions passed, 2 failed, 0 execution errors. SBCL64:TOTAL: 1451 assertions passed, 5 failed, 0 execution errors. --- solve-minimize-fit/linear-least-squares.lisp | 27 +++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/solve-minimize-fit/linear-least-squares.lisp b/solve-minimize-fit/linear-least-squares.lisp index 6543c5fe..83347e27 100644 --- a/solve-minimize-fit/linear-least-squares.lisp +++ b/solve-minimize-fit/linear-least-squares.lisp @@ -1,11 +1,12 @@ ;; Linear least squares, or linear regression ;; Liam Healy <2008-01-21 12:41:46EST linear-least-squares.lisp> -;; Time-stamp: <2009-02-21 16:46:32EST linear-least-squares.lisp> +;; Time-stamp: <2009-03-20 14:58:52EDT linear-least-squares.lisp> ;; $Id$ (in-package :gsl) ;;; /usr/include/gsl/gsl_fit.h +;;; /usr/include/gsl/gsl_multifit.h ;;;;**************************************************************************** ;;;; Linear regression @@ -166,17 +167,20 @@ &aux (parameters (vdf parameters-or-size))) ("gsl_multifit_linear" "gsl_multifit_wlinear") - ((((mpointer model) :pointer) ((mpointer observations) :pointer) - (tolerance :double) - ((mpointer parameters) :pointer) (covariance :pointer) (chisq :double) + ((((mpointer model) :pointer) + ((mpointer observations) :pointer) + ((mpointer parameters) :pointer) + ((mpointer covariance) :pointer) + (chisq :double) ((mpointer workspace) :pointer)) (((mpointer model) :pointer) ((mpointer weight) :pointer) ((mpointer observations) :pointer) ((mpointer parameters) :pointer) - ((mpointer covariance) :pointer) (chisq :double) + ((mpointer covariance) :pointer) + (chisq :double) ((mpointer workspace) :pointer))) - :inputs (model observations) + :inputs (model weight observations) :outputs (parameters covariance) :switch (weight) :return (parameters covariance (dcref chisq)) @@ -204,17 +208,22 @@ (workspace (default-lls-workspace observations parameters-or-size)) &aux (parameters (vdf parameters-or-size))) ("gsl_multifit_linear_svd" "gsl_multifit_wlinear_svd") - ((((mpointer model) :pointer) ((mpointer observations) :pointer) + ((((mpointer model) :pointer) + ((mpointer observations) :pointer) (tolerance :double) (rank sizet) - ((mpointer parameters) :pointer) (covariance :pointer) (chisq :double) + ((mpointer parameters) :pointer) + ((mpointer covariance) :pointer) + (chisq :double) ((mpointer workspace) :pointer)) (((mpointer model) :pointer) ((mpointer weight) :pointer) ((mpointer observations) :pointer) (tolerance :double) (rank sizet) - ((mpointer parameters) :pointer) (covariance :pointer) (chisq :double) + ((mpointer parameters) :pointer) + ((mpointer covariance) :pointer) + (chisq :double) ((mpointer workspace) :pointer))) :inputs (model weight observations) :outputs (parameters covariance) -- GitLab