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

Reply via email to