gorgonia.org/gorgonia@v0.9.17/blase/fn.go (about)

     1  package blase
     2  
     3  /*
     4  #include "work.h"
     5  #include "cblas.h"
     6  */
     7  import "C"
     8  
     9  import "unsafe"
    10  
    11  type fnargs struct {
    12  	fn C.cblasFn
    13  
    14  	// things common to most BLAS routines
    15  	order C.cblas_order
    16  	tA    C.cblas_transpose
    17  	tB    C.cblas_transpose
    18  
    19  	// things that needs to be passed to C in a very unsafe manner
    20  	a0 uintptr
    21  	a1 uintptr
    22  	a2 uintptr
    23  	a3 uintptr
    24  
    25  	// any integer parameters
    26  	i0 C.int
    27  	i1 C.int
    28  	i2 C.int
    29  	i3 C.int
    30  	i4 C.int
    31  	i5 C.int
    32  
    33  	// any float64 parameters
    34  	d0 C.double
    35  	d1 C.double
    36  	d2 C.double
    37  	d3 C.double
    38  }
    39  
    40  func (fn *fnargs) toCStruct() C.struct_fnargs {
    41  	return *(*C.struct_fnargs)(unsafe.Pointer(fn))
    42  }
    43  
    44  type blasFn int
    45  
    46  const (
    47  	fn_undefined blasFn = iota
    48  
    49  	fn_cblas_cdotu_sub
    50  	fn_cblas_cdotc_sub
    51  	fn_cblas_zdotu_sub
    52  	fn_cblas_zdotc_sub
    53  	fn_cblas_sswap
    54  	fn_cblas_scopy
    55  	fn_cblas_saxpy
    56  	fn_catlas_saxpby
    57  	fn_cblas_dswap
    58  	fn_cblas_dcopy
    59  	fn_cblas_daxpy
    60  	fn_catlas_daxpby
    61  	fn_cblas_cswap
    62  	fn_cblas_ccopy
    63  	fn_cblas_caxpy
    64  	fn_catlas_caxpby
    65  	fn_cblas_zswap
    66  	fn_cblas_zcopy
    67  	fn_cblas_zaxpy
    68  	fn_catlas_zaxpby
    69  	fn_cblas_srotg
    70  	fn_cblas_srotmg
    71  	fn_cblas_srot
    72  	fn_cblas_srotm
    73  	fn_cblas_drotg
    74  	fn_cblas_drotmg
    75  	fn_cblas_drot
    76  	fn_cblas_drotm
    77  	fn_cblas_sscal
    78  	fn_cblas_dscal
    79  	fn_cblas_cscal
    80  	fn_cblas_zscal
    81  	fn_cblas_csscal
    82  	fn_cblas_zdscal
    83  	fn_cblas_crotg
    84  	fn_cblas_zrotg
    85  	fn_cblas_csrot
    86  	fn_cblas_zdrot
    87  	fn_cblas_sgemv
    88  	fn_cblas_sgbmv
    89  	fn_cblas_strmv
    90  	fn_cblas_stbmv
    91  	fn_cblas_stpmv
    92  	fn_cblas_strsv
    93  	fn_cblas_stbsv
    94  	fn_cblas_stpsv
    95  	fn_cblas_dgemv
    96  	fn_cblas_dgbmv
    97  	fn_cblas_dtrmv
    98  	fn_cblas_dtbmv
    99  	fn_cblas_dtpmv
   100  	fn_cblas_dtrsv
   101  	fn_cblas_dtbsv
   102  	fn_cblas_dtpsv
   103  	fn_cblas_cgemv
   104  	fn_cblas_cgbmv
   105  	fn_cblas_ctrmv
   106  	fn_cblas_ctbmv
   107  	fn_cblas_ctpmv
   108  	fn_cblas_ctrsv
   109  	fn_cblas_ctbsv
   110  	fn_cblas_ctpsv
   111  	fn_cblas_zgemv
   112  	fn_cblas_zgbmv
   113  	fn_cblas_ztrmv
   114  	fn_cblas_ztbmv
   115  	fn_cblas_ztpmv
   116  	fn_cblas_ztrsv
   117  	fn_cblas_ztbsv
   118  	fn_cblas_ztpsv
   119  	fn_cblas_ssymv
   120  	fn_cblas_ssbmv
   121  	fn_cblas_sspmv
   122  	fn_cblas_sger
   123  	fn_cblas_ssyr
   124  	fn_cblas_sspr
   125  	fn_cblas_ssyr2
   126  	fn_cblas_sspr2
   127  	fn_cblas_dsymv
   128  	fn_cblas_dsbmv
   129  	fn_cblas_dspmv
   130  	fn_cblas_dger
   131  	fn_cblas_dsyr
   132  	fn_cblas_dspr
   133  	fn_cblas_dsyr2
   134  	fn_cblas_dspr2
   135  	fn_cblas_chemv
   136  	fn_cblas_chbmv
   137  	fn_cblas_chpmv
   138  	fn_cblas_cgeru
   139  	fn_cblas_cgerc
   140  	fn_cblas_cher
   141  	fn_cblas_chpr
   142  	fn_cblas_cher2
   143  	fn_cblas_chpr2
   144  	fn_cblas_zhemv
   145  	fn_cblas_zhbmv
   146  	fn_cblas_zhpmv
   147  	fn_cblas_zgeru
   148  	fn_cblas_zgerc
   149  	fn_cblas_zher
   150  	fn_cblas_zhpr
   151  	fn_cblas_zher2
   152  	fn_cblas_zhpr2
   153  	fn_cblas_sgemm
   154  	fn_cblas_ssymm
   155  	fn_cblas_ssyrk
   156  	fn_cblas_ssyr2k
   157  	fn_cblas_strmm
   158  	fn_cblas_strsm
   159  	fn_cblas_dgemm
   160  	fn_cblas_dsymm
   161  	fn_cblas_dsyrk
   162  	fn_cblas_dsyr2k
   163  	fn_cblas_dtrmm
   164  	fn_cblas_dtrsm
   165  	fn_cblas_cgemm
   166  	fn_cblas_csymm
   167  	fn_cblas_csyrk
   168  	fn_cblas_csyr2k
   169  	fn_cblas_ctrmm
   170  	fn_cblas_ctrsm
   171  	fn_cblas_zgemm
   172  	fn_cblas_zsymm
   173  	fn_cblas_zsyrk
   174  	fn_cblas_zsyr2k
   175  	fn_cblas_ztrmm
   176  	fn_cblas_ztrsm
   177  	fn_cblas_chemm
   178  	fn_cblas_cherk
   179  	fn_cblas_cher2k
   180  	fn_cblas_zhemm
   181  	fn_cblas_zherk
   182  	fn_cblas_zher2k
   183  )