;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; LUSH Lisp Universal Shell
;;;   Copyright (C) 2002 Leon Bottou, Yann Le Cun, AT&T Corp, NECI.
;;; Includes parts of TL3:
;;;   Copyright (C) 1987-1999 Leon Bottou and Neuristique.
;;; Includes selected parts of SN3.2:
;;;   Copyright (C) 1991-2001 AT&T Corp.
;;;
;;; Includes information derived from the GSL (Gnu Scientific Library)
;;;   header files which are copyrighted and distributed under the GPL
;;;   by their respective authors.
;;;
;;; This program is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 2 of the License, or
;;; (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program; if not, write to the Free Software
;;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(libload "gsl/gsl-config")



#? *** blas

;; dummy function that adds GSL C header files in C file
(eval `(de dummy_blas () ,gsl-cpheader-cmd ()))

#? * (dummy_blas)
#? * (gsl_blas_sdsdot <alpha> <x> <y> <result>)
#? * (gsl_blas_dsdot <x> <y> <result>)
#? * (gsl_blas_sdot <x> <y> <result>)
#? * (gsl_blas_ddot <x> <y> <result>)
#? * (gsl_blas_cdotu <x> <y> <dotu>)
#? * (gsl_blas_cdotc <x> <y> <dotc>)
#? * (gsl_blas_zdotu <x> <y> <dotu>)
#? * (gsl_blas_zdotc <x> <y> <dotc>)
#? * (gsl_blas_snrm2 <x>)
#? * (gsl_blas_sasum <x>)
#? * (gsl_blas_dnrm2 <x>)
#? * (gsl_blas_dasum <x>)
#? * (gsl_blas_scnrm2 <x>)
#? * (gsl_blas_scasum <x>)
#? * (gsl_blas_dznrm2 <x>)
#? * (gsl_blas_dzasum <x>)
#? * (gsl_blas_isamax <x>)
#? * (gsl_blas_idamax <x>)
#? * (gsl_blas_icamax <x>)
#? * (gsl_blas_izamax <x>)
#? * (gsl_blas_sswap <x> <y>)
#? * (gsl_blas_scopy <x> <y>)
#? * (gsl_blas_saxpy <alpha> <x> <y>)
#? * (gsl_blas_dswap <x> <y>)
#? * (gsl_blas_dcopy <x> <y>)
#? * (gsl_blas_daxpy <alpha> <x> <y>)
#? * (gsl_blas_cswap <x> <y>)
#? * (gsl_blas_ccopy <x> <y>)
#? * (gsl_blas_caxpy <alpha> <x> <y>)
#? * (gsl_blas_zswap <x> <y>)
#? * (gsl_blas_zcopy <x> <y>)
#? * (gsl_blas_zaxpy <alpha> <x> <y>)
#? * (gsl_blas_srotg <a> <b> <c> <s>)
#? * (gsl_blas_srotmg <d1> <d2> <b1> <b2> <p>)
#? * (gsl_blas_srot <x> <y> <c> <s>)
#? * (gsl_blas_srotm <x> <y> <p>)
#? * (gsl_blas_drotg <a> <b> <c> <s>)
#? * (gsl_blas_drotmg <d1> <d2> <b1> <b2> <p>)
#? * (gsl_blas_drot <x> <y> <c> <s>)
#? * (gsl_blas_drotm <x> <y> <p>)
#? * (gsl_blas_sscal <alpha> <x>)
#? * (gsl_blas_dscal <alpha> <x>)
#? * (gsl_blas_cscal <alpha> <x>)
#? * (gsl_blas_zscal <alpha> <x>)
#? * (gsl_blas_csscal <alpha> <x>)
#? * (gsl_blas_zdscal <alpha> <x>)
#? * (gsl_blas_sgemv <transa> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_strmv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_strsv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_dgemv <transa> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_dtrmv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_dtrsv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_cgemv <transa> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_ctrmv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_ctrsv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_zgemv <transa> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_ztrmv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_ztrsv <uplo> <transa> <diag> <a> <x>)
#? * (gsl_blas_ssymv <uplo> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_sger <alpha> <x> <y> <a>)
#? * (gsl_blas_ssyr <uplo> <alpha> <x> <a>)
#? * (gsl_blas_ssyr2 <uplo> <alpha> <x> <y> <a>)
#? * (gsl_blas_dsymv <uplo> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_dger <alpha> <x> <y> <a>)
#? * (gsl_blas_dsyr <uplo> <alpha> <x> <a>)
#? * (gsl_blas_dsyr2 <uplo> <alpha> <x> <y> <a>)
#? * (gsl_blas_chemv <uplo> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_cgeru <alpha> <x> <y> <a>)
#? * (gsl_blas_cgerc <alpha> <x> <y> <a>)
#? * (gsl_blas_cher <uplo> <alpha> <x> <a>)
#? * (gsl_blas_cher2 <uplo> <alpha> <x> <y> <a>)
#? * (gsl_blas_zhemv <uplo> <alpha> <a> <x> <beta> <y>)
#? * (gsl_blas_zgeru <alpha> <x> <y> <a>)
#? * (gsl_blas_zgerc <alpha> <x> <y> <a>)
#? * (gsl_blas_zher <uplo> <alpha> <x> <a>)
#? * (gsl_blas_zher2 <uplo> <alpha> <x> <y> <a>)
#? * (gsl_blas_sgemm <transa> <transb> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_ssymm <side> <uplo> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_ssyrk <uplo> <trans> <alpha> <a> <beta> <c>)
#? * (gsl_blas_ssyr2k <uplo> <trans> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_strmm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_strsm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_dgemm <transa> <transb> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_dsymm <side> <uplo> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_dsyrk <uplo> <trans> <alpha> <a> <beta> <c>)
#? * (gsl_blas_dsyr2k <uplo> <trans> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_dtrmm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_dtrsm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_cgemm <transa> <transb> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_csymm <side> <uplo> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_csyrk <uplo> <trans> <alpha> <a> <beta> <c>)
#? * (gsl_blas_csyr2k <uplo> <trans> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_ctrmm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_ctrsm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_zgemm <transa> <transb> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_zsymm <side> <uplo> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_zsyrk <uplo> <trans> <alpha> <a> <beta> <c>)
#? * (gsl_blas_zsyr2k <uplo> <trans> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_ztrmm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_ztrsm <side> <uplo> <transa> <diag> <alpha> <a> <b>)
#? * (gsl_blas_chemm <side> <uplo> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_cherk <uplo> <trans> <alpha> <a> <beta> <c>)
#? * (gsl_blas_cher2k <uplo> <trans> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_zhemm <side> <uplo> <alpha> <a> <b> <beta> <c>)
#? * (gsl_blas_zherk <uplo> <trans> <alpha> <a> <beta> <c>)
#? * (gsl_blas_zher2k <uplo> <trans> <alpha> <a> <b> <beta> <c>)

;; ********************************************************


(de gsl_blas_sdsdot (    alpha  x  y  result  )
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "const gsl_vector_float *") y) 
    ((-gptr- "float *") result)  
    (int #{ gsl_blas_sdsdot (  $alpha ,$x ,$y ,$result ) #} )
)


(de gsl_blas_dsdot (    x  y  result  )
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "const gsl_vector_float *") y) 
    ((-gptr- "double *") result)  
    (int #{ gsl_blas_dsdot (  $x ,$y ,$result ) #} )
)


(de gsl_blas_sdot (    x  y  result  )
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "const gsl_vector_float *") y) 
    ((-gptr- "float *") result)  
    (int #{ gsl_blas_sdot (  $x ,$y ,$result ) #} )
)


(de gsl_blas_ddot (    x  y  result  )
    ((-gptr- "const gsl_vector *") x) 
    ((-gptr- "const gsl_vector *") y) 
    ((-gptr- "double *") result)  
    (int #{ gsl_blas_ddot (  $x ,$y ,$result ) #} )
)



(de gsl_blas_cdotu (    x  y  dotu  )
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "const gsl_vector_complex_float *") y) 
    ((-gptr- "gsl_complex_float *") dotu)  
    (int  #{ gsl_blas_cdotu (  $x ,$y ,$dotu ) #} )
)


(de gsl_blas_cdotc (    x  y  dotc  )
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "const gsl_vector_complex_float *") y) 
    ((-gptr- "gsl_complex_float *") dotc)  
    (int  #{ gsl_blas_cdotc (  $x ,$y ,$dotc ) #} )
)


(de gsl_blas_zdotu (    x  y  dotu  )
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "const gsl_vector_complex *") y) 
    ((-gptr- "gsl_complex *") dotu)  
    (int  #{ gsl_blas_zdotu (  $x ,$y ,$dotu ) #} )
)


(de gsl_blas_zdotc (    x  y  dotc  )
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "const gsl_vector_complex *") y) 
    ((-gptr- "gsl_complex *") dotc)  
    (int  #{ gsl_blas_zdotc (  $x ,$y ,$dotc ) #} )
)



(de gsl_blas_snrm2 (    x  )
    ((-gptr- "const gsl_vector_float *") x)  
    (double  #{ gsl_blas_snrm2  (  $x ) #} )     ;; float -> double
)

(de gsl_blas_sasum (    x  )
    ((-gptr- "const gsl_vector_float *") x)  
    (double  #{ gsl_blas_sasum  (  $x ) #} )     ;; float -> double
)

(de gsl_blas_dnrm2 (    x  )
    ((-gptr- "const gsl_vector *") x)  
    (double #{ gsl_blas_dnrm2  (  $x ) #} )
)

(de gsl_blas_dasum (    x  )
    ((-gptr- "const gsl_vector *") x)  
    (double #{ gsl_blas_dasum  (  $x ) #} )
)

(de gsl_blas_scnrm2 (    x  )
    ((-gptr- "const gsl_vector_complex_float *") x)  
    (double  #{ gsl_blas_scnrm2 (  $x ) #} )     ;; float -> double
)

(de gsl_blas_scasum (    x  )
    ((-gptr- "const gsl_vector_complex_float *") x)  
    (double  #{ gsl_blas_scasum (  $x ) #} )     ;; float -> double
)

(de gsl_blas_dznrm2 (    x  )
    ((-gptr- "const gsl_vector_complex *") x)  
    (double #{ gsl_blas_dznrm2 (  $x ) #} )
)

(de gsl_blas_dzasum (    x  )
    ((-gptr- "const gsl_vector_complex *") x)  
    (double #{ gsl_blas_dzasum (  $x ) #} )
)



(de gsl_blas_isamax (    x  )
    ((-gptr- "const gsl_vector_float *") x)  
    (int #{ gsl_blas_isamax (  $x ) #} )      ;; cbLas_INdEX_t (size_t) -> int
)

(de gsl_blas_idamax (    x  )
    ((-gptr- "const gsl_vector *") x)  
    (int #{ gsl_blas_idamax (  $x ) #} )     ;; cbLas_INdEX_t (size_t) -> int
)

(de gsl_blas_icamax (    x  )
    ((-gptr- "const gsl_vector_complex_float *") x)  
    (int #{ gsl_blas_icamax (  $x ) #} )       ;; cbLas_INdEX_t (size_t) -> int
)

(de gsl_blas_izamax (    x  )
    ((-gptr- "const gsl_vector_complex *") x)  
    (int #{ gsl_blas_izamax (  $x ) #} )      ;; cbLas_INdEX_t (size_t) -> int
)



(de gsl_blas_sswap (    x  y  )
    ((-gptr- "gsl_vector_float *") x) 
    ((-gptr- "gsl_vector_float *") y)  
    (int  #{ gsl_blas_sswap (  $x ,$y ) #} )
)


(de gsl_blas_scopy (    x  y  )
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "gsl_vector_float *") y)  
    (int  #{ gsl_blas_scopy (  $x ,$y ) #} )
)


(de gsl_blas_saxpy (    alpha  x  y  )
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "gsl_vector_float *") y)  
    (int  #{ gsl_blas_saxpy (  $alpha ,$x ,$y ) #} )
)


(de gsl_blas_dswap (    x  y  )
    ((-gptr- "gsl_vector *") x) 
    ((-gptr- "gsl_vector *") y)  
    (int  #{ gsl_blas_dswap (  $x ,$y ) #} )
)


(de gsl_blas_dcopy (    x  y  )
    ((-gptr- "const gsl_vector *") x) 
    ((-gptr- "gsl_vector *") y)  
    (int  #{ gsl_blas_dcopy (  $x ,$y ) #} )
)


(de gsl_blas_daxpy (    alpha  x  y  )
    ((-double-) alpha) 
    ((-gptr- "const gsl_vector *") x) 
    ((-gptr- "gsl_vector *") y)  
    (int  #{ gsl_blas_daxpy (  $alpha ,$x ,$y ) #} )
)


(de gsl_blas_cswap (    x  y  )
    ((-gptr- "gsl_vector_complex_float *") x) 
    ((-gptr- "gsl_vector_complex_float *") y)  
    (int  #{ gsl_blas_cswap (  $x ,$y ) #} )
)


(de gsl_blas_ccopy (    x  y  )
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "gsl_vector_complex_float *") y)  
    (int  #{ gsl_blas_ccopy (  $x ,$y ) #} )
)


(de gsl_blas_caxpy (    alpha  x  y  )
    ((-gptr- "gsl_complex_float *") alpha)           ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "gsl_vector_complex_float *") y)  
    (int  #{ gsl_blas_caxpy (  *$alpha ,$x ,$y ) #} )
)


(de gsl_blas_zswap (    x  y  )
    ((-gptr- "gsl_vector_complex *") x) 
    ((-gptr- "gsl_vector_complex *") y)  
    (int  #{ gsl_blas_zswap (  $x ,$y ) #} )
)


(de gsl_blas_zcopy (    x  y  )
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "gsl_vector_complex *") y)  
    (int  #{ gsl_blas_zcopy (  $x ,$y ) #} )
)


(de gsl_blas_zaxpy (    alpha  x  y  )
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "gsl_vector_complex *") y)  
    (int  #{ gsl_blas_zaxpy (  *$alpha ,$x ,$y ) #} )
)



(de gsl_blas_srotg (    a  b  c  s  )
    ((-gptr- "float *") a) 
    ((-gptr- "float *") b) 
    ((-gptr- "float *") c) 
    ((-gptr- "float *") s)  
    (int  #{ gsl_blas_srotg (  $a ,$b ,$c ,$s ) #} )
)


(de gsl_blas_srotmg (    d1  d2  b1  b2  p  )
    ((-gptr- "float *") d1) 
    ((-gptr- "float *") d2) 
    ((-gptr- "float *") b1) 
    ((-double-) b2)                       ;; float -> double
    ((-gptr- "float *") p)  
    (int  #{ gsl_blas_srotmg (  $d1 ,$d2 ,$b1 ,$b2 ,$p ) #} )
)


(de gsl_blas_srot (    x  y  c  s  )
    ((-gptr- "gsl_vector_float *") x) 
    ((-gptr- "gsl_vector_float *") y) 
    ((-double-) c)                       ;; float -> double
    ((-double-) s)                        ;; float -> double
    (int  #{ gsl_blas_srot (  $x ,$y ,$c ,$s ) #} )
)


(de gsl_blas_srotm (    x  y  p  )
    ((-gptr- "gsl_vector_float *") x) 
    ((-gptr- "gsl_vector_float *") y) 
    ((-gptr- "const float *") p)  
    (int  #{ gsl_blas_srotm (  $x ,$y ,$p ) #} )
)


(de gsl_blas_drotg (    a  b  c  s )
    ((-gptr- "double *") a) 
    ((-gptr- "double *") b) 
    ((-gptr- "double *") c) 
    ((-gptr- "double *") s) 
    (int  #{ gsl_blas_drotg (  $a ,$b ,$c ,$s) #} )
)


(de gsl_blas_drotmg (    d1  d2  b1  b2  p )
    ((-gptr- "double *") d1) 
    ((-gptr- "double *") d2) 
    ((-gptr- "double *") b1) 
    ((-double-) b2) 
    ((-gptr- "double *") p) 
    (int  #{ gsl_blas_drotmg (  $d1 ,$d2 ,$b1 ,$b2 ,$p) #} )
)


(de gsl_blas_drot (    x  y  c  s )
    ((-gptr- "gsl_vector *") x) 
    ((-gptr- "gsl_vector *") y) 
    ((-double-) c) 
    ((-double-) s) 
    (int  #{ gsl_blas_drot (  $x ,$y ,$c ,$s) #} )
)


(de gsl_blas_drotm (    x  y  p )
    ((-gptr- "gsl_vector *") x) 
    ((-gptr- "gsl_vector *") y) 
    ((-gptr- "const double *") p) 
    (int  #{ gsl_blas_drotm (  $x ,$y ,$p) #} )
)



(de gsl_blas_sscal (    alpha  x )
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "gsl_vector_float *") x) 
    #{ gsl_blas_sscal  (  $alpha ,$x) #} 
    ()
)

(de gsl_blas_dscal (    alpha  x )
    ((-double-) alpha) 
    ((-gptr- "gsl_vector *") x) 
    #{ gsl_blas_dscal  (  $alpha ,$x) #} 
    ()
)

(de gsl_blas_cscal (    alpha  x )
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "gsl_vector_complex_float *") x) 
    #{ gsl_blas_cscal  (  *$alpha ,$x) #} 
    ()
)

(de gsl_blas_zscal (    alpha  x )
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "gsl_vector_complex *") x) 
    #{ gsl_blas_zscal  (  *$alpha ,$x) #} 
    ()
)

(de gsl_blas_csscal (    alpha  x )
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "gsl_vector_complex_float *") x) 
    #{ gsl_blas_csscal (  $alpha ,$x) #} 
    ()
)

(de gsl_blas_zdscal (    alpha  x )
    ((-double-) alpha) 
    ((-gptr- "gsl_vector_complex *") x) 
    #{ gsl_blas_zdscal (  $alpha ,$x) #} 
    ()
)






(de gsl_blas_sgemv (    transa  alpha  a  x  beta  y )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "const gsl_vector_float *") x) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_vector_float *") y) 
    (int  #{ gsl_blas_sgemv (  $transa ,$alpha ,$a ,$x ,$beta ,$y) #} )
)


(de gsl_blas_strmv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "gsl_vector_float *") x) 
    (int  #{ gsl_blas_strmv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_strsv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "gsl_vector_float *") x) 
    (int  #{ gsl_blas_strsv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_dgemv (    transa  alpha  a  x  beta  y )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "const gsl_vector *") x) 
    ((-double-) beta) 
    ((-gptr- "gsl_vector *") y) 
    (int  #{ gsl_blas_dgemv (  $transa ,$alpha ,$a ,$x ,$beta ,$y) #} )
)


(de gsl_blas_dtrmv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "gsl_vector *") x) 
    (int  #{ gsl_blas_dtrmv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_dtrsv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "gsl_vector *") x) 
    (int  #{ gsl_blas_dtrsv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_cgemv (    transa  alpha  a  x  beta  y )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "gsl_complex_float *") beta)              ;; structure -> pointer
    ((-gptr- "gsl_vector_complex_float *") y) 
    (int  #{ gsl_blas_cgemv (  $transa ,*$alpha ,$a ,$x ,*$beta ,$y) #} )
)


(de gsl_blas_ctrmv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "gsl_vector_complex_float *") x) 
    (int  #{ gsl_blas_ctrmv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_ctrsv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "gsl_vector_complex_float *") x) 
    (int  #{ gsl_blas_ctrsv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_zgemv (    transa  alpha  a  x  beta  y )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "gsl_complex *") beta)                  ;; structure -> int
    ((-gptr- "gsl_vector_complex *") y) 
    (int  #{ gsl_blas_zgemv (  $transa ,*$alpha ,$a ,$x ,*$beta ,$y) #} )
)


(de gsl_blas_ztrmv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "gsl_vector_complex *") x) 
    (int  #{ gsl_blas_ztrmv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)


(de gsl_blas_ztrsv (    uplo  transa  diag  a  x )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "gsl_vector_complex *") x) 
    (int  #{ gsl_blas_ztrsv (  $uplo ,$transa ,$diag ,$a ,$x) #} )
)



(de gsl_blas_ssymv (    uplo  alpha  a  x  beta  y )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "const gsl_vector_float *") x) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_vector_float *") y) 
    (int  #{ gsl_blas_ssymv (  $uplo ,$alpha ,$a ,$x ,$beta ,$y) #} )
)


(de gsl_blas_sger (    alpha  x  y  a )
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "const gsl_vector_float *") y) 
    ((-gptr- "gsl_matrix_float *") a) 
    (int  #{ gsl_blas_sger (  $alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_ssyr (    uplo  alpha  x  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "gsl_matrix_float *") a) 
    (int  #{ gsl_blas_ssyr (  $uplo ,$alpha ,$x ,$a) #} )
)


(de gsl_blas_ssyr2 (    uplo  alpha  x  y  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_vector_float *") x) 
    ((-gptr- "const gsl_vector_float *") y) 
    ((-gptr- "gsl_matrix_float *") a) 
    (int  #{ gsl_blas_ssyr2 (  $uplo ,$alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_dsymv (    uplo  alpha  a  x  beta  y )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "const gsl_vector *") x) 
    ((-double-) beta) 
    ((-gptr- "gsl_vector *") y) 
    (int  #{ gsl_blas_dsymv (  $uplo ,$alpha ,$a ,$x ,$beta ,$y) #} )
)

(de gsl_blas_dger (    alpha  x  y  a )
    ((-double-) alpha) 
    ((-gptr- "const gsl_vector *") x) 
    ((-gptr- "const gsl_vector *") y) 
    ((-gptr- "gsl_matrix *") a) 
    (int  #{ gsl_blas_dger (  $alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_dsyr (    uplo  alpha  x  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_vector *") x) 
    ((-gptr- "gsl_matrix *") a) 
    (int  #{ gsl_blas_dsyr (  $uplo ,$alpha ,$x ,$a) #} )
)


(de gsl_blas_dsyr2 (    uplo  alpha  x  y  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_vector *") x) 
    ((-gptr- "const gsl_vector *") y) 
    ((-gptr- "gsl_matrix *") a) 
    (int  #{ gsl_blas_dsyr2 (  $uplo ,$alpha ,$x ,$y ,$a) #} )
)




(de gsl_blas_chemv (    uplo  alpha  a  x  beta  y )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "gsl_complex_float *") beta) 
    ((-gptr- "gsl_vector_complex_float *") y) 
    (int  #{ gsl_blas_chemv (  $uplo ,*$alpha ,$a ,$x ,*$beta ,$y) #} )
)


(de gsl_blas_cgeru (    alpha  x  y  a )
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "const gsl_vector_complex_float *") y) 
    ((-gptr- "gsl_matrix_complex_float *") a) 
    (int  #{ gsl_blas_cgeru (  *$alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_cgerc (    alpha  x  y  a )
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "const gsl_vector_complex_float *") y) 
    ((-gptr- "gsl_matrix_complex_float *") a) 
    (int  #{ gsl_blas_cgerc (  *$alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_cher (    uplo  alpha  x  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "gsl_matrix_complex_float *") a) 
    (int  #{ gsl_blas_cher (  $uplo ,$alpha ,$x ,$a) #} )
)


(de gsl_blas_cher2 (    uplo  alpha  x  y  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex_float *") x) 
    ((-gptr- "const gsl_vector_complex_float *") y) 
    ((-gptr- "gsl_matrix_complex_float *") a) 
    (int  #{ gsl_blas_cher2 (  $uplo ,*$alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_zhemv (    uplo  alpha  a  x  beta  y )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "gsl_complex *") beta)               ;; structure -> pointer
    ((-gptr- "gsl_vector_complex *") y) 
    (int  #{ gsl_blas_zhemv (  $uplo ,*$alpha ,$a ,$x ,*$beta ,$y) #} )
)


(de gsl_blas_zgeru (    alpha  x  y  a )
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "const gsl_vector_complex *") y) 
    ((-gptr- "gsl_matrix_complex *") a) 
    (int  #{ gsl_blas_zgeru (  *$alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_zgerc (    alpha  x  y  a )
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "const gsl_vector_complex *") y) 
    ((-gptr- "gsl_matrix_complex *") a) 
    (int  #{ gsl_blas_zgerc (  *$alpha ,$x ,$y ,$a) #} )
)


(de gsl_blas_zher (    uplo  alpha  x  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "gsl_matrix_complex *") a) 
    (int  #{ gsl_blas_zher (  $uplo ,$alpha ,$x ,$a) #} )
)


(de gsl_blas_zher2 (    uplo  alpha  x  y  a )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_vector_complex *") x) 
    ((-gptr- "const gsl_vector_complex *") y) 
    ((-gptr- "gsl_matrix_complex *") a) 
    (int  #{ gsl_blas_zher2 (  $uplo ,*$alpha ,$x ,$y ,$a) #} )
)





(de gsl_blas_sgemm (    transa  transb  alpha  a  b  beta  c )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) transb)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "const gsl_matrix_float *") b) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_matrix_float *") c) 
    (int  #{ gsl_blas_sgemm (  $transa ,$transb ,$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_ssymm (    side  uplo  alpha  a  b  beta  c )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "const gsl_matrix_float *") b) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_matrix_float *") c) 
    (int  #{ gsl_blas_ssymm (  $side ,$uplo ,$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_ssyrk (    uplo  trans  alpha  a  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_matrix_float *") c) 
    (int  #{ gsl_blas_ssyrk (  $uplo ,$trans ,$alpha ,$a ,$beta ,$c) #} )
)


(de gsl_blas_ssyr2k (    uplo  trans  alpha  a  b  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "const gsl_matrix_float *") b) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_matrix_float *") c) 
    (int  #{ gsl_blas_ssyr2k (  $uplo ,$trans ,$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_strmm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "gsl_matrix_float *") b) 
    (int  #{ gsl_blas_strmm (  $side ,$uplo ,$transa ,$diag ,$alpha ,$a ,$b) #} )
)


(de gsl_blas_strsm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_float *") a) 
    ((-gptr- "gsl_matrix_float *") b) 
    (int  #{ gsl_blas_strsm (  $side ,$uplo ,$transa ,$diag ,$alpha ,$a ,$b) #} )
)


(de gsl_blas_dgemm (    transa  transb  alpha  a  b  beta  c )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) transb)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "const gsl_matrix *") b) 
    ((-double-) beta) 
    ((-gptr- "gsl_matrix *") c) 
    (int  #{ gsl_blas_dgemm (  $transa ,$transb ,$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_dsymm (    side  uplo  alpha  a  b  beta  c )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "const gsl_matrix *") b) 
    ((-double-) beta) 
    ((-gptr- "gsl_matrix *") c) 
    (int  #{ gsl_blas_dsymm (  $side ,$uplo ,$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_dsyrk (    uplo  trans  alpha  a  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-double-) beta) 
    ((-gptr- "gsl_matrix *") c) 
    (int  #{ gsl_blas_dsyrk (  $uplo ,$trans ,$alpha ,$a ,$beta ,$c) #} )
)


(de gsl_blas_dsyr2k (    uplo  trans  alpha  a  b  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const  gsl_matrix *") a) 
    ((-gptr- "const  gsl_matrix *") b) 
    ((-double-) beta) 
    ((-gptr- "gsl_matrix *") c) 
    (int  #{ gsl_blas_dsyr2k (  $uplo ,$trans ,$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_dtrmm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "gsl_matrix *") b) 
    (int  #{ gsl_blas_dtrmm (  $side ,$uplo ,$transa ,$diag ,$alpha ,$a ,$b) #} )
)


(de gsl_blas_dtrsm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix *") a) 
    ((-gptr- "gsl_matrix *") b) 
    (int  #{ gsl_blas_dtrsm (  $side ,$uplo ,$transa ,$diag ,$alpha ,$a ,$b) #} )
)


(de gsl_blas_cgemm (    transa  transb  alpha  a  b  beta  c )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) transb)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_matrix_complex_float *") b) 
    ((-gptr- "gsl_complex_float *") beta)                 ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_cgemm (  $transa ,$transb ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_csymm (    side  uplo  alpha  a  b  beta  c )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_matrix_complex_float *") b) 
    ((-gptr- "gsl_complex_float *") beta)                ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_csymm (  $side ,$uplo ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_csyrk (    uplo  trans  alpha  a  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "gsl_complex_float *") beta)                ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_csyrk (  $uplo ,$trans ,*$alpha ,$a ,*$beta ,$c) #} )
)


(de gsl_blas_csyr2k (    uplo  trans  alpha  a  b  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_matrix_complex_float *") b) 
    ((-gptr- "gsl_complex_float *") beta)                 ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_csyr2k (  $uplo ,$trans ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_ctrmm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "gsl_matrix_complex_float *") b) 
    (int  #{ gsl_blas_ctrmm (  $side ,$uplo ,$transa ,$diag ,*$alpha ,$a ,$b) #} )
)


(de gsl_blas_ctrsm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "gsl_matrix_complex_float *") b) 
    (int  #{ gsl_blas_ctrsm (  $side ,$uplo ,$transa ,$diag ,*$alpha ,$a ,$b) #} )
)


(de gsl_blas_zgemm (    transa  transb  alpha  a  b  beta  c )
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) transb)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_matrix_complex *") b) 
    ((-gptr- "gsl_complex *") beta)                     ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zgemm (  $transa ,$transb ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_zsymm (    side  uplo  alpha  a  b  beta  c )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_matrix_complex *") b) 
    ((-gptr- "gsl_complex *") beta)                   ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zsymm (  $side ,$uplo ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_zsyrk (    uplo  trans  alpha  a  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "gsl_complex *") beta)                 ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zsyrk (  $uplo ,$trans ,*$alpha ,$a ,*$beta ,$c) #} )
)


(de gsl_blas_zsyr2k (    uplo  trans  alpha  a  b  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_matrix_complex *") b) 
    ((-gptr- "gsl_complex *") beta)                     ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zsyr2k (  $uplo ,$trans ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_ztrmm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "gsl_matrix_complex *") b) 
    (int  #{ gsl_blas_ztrmm (  $side ,$uplo ,$transa ,$diag ,*$alpha ,$a ,$b) #} )
)


(de gsl_blas_ztrsm (    side  uplo  transa  diag  alpha  a  b )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) transa)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-int-) diag)                ;; cbLas_dIaG_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "gsl_matrix_complex *") b) 
    (int  #{ gsl_blas_ztrsm (  $side ,$uplo ,$transa ,$diag ,*$alpha ,$a ,$b) #} )
)



(de gsl_blas_chemm (    side  uplo  alpha  a  b  beta  c )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_matrix_complex_float *") b) 
    ((-gptr- "gsl_complex_float *") beta)                ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_chemm (  $side ,$uplo ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_cherk (    uplo  trans  alpha  a  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha)                       ;; float -> double
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_cherk (  $uplo ,$trans ,$alpha ,$a ,$beta ,$c) #} )
)


(de gsl_blas_cher2k (    uplo  trans  alpha  a  b  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex_float *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex_float *") a) 
    ((-gptr- "const gsl_matrix_complex_float *") b) 
    ((-double-) beta)                       ;; float -> double
    ((-gptr- "gsl_matrix_complex_float *") c) 
    (int  #{ gsl_blas_cher2k (  $uplo ,$trans ,*$alpha ,$a ,$b ,$beta ,$c) #} )
)


(de gsl_blas_zhemm (    side  uplo  alpha  a  b  beta  c )
    ((-int-) side)                ;; cbLas_sIdE_t (enum) -> int
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_matrix_complex *") b) 
    ((-gptr- "gsl_complex *") beta)               ;; structure -> pointer
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zhemm (  $side ,$uplo ,*$alpha ,$a ,$b ,*$beta ,$c) #} )
)


(de gsl_blas_zherk (    uplo  trans  alpha  a  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-double-) alpha) 
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-double-) beta) 
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zherk (  $uplo ,$trans ,$alpha ,$a ,$beta ,$c) #} )
)


(de gsl_blas_zher2k (    uplo  trans  alpha  a  b  beta  c )
    ((-int-) uplo)                ;; cbLas_uPLO_t (enum) -> int
    ((-int-) trans)                ;; cbLas_tRaNsPOsE_t (enum) -> int
    ((-gptr- "gsl_complex *") alpha)              ;; structure -> pointer
    ((-gptr- "const gsl_matrix_complex *") a) 
    ((-gptr- "const gsl_matrix_complex *") b) 
    ((-double-) beta) 
    ((-gptr- "gsl_matrix_complex *") c) 
    (int  #{ gsl_blas_zher2k (  $uplo ,$trans ,*$alpha ,$a ,$b ,$beta ,$c) #} )
)


;; ********************************************************

(dhc-make ()
  dummy_blas
  gsl_blas_sdsdot
  gsl_blas_dsdot
  gsl_blas_sdot
  gsl_blas_ddot
  gsl_blas_cdotu
  gsl_blas_cdotc
  gsl_blas_zdotu
  gsl_blas_zdotc
  gsl_blas_snrm2
  gsl_blas_sasum
  gsl_blas_dnrm2
  gsl_blas_dasum
  gsl_blas_scnrm2
  gsl_blas_scasum
  gsl_blas_dznrm2
  gsl_blas_dzasum
  gsl_blas_isamax
  gsl_blas_idamax
  gsl_blas_icamax
  gsl_blas_izamax
  gsl_blas_sswap
  gsl_blas_scopy
  gsl_blas_saxpy
  gsl_blas_dswap
  gsl_blas_dcopy
  gsl_blas_daxpy
  gsl_blas_cswap
  gsl_blas_ccopy
  gsl_blas_caxpy
  gsl_blas_zswap
  gsl_blas_zcopy
  gsl_blas_zaxpy
  gsl_blas_srotg
  gsl_blas_srotmg
  gsl_blas_srot
  gsl_blas_srotm
  gsl_blas_drotg
  gsl_blas_drotmg
  gsl_blas_drot
  gsl_blas_drotm
  gsl_blas_sscal
  gsl_blas_dscal
  gsl_blas_cscal
  gsl_blas_zscal
  gsl_blas_csscal
  gsl_blas_zdscal
  gsl_blas_sgemv
  gsl_blas_strmv
  gsl_blas_strsv
  gsl_blas_dgemv
  gsl_blas_dtrmv
  gsl_blas_dtrsv
  gsl_blas_cgemv
  gsl_blas_ctrmv
  gsl_blas_ctrsv
  gsl_blas_zgemv
  gsl_blas_ztrmv
  gsl_blas_ztrsv
  gsl_blas_ssymv
  gsl_blas_sger
  gsl_blas_ssyr
  gsl_blas_ssyr2
  gsl_blas_dsymv
  gsl_blas_dger
  gsl_blas_dsyr
  gsl_blas_dsyr2
  gsl_blas_chemv
  gsl_blas_cgeru
  gsl_blas_cgerc
  gsl_blas_cher
  gsl_blas_cher2
  gsl_blas_zhemv
  gsl_blas_zgeru
  gsl_blas_zgerc
  gsl_blas_zher
  gsl_blas_zher2
  gsl_blas_sgemm
  gsl_blas_ssymm
  gsl_blas_ssyrk
  gsl_blas_ssyr2k
  gsl_blas_strmm
  gsl_blas_strsm
  gsl_blas_dgemm
  gsl_blas_dsymm
  gsl_blas_dsyrk
  gsl_blas_dsyr2k
  gsl_blas_dtrmm
  gsl_blas_dtrsm
  gsl_blas_cgemm
  gsl_blas_csymm
  gsl_blas_csyrk
  gsl_blas_csyr2k
  gsl_blas_ctrmm
  gsl_blas_ctrsm
  gsl_blas_zgemm
  gsl_blas_zsymm
  gsl_blas_zsyrk
  gsl_blas_zsyr2k
  gsl_blas_ztrmm
  gsl_blas_ztrsm
  gsl_blas_chemm
  gsl_blas_cherk
  gsl_blas_cher2k
  gsl_blas_zhemm
  gsl_blas_zherk
  gsl_blas_zher2k
)
