gorgonia.org/gorgonia@v0.9.17/blase/work.h (about)

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