Hi everyone, I've fixed an apparent argument-ordering issue in the definition of `rank-1-update'. I also made the corresponding change to `conjugate-rank-1-update'. The patch is attached.
I've tested the fix insofar as I can now call `rank-1-update' in my code without it signalling an EBADLEN error; however, I haven't been able to get the corresponding unit test to define itself, so I haven't been able to check whether one of the failing unit tests is fixed by this change. Thanks, James
From 00b77e84d3cce4e4b2fccb4bdb061ab84e2ef778 Mon Sep 17 00:00:00 2001 From: James Wright <ja...@chumsley.org> Date: Wed, 29 Sep 2010 16:51:11 -0700 Subject: [PATCH] Fixed EBADLEN error in `rank-1-update' and `conjugate-rank-1-update' --- linear-algebra/blas2.lisp | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) diff --git a/linear-algebra/blas2.lisp b/linear-algebra/blas2.lisp index ce0213e..b2fbe8a 100644 --- a/linear-algebra/blas2.lisp +++ b/linear-algebra/blas2.lisp @@ -201,8 +201,8 @@ (defmfun rank-1-update (alpha (x vector) (y vector) (A matrix)) ("gsl_blas_" :type "ger" :suffix) - ((alpha :element-c-type) ((mpointer A) :pointer) - ((mpointer x) :pointer) ((mpointer y) :pointer)) + ((alpha :element-c-type) ((mpointer x) :pointer) + ((mpointer y) :pointer) ((mpointer A) :pointer)) :definition :generic :element-types #+fsbv :float-complex #-fsbv :float :inputs (x y A) @@ -213,8 +213,8 @@ #+fsbv (defmfun conjugate-rank-1-update (alpha (x vector) (y vector) (A matrix)) ("gsl_blas_" :type "gerc") - ((alpha :element-c-type) ((mpointer A) :pointer) - ((mpointer x) :pointer) ((mpointer y) :pointer)) + ((alpha :element-c-type) ((mpointer x) :pointer) + ((mpointer y) :pointer) ((mpointer A) :pointer)) :definition :generic :element-types :complex :inputs (x y A) @@ -373,15 +373,10 @@ (s2 (scalar-default))) (grid:copy-to (matrix-product-hermitian m1 v1 v2 s1 s2)))) -#| -;;; Error, needs to be tracked down -;;; Matrix, vector lengths are not conformant invalid length in blas.c at line 1013 -;;; [Condition of type EBADLEN] - (generate-all-array-tests rank-1-update :float-complex (let ((m1 (array-default '(3 3))) (v1 (array-default 3)) (v2 (array-default 3)) (s1 (scalar-default))) (grid:copy-to (rank-1-update s1 v1 v2 m1)))) -|# + -- 1.7.0.4
_______________________________________________ Gsll-devel mailing list Gsll-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel