18#ifndef OPAL_GSL_BLAS_HH
19#define OPAL_GSL_BLAS_HH
52 throw std::runtime_error(
"gsl_blas_dgemm: size mismatch");
57 for (
size_t i = 0; i < m; ++i) {
58 for (
size_t j = 0; j < n; ++j) {
65 for (
size_t i = 0; i < m; ++i) {
66 for (
size_t j = 0; j < n; ++j) {
68 for (
size_t l = 0; l < k; ++l) {
99 throw std::runtime_error(
"gsl_blas_zgemm: size mismatch");
103 if (beta.
dat[0] != 1.0 || beta.
dat[1] != 0.0) {
104 for (
size_t i = 0; i < m; ++i) {
105 for (
size_t j = 0; j < n; ++j) {
113 for (
size_t i = 0; i < m; ++i) {
114 for (
size_t j = 0; j < n; ++j) {
116 for (
size_t l = 0; l < k; ++l) {
152 throw std::runtime_error(
"gsl_blas_dgemv: size mismatch");
155 for (
size_t i = 0; i < m; ++i) {
159 for (
size_t i = 0; i < m; ++i) {
161 for (
size_t j = 0; j < n; ++j) {
168 throw std::runtime_error(
"gsl_blas_dgemv: size mismatch");
171 for (
size_t i = 0; i < n; ++i) {
175 for (
size_t i = 0; i < n; ++i) {
177 for (
size_t j = 0; j < m; ++j) {
202 throw std::runtime_error(
"gsl_blas_zgemv: size mismatch");
205 for (
size_t i = 0; i < m; ++i) {
209 for (
size_t i = 0; i < m; ++i) {
211 for (
size_t j = 0; j < n; ++j) {
222 throw std::runtime_error(
"gsl_blas_zgemv: size mismatch");
225 for (
size_t i = 0; i < n; ++i) {
229 for (
size_t i = 0; i < n; ++i) {
231 for (
size_t j = 0; j < m; ++j) {
void gsl_blas_zgemm(CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, gsl_complex alpha, const gsl_matrix_complex *A, const gsl_matrix_complex *B, gsl_complex beta, gsl_matrix_complex *C)
Complex matrix-matrix multiply and accumulate.
CBLAS_TRANSPOSE
Transpose operation selector for BLAS routines.
void gsl_blas_zgemv(CBLAS_TRANSPOSE TransA, gsl_complex alpha, const gsl_matrix_complex *A, const gsl_vector_complex *x, gsl_complex beta, gsl_vector_complex *y)
Complex matrix-vector multiply and accumulate.
void gsl_blas_dgemv(CBLAS_TRANSPOSE TransA, double alpha, const gsl_matrix *A, const gsl_vector *x, double beta, gsl_vector *y)
Real matrix-vector multiply and accumulate.
void gsl_blas_dgemm(CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, double alpha, const gsl_matrix *A, const gsl_matrix *B, double beta, gsl_matrix *C)
Real matrix-matrix multiply and accumulate.
gsl_complex gsl_complex_mul(gsl_complex a, gsl_complex b)
Product .
gsl_complex gsl_complex_conjugate(gsl_complex a)
Complex conjugate .
gsl_complex gsl_complex_add(gsl_complex a, gsl_complex b)
Sum .
gsl_complex * gsl_vector_complex_ptr(gsl_vector_complex *v, size_t i)
Return pointer to element in a complex vector.
double * gsl_vector_ptr(gsl_vector *v, size_t i)
Return pointer to element in a real vector.
double * gsl_matrix_ptr(gsl_matrix *m, size_t i, size_t j)
Return pointer to element in a real matrix.
gsl_complex * gsl_matrix_complex_ptr(gsl_matrix_complex *m, size_t i, size_t j)
Return pointer to element in a complex matrix.
Complex number stored as .
Dense complex matrix in row-major storage.
Dense real matrix in row-major storage.
Dense complex vector with stride.
Dense real vector with stride.