20#ifndef CCGSL_CBLAS_HPP
21#define CCGSL_CBLAS_HPP
24#include<gsl/gsl_blas.h>
39 CBLAS_TRANSPOSE_t
const NoTrans = CblasNoTrans;
40 CBLAS_TRANSPOSE_t
const Trans = CblasTrans;
42 CBLAS_UPLO_t
const Upper = CblasUpper;
43 CBLAS_UPLO_t
const Lower = CblasLower;
44 CBLAS_DIAG_t
const NonUnit = CblasNonUnit;
45 CBLAS_DIAG_t
const Unit = CblasUnit;
46 CBLAS_SIDE_t
const Left = CblasLeft;
47 CBLAS_SIDE_t
const Right = CblasRight;
69 inline int dsdot( vector_float const& X, vector_float const& Y, double& result ){
70 return gsl_blas_dsdot( X.get(), Y.get(), &
result ); }
91 inline int sdot( vector_float const& X, vector_float const& Y, float& result ){
92 return gsl_blas_sdot( X.get(), Y.get(), &
result ); }
112 inline int ddot( vector const& X, vector const& Y, double& result ){
113 return gsl_blas_ddot( X.get(), Y.get(), &
result ); }
125 return gsl_blas_cdotu( X.
get(), Y.
get(), &dotu->
get() ); }
136 return gsl_blas_cdotc( X.
get(), Y.
get(), &dotc->
get() ); }
146 return gsl_blas_zdotu( X.
get(), Y.
get(), &dotu->
get() ); }
156 return gsl_blas_zdotc( X.
get(), Y.
get(), &dotc->
get() ); }
266 return gsl_blas_saxpy( alpha, X.
get(), Y.
get() ); }
292 return gsl_blas_daxpy( alpha, X.
get(), Y.
get() ); }
301 return gsl_blas_cswap( X.
get(), Y.
get() ); }
310 return gsl_blas_ccopy( X.
get(), Y.
get() ); }
320 return gsl_blas_caxpy( alpha.
get(), X.
get(), Y.
get() ); }
329 return gsl_blas_zswap( X.
get(), Y.
get() ); }
338 return gsl_blas_zcopy( X.
get(), Y.
get() ); }
348 return gsl_blas_zaxpy( alpha.
get(), X.
get(), Y.
get() ); }
359 inline int srotg(
float*
a,
float*
b,
float* c,
float* s ){
360 return gsl_blas_srotg(
a,
b, c, s ); }
371 inline int srotmg(
float* d1,
float* d2,
float* b1,
float b2,
float*
P ){
372 return gsl_blas_srotmg( d1, d2, b1, b2,
P ); }
383 inline int srotg(
float&
a,
float&
b,
float& c,
float& s ){
384 return gsl_blas_srotg( &
a, &
b, &c, &s ); }
395 inline int srotmg(
float& d1,
float& d2,
float& b1,
float b2,
float&
P ){
396 return gsl_blas_srotmg( &d1, &d2, &b1, b2, &
P ); }
407 return gsl_blas_srot( X.
get(), Y.
get(), c, s );
418 return gsl_blas_srotm( X.
get(), Y.
get(),
P ); }
429 inline int drotg(
double*
a,
double*
b,
double* c,
double* s ){
430 return gsl_blas_drotg(
a,
b, c, s ); }
441 inline int drotmg(
double* d1,
double* d2,
double* b1,
double b2,
double*
P ){
442 return gsl_blas_drotmg( d1, d2, b1, b2,
P ); }
453 inline int drotg(
double&
a,
double&
b,
double& c,
double& s ){
454 return gsl_blas_drotg( &
a, &
b, &c, &s ); }
465 inline int drotmg(
double& d1,
double& d2,
double& b1,
double b2,
double&
P ){
466 return gsl_blas_drotmg( &d1, &d2, &b1, b2, &
P ); }
477 template<
typename ARRAY>
478 inline int drotg( ARRAY&
a, ARRAY&
b, ARRAY& c, ARRAY& s ){
479 return gsl_blas_drotg(
a.data(),
b.data(), c.data(), s.data() ); }
491 template<
typename ARRAY>
492 inline int drotmg( ARRAY& d1, ARRAY& d2, ARRAY& b1,
double b2, ARRAY&
P ){
493 return gsl_blas_drotmg( d1.data(), d2.data(), b1.data(), b2,
P.data() ); }
504 return gsl_blas_drot( X.
get(), Y.
get(), c, s ); }
514 return gsl_blas_drotm( X.
get(), Y.
get(),
P ); }
528 inline void dscal(
double alpha,
vector& X ){ gsl_blas_dscal( alpha, X.
get() ); }
536 gsl_blas_cscal( alpha.
get(), X.
get() ); }
571 return gsl_blas_sgemv( TransA, alpha, A.
get(), X.
get(),
beta, Y.
get() ); }
583 strmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
585 return gsl_blas_strmv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
596 inline int strsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
598 return gsl_blas_strsv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
610 inline int dgemv( CBLAS_TRANSPOSE_t TransA,
double alpha,
matrix const& A,
612 return gsl_blas_dgemv( TransA, alpha, A.
get(), X.
get(),
beta, Y.
get() ); }
623 inline int dtrmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
625 return gsl_blas_dtrmv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
636 inline int dtrsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
638 return gsl_blas_dtrsv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
653 return gsl_blas_cgemv( TransA, alpha.
get(), A.
get(), X.
get(),
beta.get(), Y.
get() ); }
664 inline int ctrmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
666 return gsl_blas_ctrmv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
677 inline int ctrsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
679 return gsl_blas_ctrsv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
693 return gsl_blas_zgemv( TransA, alpha.
get(), A.
get(), X.
get(),
beta.get(), Y.
get() ); }
704 inline int ztrmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
706 return gsl_blas_ztrmv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
717 inline int ztrsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
719 return gsl_blas_ztrsv( Uplo, TransA, Diag, A.
get(), X.
get() ); }
733 return gsl_blas_ssymv( Uplo, alpha, A.
get(), X.
get(),
beta, Y.
get() ); }
744 return gsl_blas_sger( alpha, X.
get(), Y.
get(), A.
get() ); }
755 return gsl_blas_ssyr( Uplo, alpha, X.
get(), A.
get() ); }
779 inline int dsymv( CBLAS_UPLO_t Uplo,
double alpha,
781 return gsl_blas_dsymv( Uplo, alpha, A.
get(), X.
get(),
beta, Y.
get() ); }
792 return gsl_blas_dger( alpha, X.
get(), Y.
get(), A.
get() ); }
803 return gsl_blas_dsyr( Uplo, alpha, X.
get(), A.
get() ); }
815 return gsl_blas_dsyr2( Uplo, alpha, X.
get(), Y.
get(), A.
get() ); }
830 return gsl_blas_chemv( Uplo, alpha.
get(), A.
get(), X.
get(),
beta.get(), Y.
get() ); }
842 return gsl_blas_cgeru( alpha.
get(), X.
get(), Y.
get(), A.
get() ); }
854 return gsl_blas_cgerc( alpha.
get(), X.
get(), Y.
get(), A.
get() ); }
866 return gsl_blas_cher( Uplo, alpha, X.
get(), A.
get() ); }
879 return gsl_blas_cher2( Uplo, alpha.
get(), X.
get(), Y.
get(), A.
get() ); }
893 return gsl_blas_zhemv( Uplo, alpha.
get(), A.
get(), X.
get(),
beta.get(), Y.
get() ); }
905 return gsl_blas_zgeru( alpha.
get(), X.
get(), Y.
get(), A.
get() ); }
917 return gsl_blas_zgerc( alpha.
get(), X.
get(), Y.
get(), A.
get() ); }
929 return gsl_blas_zher( Uplo, alpha, X.
get(), A.
get() ); }
942 return gsl_blas_zher2( Uplo, alpha.
get(), X.
get(), Y.
get(), A.
get() ); }
955 inline int sgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB,
float alpha,
957 return gsl_blas_sgemm( TransA, TransB, alpha, A.
get(), B.
get(),
beta, C.
get() ); }
970 inline int ssymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo,
float alpha,
972 return gsl_blas_ssymm( Side, Uplo, alpha, A.
get(), B.
get(),
beta, C.
get() ); }
984 inline int ssyrk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t
Trans,
float alpha,
999 inline int ssyr2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t
Trans,
float alpha,
1014 inline int strmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1016 return gsl_blas_strmm( Side, Uplo, TransA, Diag, alpha, A.
get(), B.
get() ); }
1029 inline int strsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1031 return gsl_blas_strsm( Side, Uplo, TransA, Diag, alpha, A.
get(), B.
get() ); }
1044 inline int dgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB,
double alpha,
1046 return gsl_blas_dgemm( TransA, TransB, alpha, A.
get(), B.
get(),
beta, C.
get() ); }
1059 inline int dsymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo,
double alpha,
1061 return gsl_blas_dsymm( Side, Uplo, alpha, A.
get(), B.
get(),
beta, C.
get() ); }
1073 inline int dsyrk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t
Trans,
double alpha,
1075 return gsl_blas_dsyrk( Uplo,
Trans, alpha, A.
get(),
beta, C.
get() ); }
1088 inline int dsyr2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t
Trans,
double alpha,
1103 inline int dtrmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1104 CBLAS_DIAG_t Diag,
double alpha,
matrix const& A,
matrix& B ){
1105 return gsl_blas_dtrmm( Side, Uplo, TransA, Diag, alpha, A.
get(), B.
get() ); }
1118 inline int dtrsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1119 CBLAS_DIAG_t Diag,
double alpha,
matrix const& A,
matrix& B ){
1120 return gsl_blas_dtrsm( Side, Uplo, TransA, Diag, alpha, A.
get(), B.
get() ); }
1133 inline int cgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB,
1136 return gsl_blas_cgemm( TransA, TransB, alpha.
get(), A.
get(), B.
get(),
beta.get(), C.
get() ); }
1152 return gsl_blas_csymm( Side, Uplo, alpha.
get(), A.
get(), B.
get(),
beta.get(), C.
get() ); }
1195 inline int ctrmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1198 return gsl_blas_ctrmm( Side, Uplo, TransA, Diag, alpha.
get(), A.
get(), B.
get() ); }
1211 inline int ctrsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1214 return gsl_blas_ctrsm( Side, Uplo, TransA, Diag, alpha.
get(), A.
get(), B.
get() ); }
1227 inline int zgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB,
complex const& alpha,
1230 return gsl_blas_zgemm( TransA, TransB, alpha.
get(), A.
get(), B.
get(),
beta.get(), C.
get() ); }
1243 inline int zsymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo,
complex const& alpha,
1246 return gsl_blas_zsymm( Side, Uplo, alpha.
get(), A.
get(), B.
get(),
beta.get(), C.
get() ); }
1289 inline int ztrmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1292 return gsl_blas_ztrmm( Side, Uplo, TransA, Diag, alpha.
get(), A.
get(), B.
get() ); }
1305 inline int ztrsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1308 return gsl_blas_ztrsm( Side, Uplo, TransA, Diag, alpha.
get(), A.
get(), B.
get() ); }
1324 return gsl_blas_chemm( Side, Uplo, alpha.
get(), A.
get(), B.
get(),
beta.get(), C.
get() ); }
1336 inline int cherk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t
Trans,
float alpha,
1338 return gsl_blas_cherk( Uplo,
Trans, alpha, A.
get(),
beta, C.
get() ); }
1367 inline int zhemm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo,
complex const& alpha,
1370 return gsl_blas_zhemm( Side, Uplo, alpha.
get(), A.
get(), B.
get(),
beta.get(), C.
get() ); }
1382 inline int zherk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t
Trans,
double alpha,
1384 return gsl_blas_zherk( Uplo,
Trans, alpha, A.
get(),
beta, C.
get() ); }
This class handles complex_float numbers.
gsl_complex_float & get()
Get the base class object.
This class handles complex numbers.
gsl_complex & get()
Get the base class object.
This class handles matrix_complex_float objects as shared handles.
gsl_matrix_complex_float * get()
Get the gsl_matrix_complex_float.
This class handles matrix_complex objects as shared handles.
gsl_matrix_complex * get()
Get the gsl_matrix_complex.
This class handles matrix_float objects as shared handles.
gsl_matrix_float * get()
Get the gsl_matrix_float.
This class handles matrix objects as shared handles.
gsl_matrix * get()
Get the gsl_matrix.
This class handles vector_complex_float objects as shared handles.
gsl_vector_complex_float * get()
Get the gsl_vector_complex_float.
This class handles vector_complex objects as shared handles.
gsl_vector_complex * get()
Get the gsl_vector_complex.
This class handles vector_float objects as shared handles.
gsl_vector_float * get()
Get the gsl_vector_float.
This class handles vector objects as shared handles.
gsl_vector * get()
Get the gsl_vector.
CBLAS_TRANSPOSE_t const NoTrans
No transpose.
int cgeru(complex_float const &alpha, vector_complex_float const &X, vector_complex_float const &Y, matrix_complex_float &A)
C++ version of gsl_blas_cgeru().
int zcopy(vector_complex const &X, vector_complex &Y)
C++ version of gsl_blas_zcopy().
CBLAS_TRANSPOSE_t const Trans
Transpose.
void cscal(complex_float const &alpha, vector_complex_float &X)
C++ version of gsl_blas_cscal().
CBLAS_INDEX_t isamax(vector_float const &X)
C++ version of gsl_blas_isamax().
int sgemv(CBLAS_TRANSPOSE_t TransA, float alpha, matrix_float const &A, vector_float const &X, float beta, vector_float &Y)
C++ version of gsl_blas_sgemv().
int zhemm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex const &alpha, matrix_complex const &A, matrix_complex const &B, complex const &beta, matrix_complex &C)
C++ version of gsl_blas_zhemm().
int zgeru(complex const &alpha, vector_complex const &X, vector_complex const &Y, matrix_complex &A)
C++ version of gsl_blas_zgeru().
CBLAS_SIDE_t const Right
Apply to right matrix.
float sasum(vector_float const &X)
C++ version of gsl_blas_sasum().
CBLAS_SIDE_t const Left
Apply to left matrix.
int dsdot(vector_float const &X, vector_float const &Y, double &result)
C++ version of gsl_blas_dsdot().
int cher(CBLAS_UPLO_t Uplo, float alpha, vector_complex_float const &X, matrix_complex_float &A)
C++ version of gsl_blas_cher().
int cgemm(CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float const &B, complex_float const &beta, matrix_complex_float &C)
C++ version of gsl_blas_cgemm().
int dgemv(CBLAS_TRANSPOSE_t TransA, double alpha, matrix const &A, vector const &X, double beta, vector &Y)
C++ version of gsl_blas_dgemv().
int srotg(float &a, float &b, float &c, float &s)
C++ version of gsl_blas_srotg().
int drot(vector &X, vector &Y, double const c, double const s)
C++ version of gsl_blas_drot().
int zher(CBLAS_UPLO_t Uplo, double alpha, vector_complex const &X, matrix_complex &A)
C++ version of gsl_blas_zher().
int dsymv(CBLAS_UPLO_t Uplo, double alpha, matrix const &A, vector const &X, double beta, vector &Y)
C++ version of gsl_blas_dsymv().
int cdotc(vector_complex_float const &X, vector_complex_float const &Y, complex_float *dotc)
C++ version of gsl_blas_cdotc().
int zaxpy(complex const &alpha, vector_complex const &X, vector_complex &Y)
C++ version of gsl_blas_zaxpy().
int ssymv(CBLAS_UPLO_t Uplo, float alpha, matrix_float const &A, vector_float const &X, float beta, vector_float &Y)
C++ version of gsl_blas_ssymv().
int ctrmv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix_complex_float const &A, vector_complex_float &X)
C++ version of gsl_blas_ctrmv().
double dnrm2(vector const &X)
C++ version of gsl_blas_dnrm2().
int zsyr2k(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex const &alpha, matrix_complex const &A, matrix_complex const &B, complex const &beta, matrix_complex &C)
C++ version of gsl_blas_zsyr2k().
float scnrm2(vector_complex_float const &X)
C++ version of gsl_blas_scnrm2().
int cherk(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, float alpha, matrix_complex_float const &A, float beta, matrix_complex_float &C)
C++ version of gsl_blas_cherk().
int zdotu(vector_complex const &X, vector_complex const &Y, complex *dotu)
C++ version of gsl_blas_zdotu().
int dtrsv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix const &A, vector &X)
C++ version of gsl_blas_dtrsv().
int dtrsm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, double alpha, matrix const &A, matrix &B)
C++ version of gsl_blas_dtrsm().
int scopy(vector_float const &X, vector_float &Y)
C++ version of gsl_blas_scopy().
CBLAS_INDEX_t icamax(vector_complex_float const &X)
C++ version of gsl_blas_icamax().
int srotmg(float &d1, float &d2, float &b1, float b2, float &P)
C++ version of gsl_blas_srotmg().
int sgemm(CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, float alpha, matrix_float const &A, matrix_float const &B, float beta, matrix_float &C)
C++ version of gsl_blas_sgemm().
int ccopy(vector_complex_float const &X, vector_complex_float &Y)
C++ version of gsl_blas_ccopy().
int ssyr(CBLAS_UPLO_t Uplo, float alpha, vector_float const &X, matrix_float &A)
C++ version of gsl_blas_ssyr().
int strsm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, float alpha, matrix_float const &A, matrix_float &B)
C++ version of gsl_blas_strsm().
int dcopy(vector const &X, vector &Y)
C++ version of gsl_blas_dcopy().
CBLAS_INDEX_t izamax(vector_complex const &X)
C++ version of gsl_blas_izamax().
CBLAS_INDEX_t idamax(vector const &X)
C++ version of gsl_blas_idamax().
int zgerc(complex const &alpha, vector_complex const &X, vector_complex const &Y, matrix_complex &A)
C++ version of gsl_blas_zgerc().
int dsymm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, double alpha, matrix const &A, matrix const &B, double beta, matrix &C)
C++ version of gsl_blas_dsymm().
int dsyr(CBLAS_UPLO_t Uplo, double alpha, vector const &X, matrix &A)
C++ version of gsl_blas_dsyr().
int ztrmm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, complex const &alpha, matrix_complex const &A, matrix_complex &B)
C++ version of gsl_blas_ztrmm().
int ctrmm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float &B)
C++ version of gsl_blas_ctrmm().
int ssymm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, float alpha, matrix_float const &A, matrix_float const &B, float beta, matrix_float &C)
C++ version of gsl_blas_ssymm().
int zswap(vector_complex &X, vector_complex &Y)
C++ version of gsl_blas_zswap().
int dtrmv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix const &A, vector &X)
C++ version of gsl_blas_dtrmv().
int zsyrk(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex const &alpha, matrix_complex const &A, complex const &beta, matrix_complex &C)
C++ version of gsl_blas_zsyrk().
int dsyr2(CBLAS_UPLO_t Uplo, double alpha, vector const &X, vector const &Y, matrix &A)
C++ version of gsl_blas_dsyr2().
int ztrsm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, complex const &alpha, matrix_complex const &A, matrix_complex &B)
C++ version of gsl_blas_ztrsm().
int sger(float alpha, vector_float const &X, vector_float const &Y, matrix_float &A)
C++ version of gsl_blas_sger().
int ztrsv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix_complex const &A, vector_complex &X)
C++ version of gsl_blas_ztrsv().
CBLAS_UPLO_t const Lower
Lower triangular.
int drotm(vector &X, vector &Y, double const P[])
C++ version of gsl_blas_drotm().
void csscal(float alpha, vector_complex_float &X)
C++ version of gsl_blas_csscal().
CBLAS_TRANSPOSE_t const ConjTrans
Hermitian transpose.
int zgemv(CBLAS_TRANSPOSE_t TransA, complex const &alpha, matrix_complex const &A, vector_complex const &X, complex const &beta, vector_complex &Y)
C++ version of gsl_blas_zgemv().
int strsv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix_float const &A, vector_float &X)
C++ version of gsl_blas_strsv().
int cher2k(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float const &B, float beta, matrix_complex_float &C)
C++ version of gsl_blas_cher2k().
int zherk(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, double alpha, matrix_complex const &A, double beta, matrix_complex &C)
C++ version of gsl_blas_zherk().
int cgerc(complex_float const &alpha, vector_complex_float const &X, vector_complex_float const &Y, matrix_complex_float &A)
C++ version of gsl_blas_cgerc().
int dger(double alpha, vector const &X, vector const &Y, matrix &A)
C++ version of gsl_blas_dger().
void zdscal(double alpha, vector_complex &X)
C++ version of gsl_blas_zdscal().
int ctrsm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float &B)
C++ version of gsl_blas_ctrsm().
int srotm(vector_float &X, vector_float &Y, float const P[])
C++ version of gsl_blas_srotm().
int ssyrk(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, float alpha, matrix_float const &A, float beta, matrix_float &C)
C++ version of gsl_blas_ssyrk().
int cdotu(vector_complex_float const &X, vector_complex_float const &Y, complex_float *dotu)
C++ version of gsl_blas_cdotu().
int zhemv(CBLAS_UPLO_t Uplo, complex const &alpha, matrix_complex const &A, vector_complex const &X, complex const &beta, vector_complex &Y)
C++ version of gsl_blas_zhemv().
int ddot(vector const &X, vector const &Y, double &result)
C++ version of gsl_blas_ddot().
int zdotc(vector_complex const &X, vector_complex const &Y, complex *dotc)
C++ version of gsl_blas_zdotc().
int dsyr2k(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, double alpha, matrix const &A, matrix const &B, double beta, matrix &C)
C++ version of gsl_blas_dsyr2k().
int sswap(vector_float &X, vector_float &Y)
C++ version of gsl_blas_sswap().
CBLAS_UPLO_t const Upper
Upper triangular.
float snrm2(vector_float const &X)
C++ version of gsl_blas_snrm2().
int daxpy(double alpha, vector const &X, vector &Y)
C++ version of gsl_blas_daxpy().
int cher2(CBLAS_UPLO_t Uplo, complex_float const &alpha, vector_complex_float const &X, vector_complex_float const &Y, matrix_complex_float &A)
C++ version of gsl_blas_cher2().
void dscal(double alpha, vector &X)
C++ version of gsl_blas_dscal().
double dzasum(vector_complex const &X)
C++ version of gsl_blas_dzasum().
int caxpy(complex_float const &alpha, vector_complex_float const &X, vector_complex_float &Y)
C++ version of gsl_blas_caxpy().
int zsymm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex const &alpha, matrix_complex const &A, matrix_complex const &B, complex const &beta, matrix_complex &C)
C++ version of gsl_blas_zsymm().
int csymm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float const &B, complex_float const &beta, matrix_complex_float &C)
C++ version of gsl_blas_csymm().
CBLAS_DIAG_t const Unit
Unit diagonal.
int strmm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, float alpha, matrix_float const &A, matrix_float &B)
C++ version of gsl_blas_strmm().
int sdot(vector_float const &X, vector_float const &Y, float &result)
C++ version of gsl_blas_sdot().
int dswap(vector &X, vector &Y)
C++ version of gsl_blas_dswap().
CBLAS_DIAG_t const NonUnit
Non unit diagonal.
int chemv(CBLAS_UPLO_t Uplo, complex_float const &alpha, matrix_complex_float const &A, vector_complex_float const &X, complex_float const &beta, vector_complex_float &Y)
C++ version of gsl_blas_chemv().
int zher2k(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex const &alpha, matrix_complex const &A, matrix_complex const &B, double beta, matrix_complex &C)
C++ version of gsl_blas_zher2k().
int srot(vector_float &X, vector_float &Y, float c, float s)
C++ version of gsl_blas_srot().
int zher2(CBLAS_UPLO_t Uplo, complex const alpha, vector_complex const &X, vector_complex const &Y, matrix_complex &A)
C++ version of gsl_blas_zher2().
int zgemm(CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, complex const &alpha, matrix_complex const &A, matrix_complex const &B, complex const &beta, matrix_complex &C)
C++ version of gsl_blas_zgemm().
int chemm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float const &B, complex_float const &beta, matrix_complex_float &C)
C++ version of gsl_blas_chemm().
int csyr2k(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex_float const &alpha, matrix_complex_float const &A, matrix_complex_float const &B, complex_float const &beta, matrix_complex_float &C)
C++ version of gsl_blas_csyr2k().
int saxpy(float alpha, vector_float const &X, vector_float &Y)
C++ version of gsl_blas_saxpy().
int dgemm(CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, double alpha, matrix const &A, matrix const &B, double beta, matrix &C)
C++ version of gsl_blas_dgemm().
int csyrk(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex_float const &alpha, matrix_complex_float const &A, complex_float const &beta, matrix_complex_float &C)
C++ version of gsl_blas_csyrk().
int drotg(ARRAY &a, ARRAY &b, ARRAY &c, ARRAY &s)
C++ version of gsl_blas_drotg().
int dtrmm(CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, double alpha, matrix const &A, matrix &B)
C++ version of gsl_blas_dtrmm().
int drotmg(ARRAY &d1, ARRAY &d2, ARRAY &b1, double b2, ARRAY &P)
C++ version of gsl_blas_drotmg().
int dsyrk(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, double alpha, matrix const &A, double beta, matrix &C)
C++ version of gsl_blas_dsyrk().
int cswap(vector_complex_float &X, vector_complex_float &Y)
C++ version of gsl_blas_cswap().
double dznrm2(vector_complex const &X)
C++ version of gsl_blas_dznrm2().
int strmv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix_float const &A, vector_float &X)
C++ version of gsl_blas_strmv().
int ssyr2k(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, float alpha, matrix_float const &A, matrix_float const &B, float beta, matrix_float &C)
C++ version of gsl_blas_ssyr2k().
int ssyr2(CBLAS_UPLO_t Uplo, float alpha, vector_float const &X, vector_float const &Y, matrix_float &A)
C++ version of gsl_blas_ssyr2().
void zscal(complex const &alpha, vector_complex &X)
C++ version of gsl_blas_zscal().
int cgemv(CBLAS_TRANSPOSE_t TransA, complex_float const &alpha, matrix_complex_float const &A, vector_complex_float const &X, complex_float const &beta, vector_complex_float &Y)
C++ version of gsl_blas_cgemv().
int ztrmv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix_complex const &A, vector_complex &X)
C++ version of gsl_blas_ztrmv().
void sscal(float alpha, vector_float &X)
C++ version of gsl_blas_sscal().
double dasum(vector const &X)
C++ version of gsl_blas_dasum().
float scasum(vector_complex_float const &X)
C++ version of gsl_blas_scasum().
int ctrsv(CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag, matrix_complex_float const &A, vector_complex_float &X)
C++ version of gsl_blas_ctrsv().
double beta(rng const &r, double const a, double const b)
C++ version of gsl_ran_beta().
double P(double phi, double k, double n, mode_t mode)
C++ version of gsl_sf_ellint_P().
double b(int order, double qq)
C++ version of gsl_sf_mathieu_b().
double a(int order, double qq)
C++ version of gsl_sf_mathieu_a().
gsl_sf_result result
Typedef for gsl_sf_result.
The gsl package creates an interface to the GNU Scientific Library for C++.