BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00020 #if !defined(INC_OSKI_SCALINFO_H) 00021 00022 #define INC_OSKI_SCALINFO_H 00023 00028 00032 typedef struct tagComplex_t 00033 { 00034 float real; 00035 float imag; 00036 } complex_t; 00037 00041 typedef struct tagDoublecomplex_t 00042 { 00043 double real; 00044 double imag; 00045 } doublecomplex_t; 00046 00048 #define _COMPLEX complex_t 00049 00050 #define _DOUBLE_COMPLEX double_complex_t 00051 00053 #define _RE(x) (x).real 00054 00055 #define _IM(x) (x).imag 00056 00062 typedef struct tagBebop_scalinfo_t 00063 { 00064 oski_id_t id; 00065 const char *name; 00066 char tag; 00067 size_t num_bytes; 00068 } 00069 oski_scalinfo_t; 00070 00081 #define OSKI_SCALIND(macro_tag, conc_typ, name, tag) \ 00082 { OSKI_SCALIND_##macro_tag, name, tag, sizeof(conc_typ) } 00083 00085 #define OSKI_SCALIND_END INVALID_ID 00086 #define OSKI_SCALIND_END_REC OSKI_SCALIND(END, char, "", (char)NULL) 00087 00099 #define OSKI_SCALVAL(macro_tag, conc_typ, name, tag) \ 00100 { OSKI_SCALVAL_##macro_tag, name, tag, sizeof(conc_typ) } 00101 00103 #define OSKI_SCALVAL_END INVALID_ID 00104 #define OSKI_SCALVAL_END_REC OSKI_SCALVAL(END, char, "", (char)NULL) 00105 00115 00117 #define OSKI_SCALIND_INT 1 00118 #define OSKI_SCALIND_INT_REC OSKI_SCALIND(INT, int, "integer", 'i') 00119 00122 #define OSKI_SCALIND_LONG 2 00123 #define OSKI_SCALIND_LONG_REC OSKI_SCALIND(LONG, long, "long", 'l') 00124 00127 00140 00142 #define OSKI_SCALVAL_SINGLE 1 00143 #define OSKI_SCALVAL_SINGLE_REC OSKI_SCALVAL(SINGLE, float, "single", 's') 00144 00147 #define OSKI_SCALVAL_DOUBLE 2 00148 #define OSKI_SCALVAL_DOUBLE_REC OSKI_SCALVAL(DOUBLE, double, "double", 'd') 00149 00152 #define OSKI_SCALVAL_COMPLEX 3 00153 #define OSKI_SCALVAL_COMPLEX_REC \ 00154 OSKI_SCALVAL(COMPLEX, complex_t, "complex", 'c') 00155 00158 #define OSKI_SCALVAL_DOUBLECOMPLEX 4 00159 #define OSKI_SCALVAL_DOUBLECOMPLEX_REC \ 00160 OSKI_SCALVAL(DOUBLECOMPLEX, doublecomplex_t, "double_complex", 'z') 00161 00164 00172 size_t oski_GetNumScalarIndexTypes (void); 00173 00177 const oski_scalinfo_t *oski_LookupScalarIndexInfo (oski_id_t id); 00178 00182 const char *oski_GetScalarIndexName (oski_id_t id); 00183 00187 char oski_GetScalarIndexTag (oski_id_t id); 00188 00192 size_t oski_GetNumScalarValueTypes (void); 00193 00197 const oski_scalinfo_t *oski_LookupScalarValueInfo (oski_id_t id); 00198 00202 const char *oski_GetScalarValueName (oski_id_t id); 00203 00207 char oski_GetScalarValueTag (oski_id_t id); 00208 00209 #endif /* !defined(INC_OSKI_SCALINFO_H) */ 00210 00211 /* eof */