Commit 383cfb06 authored by Liam Healy's avatar Liam Healy

Tri- and bi-diagonal linear systems ported to ffa

Uses generic functions to cover both symmetric and hermitian solutions
for the tridiagonal functions that have both.  This necessitated
modifying #'actual-gsl-function-name to allow explicit listing of the
GSL functions by element type.
parent 10eda520
;; Definition of GSLL system
;; Liam Healy
;; Time-stamp: <2008-08-11 23:09:38EDT gsll.asd>
;; Time-stamp: <2008-08-12 22:02:21EDT gsll.asd>
;; $Id$
(asdf:defsystem "gsll"
......@@ -88,7 +88,7 @@
(:file "qrpt")
(:file "svd")
(:file "cholesky")
;(:file "diagonal")
(:file "diagonal")
(:file "householder")))
#+no
(:file "eigensystems" :depends-on (init data))
......
;; Macro for defining GSL functions.
;; Liam Healy 2008-04-16 20:49:50EDT defmfun.lisp
;; Time-stamp: <2008-08-10 22:17:18EDT defmfun.lisp>
;; Time-stamp: <2008-08-12 21:17:05EDT defmfun.lisp>
;; $Id$
(in-package :gsl)
......@@ -270,22 +270,25 @@
;; (actual-gsl-function-name
;; '("gsl_" :category :type "_swap") 'vector '(unsigned-byte 16))
;; "gsl_vector_ushort_swap"
(let ((blas (search "blas" (first base-name) :test 'string-equal)))
(if (listp base-name)
(apply #'concatenate 'string
(substitute
(if (subtypep type 'complex) "_complex" "") :complex
(substitute
(if (subtypep type 'complex) "u" "") :suffix
(substitute
(cl-gsl type (not blas) blas) :type
(substitute
(if (subtypep type 'complex)
(cl-gsl (component-float-type type) nil blas)
"") :component-float-type
(if (listp base-name)
(if (symbolp (first base-name))
;; An explicit listing of types with function names
(getf base-name (cl-single type))
(let ((blas (search "blas" (first base-name) :test 'string-equal)))
(apply #'concatenate 'string
(substitute
(string-downcase (symbol-name category)) :category
base-name)))))))))
(if (subtypep type 'complex) "_complex" "") :complex
(substitute
(if (subtypep type 'complex) "u" "") :suffix
(substitute
(cl-gsl type (not blas) blas) :type
(substitute
(if (subtypep type 'complex)
(cl-gsl (component-float-type type) nil blas)
"") :component-float-type
(substitute
(string-downcase (symbol-name category)) :category
base-name))))))))))
(defun number-class-from-type (type)
"Find a class name that contains this type."
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment