26 #if defined (HAVE_CONFIG_H)
38 #define xSTRINGIZE(x) #x
39 #define STRINGIZE(x) xSTRINGIZE(x)
50 return "unknown BLAS";
57 typedef void (*flexi_f_type) (
int*,
int*,
int*);
58 flexi_f_type flexi_f_ptr =
reinterpret_cast<flexi_f_type
>
59 (dyn_libs.
search (
"flexiblas_get_version"));
66 flexi_f_ptr (&v_major, &v_minor, &v_patch);
69 s <<
"FlexiBLAS Version "
70 << v_major <<
"." << v_minor <<
"." << v_patch;
76 typedef char * (*open_fcn_type) (void);
77 open_fcn_type open_f_ptr =
reinterpret_cast<open_fcn_type
>
78 (dyn_libs.
search (
"openblas_get_config"));
85 retval +=
"OpenBLAS (config: " + std::string (open_f_ptr ()) +
")";
89 else if (dyn_libs.
search (
"openblas_get_num_threads"))
94 retval +=
"OpenBLAS (config: unknown)";
98 if (dyn_libs.
search (
"gotoblas_profile_init"))
109 if (dyn_libs.
search (
"ATL_buildinfo"))
118 typedef void (*acml_f_type) (
int*,
int*,
int*);
119 acml_f_type acml_f_ptr =
reinterpret_cast<acml_f_type
>
120 (dyn_libs.
search (
"acmlversion"));
127 acml_f_ptr (&v_major, &v_minor, &v_patch);
129 std::ostringstream s;
130 s <<
"ACML BLAS Version "
131 << v_major <<
"." << v_minor <<
"." << v_patch;
140 typedef void (*mkl_f_type) (
char*, int);
141 mkl_f_type mkl_f_ptr =
reinterpret_cast<mkl_f_type
>
142 (dyn_libs.
search (
"mkl_get_version_string"));
148 mkl_f_ptr (buf,
len);
153 retval += std::string (buf);
158 retval =
"unknown or reference BLAS";
165 std::string
retval =
"unknown LAPACK";
175 ilaver_fcn_type f_ptr =
reinterpret_cast<ilaver_fcn_type
>
183 f_ptr (v_major, v_minor, v_patch);
185 std::ostringstream s;
186 s <<
"Linear Algebra PACKage Version "
187 << v_major <<
"." << v_minor <<
"." << v_patch;
void * search(const std::string &nm, const name_mangler &mangler=name_mangler()) const
octave_f77_int_type F77_INT
F77_RET_T(F77_CONST_CHAR_ARG_DECL, F77_CONST_CHAR_ARG_DECL, F77_CONST_CHAR_ARG_DECL, const F77_INT &, const F77_INT &, const F77_INT &, F77_INT &, F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, F77_DBLE *, F77_DBLE *, const F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, F77_INT *, F77_INT &F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL)
std::string blas_version(void)
std::string lapack_version(void)
octave_value::octave_value(const Array< char > &chm, char type) return retval
F77_RET_T F77_FUNC(xerbla, XERBLA)(F77_CONST_CHAR_ARG_DEF(s_arg