ccgsl 2.7.2
C++wrappersforGnuScientificLibrary
blas.hpp
Go to the documentation of this file.
1/*
2 * $Id: blas.hpp 16 2011-12-26 12:54:57Z jdl3 $
3 * Copyright (C) 2010, 2019, 2020 John D Lamb
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20#ifndef CCGSL_CBLAS_HPP
21#define CCGSL_CBLAS_HPP
22
23#include<cmath>
24#include<gsl/gsl_blas.h>
25#include<vector>
26#include"vector_float.hpp"
27#include"vector_complex.hpp"
29#include"matrix.hpp"
30#include"matrix_float.hpp"
31#include"matrix_complex.hpp"
33
34namespace gsl {
38 namespace blas {
39 CBLAS_TRANSPOSE_t const NoTrans = CblasNoTrans;
40 CBLAS_TRANSPOSE_t const Trans = CblasTrans;
41 CBLAS_TRANSPOSE_t const ConjTrans = CblasConjTrans;
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;
49 // Level 1
50
51#ifndef DOXYGEN_SKIP
59 inline int dsdot( vector_float const& X, vector_float const& Y, double* result ){
60 return gsl_blas_dsdot( X.get(), Y.get(), result ); }
61#endif // DOXYGEN_SKIP
69 inline int dsdot( vector_float const& X, vector_float const& Y, double& result ){
70 return gsl_blas_dsdot( X.get(), Y.get(), &result ); }
71
72
73#ifndef DOXYGEN_SKIP
81 inline int sdot( vector_float const& X, vector_float const& Y, float* result ){
82 return gsl_blas_sdot( X.get(), Y.get(), result ); }
83#endif // DOXYGEN_SKIP
91 inline int sdot( vector_float const& X, vector_float const& Y, float& result ){
92 return gsl_blas_sdot( X.get(), Y.get(), &result ); }
93
94#ifndef DOXYGEN_SKIP
102 inline int ddot( vector const& X, vector const& Y, double* result ){
103 return gsl_blas_ddot( X.get(), Y.get(), result ); }
104#endif // DOXYGEN_SKIP
112 inline int ddot( vector const& X, vector const& Y, double& result ){
113 return gsl_blas_ddot( X.get(), Y.get(), &result ); }
114
115
123 inline int cdotu( vector_complex_float const& X, vector_complex_float const& Y,
124 complex_float* dotu ){
125 return gsl_blas_cdotu( X.get(), Y.get(), &dotu->get() ); }
126
134 inline int cdotc( vector_complex_float const& X, vector_complex_float const& Y,
135 complex_float* dotc ){
136 return gsl_blas_cdotc( X.get(), Y.get(), &dotc->get() ); }
137
145 inline int zdotu( vector_complex const& X, vector_complex const& Y, complex* dotu ){
146 return gsl_blas_zdotu( X.get(), Y.get(), &dotu->get() ); }
147
155 inline int zdotc( vector_complex const& X, vector_complex const& Y, complex* dotc ){
156 return gsl_blas_zdotc( X.get(), Y.get(), &dotc->get() ); }
157
163 inline float snrm2( vector_float const& X ){ return gsl_blas_snrm2( X.get() ); }
164
170 inline float sasum( vector_float const& X ){ return gsl_blas_sasum( X.get() ); }
171
177 inline double dnrm2( vector const& X ){ return gsl_blas_dnrm2( X.get() ); }
178
184 inline double dasum( vector const& X ){ return gsl_blas_dasum( X.get() ); }
185
191 inline float scnrm2( vector_complex_float const& X ){ return gsl_blas_scnrm2( X.get() ); }
192
198 inline float scasum( vector_complex_float const& X ){ return gsl_blas_scasum( X.get() ); }
199
205 inline double dznrm2( vector_complex const& X ){ return gsl_blas_dznrm2( X.get() ); }
206
212 inline double dzasum( vector_complex const& X ){ return gsl_blas_dzasum( X.get() ); }
213
219 inline CBLAS_INDEX_t isamax( vector_float const& X ){ return gsl_blas_isamax( X.get() ); }
220
226 inline CBLAS_INDEX_t idamax( vector const& X ){ return gsl_blas_idamax( X.get() ); }
227
233 inline CBLAS_INDEX_t icamax( vector_complex_float const& X ){ return gsl_blas_icamax( X.get() ); }
234
240 inline CBLAS_INDEX_t izamax( vector_complex const& X ){ return gsl_blas_izamax( X.get() ); }
241
248 inline int sswap( vector_float& X, vector_float& Y ){ return gsl_blas_sswap( X.get(), Y.get() ); }
249
256 inline int scopy( vector_float const& X, vector_float& Y ){ return gsl_blas_scopy( X.get(), Y.get() ); }
257
265 inline int saxpy( float alpha, vector_float const& X, vector_float& Y ){
266 return gsl_blas_saxpy( alpha, X.get(), Y.get() ); }
267
274 inline int dswap( vector& X, vector& Y ){ return gsl_blas_dswap( X.get(), Y.get() ); }
275
282 inline int dcopy( vector const& X, vector& Y ){ return gsl_blas_dcopy( X.get(), Y.get() ); }
283
291 inline int daxpy( double alpha, vector const& X, vector& Y ){
292 return gsl_blas_daxpy( alpha, X.get(), Y.get() ); }
293
301 return gsl_blas_cswap( X.get(), Y.get() ); }
302
310 return gsl_blas_ccopy( X.get(), Y.get() ); }
311
319 inline int caxpy( complex_float const& alpha, vector_complex_float const& X, vector_complex_float& Y ){
320 return gsl_blas_caxpy( alpha.get(), X.get(), Y.get() ); }
321
328 inline int zswap( vector_complex& X, vector_complex& Y ){
329 return gsl_blas_zswap( X.get(), Y.get() ); }
330
337 inline int zcopy( vector_complex const& X, vector_complex& Y ){
338 return gsl_blas_zcopy( X.get(), Y.get() ); }
339
347 inline int zaxpy( complex const& alpha, vector_complex const& X, vector_complex& Y ){
348 return gsl_blas_zaxpy( alpha.get(), X.get(), Y.get() ); }
349
350#ifndef DOXYGEN_SKIP
359 inline int srotg( float* a, float* b, float* c, float* s ){
360 return gsl_blas_srotg( a, b, c, s ); }
361
371 inline int srotmg( float* d1, float* d2, float* b1, float b2, float* P ){
372 return gsl_blas_srotmg( d1, d2, b1, b2, P ); }
373#endif
374
383 inline int srotg( float& a, float& b, float& c, float& s ){
384 return gsl_blas_srotg( &a, &b, &c, &s ); }
385
395 inline int srotmg( float& d1, float& d2, float& b1, float b2, float& P ){
396 return gsl_blas_srotmg( &d1, &d2, &b1, b2, &P ); }
397
406 inline int srot( vector_float& X, vector_float& Y, float c, float s ){
407 return gsl_blas_srot( X.get(), Y.get(), c, s );
408 }
409
417 inline int srotm( vector_float& X, vector_float& Y, float const P[] ){
418 return gsl_blas_srotm( X.get(), Y.get(), P ); }
419
420#ifndef DOXYGEN_SKIP
429 inline int drotg( double* a, double* b, double* c, double* s ){
430 return gsl_blas_drotg( a, b, c, s ); }
431
441 inline int drotmg( double* d1, double* d2, double* b1, double b2, double* P ){
442 return gsl_blas_drotmg( d1, d2, b1, b2, P ); }
443#endif
444
453 inline int drotg( double& a, double& b, double& c, double& s ){
454 return gsl_blas_drotg( &a, &b, &c, &s ); }
455
465 inline int drotmg( double& d1, double& d2, double& b1, double b2, double& P ){
466 return gsl_blas_drotmg( &d1, &d2, &b1, b2, &P ); }
467
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() ); }
480
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() ); }
494
503 inline int drot( vector& X, vector& Y, double const c, double const s ){
504 return gsl_blas_drot( X.get(), Y.get(), c, s ); }
505
513 inline int drotm( vector& X, vector& Y, double const P[] ){
514 return gsl_blas_drotm( X.get(), Y.get(), P ); }
515
521 inline void sscal( float alpha, vector_float& X ){ gsl_blas_sscal( alpha, X.get() ); }
522
528 inline void dscal( double alpha, vector& X ){ gsl_blas_dscal( alpha, X.get() ); }
529
535 inline void cscal( complex_float const& alpha, vector_complex_float& X ){
536 gsl_blas_cscal( alpha.get(), X.get() ); }
537
543 inline void zscal( complex const& alpha, vector_complex& X ){ gsl_blas_zscal( alpha.get(), X.get() ); }
544
550 inline void csscal( float alpha, vector_complex_float& X ){ gsl_blas_csscal( alpha, X.get() ); }
551
557 inline void zdscal( double alpha, vector_complex& X ){ gsl_blas_zdscal( alpha, X.get() ); }
558
569 inline int sgemv( CBLAS_TRANSPOSE_t TransA, float alpha, matrix_float const& A,
570 vector_float const& X, float beta, vector_float& Y ){
571 return gsl_blas_sgemv( TransA, alpha, A.get(), X.get(), beta, Y.get() ); }
572
582 inline int
583 strmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
584 matrix_float const& A, vector_float& X ){
585 return gsl_blas_strmv( Uplo, TransA, Diag, A.get(), X.get() ); }
586
596 inline int strsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
597 CBLAS_DIAG_t Diag, matrix_float const& A, vector_float& X ){
598 return gsl_blas_strsv( Uplo, TransA, Diag, A.get(), X.get() ); }
599
610 inline int dgemv( CBLAS_TRANSPOSE_t TransA, double alpha, matrix const& A,
611 vector const& X, double beta, vector& Y ){
612 return gsl_blas_dgemv( TransA, alpha, A.get(), X.get(), beta, Y.get() ); }
613
623 inline int dtrmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
624 matrix const& A, vector& X ){
625 return gsl_blas_dtrmv( Uplo, TransA, Diag, A.get(), X.get() ); }
626
636 inline int dtrsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
637 matrix const& A, vector& X ){
638 return gsl_blas_dtrsv( Uplo, TransA, Diag, A.get(), X.get() ); }
639
650 inline int cgemv( CBLAS_TRANSPOSE_t TransA, complex_float const& alpha,
653 return gsl_blas_cgemv( TransA, alpha.get(), A.get(), X.get(), beta.get(), Y.get() ); }
654
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() ); }
667
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() ); }
680
691 inline int zgemv( CBLAS_TRANSPOSE_t TransA, complex const& alpha, matrix_complex const& A,
692 vector_complex const& X, complex const& beta, vector_complex& Y ){
693 return gsl_blas_zgemv( TransA, alpha.get(), A.get(), X.get(), beta.get(), Y.get() ); }
694
704 inline int ztrmv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
705 matrix_complex const& A, vector_complex& X ){
706 return gsl_blas_ztrmv( Uplo, TransA, Diag, A.get(), X.get() ); }
707
717 inline int ztrsv( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA, CBLAS_DIAG_t Diag,
718 matrix_complex const& A, vector_complex& X ){
719 return gsl_blas_ztrsv( Uplo, TransA, Diag, A.get(), X.get() ); }
720
731 inline int ssymv( CBLAS_UPLO_t Uplo, float alpha, matrix_float const& A,
732 vector_float const& X, float beta, vector_float& Y ){
733 return gsl_blas_ssymv( Uplo, alpha, A.get(), X.get(), beta, Y.get() ); }
734
743 inline int sger( float alpha, vector_float const& X, vector_float const& Y, matrix_float& A ){
744 return gsl_blas_sger( alpha, X.get(), Y.get(), A.get() ); }
745
754 inline int ssyr( CBLAS_UPLO_t Uplo, float alpha, vector_float const& X, matrix_float& A ){
755 return gsl_blas_ssyr( Uplo, alpha, X.get(), A.get() ); }
756
766 inline int ssyr2( CBLAS_UPLO_t Uplo, float alpha, vector_float const& X, vector_float const& Y,
767 matrix_float& A ){ return gsl_blas_ssyr2( Uplo, alpha, X.get(), Y.get(), A.get() ); }
768
779 inline int dsymv( CBLAS_UPLO_t Uplo, double alpha,
780 matrix const& A, vector const& X, double beta, vector& Y ){
781 return gsl_blas_dsymv( Uplo, alpha, A.get(), X.get(), beta, Y.get() ); }
782
791 inline int dger( double alpha, vector const& X, vector const& Y, matrix& A ){
792 return gsl_blas_dger( alpha, X.get(), Y.get(), A.get() ); }
793
802 inline int dsyr( CBLAS_UPLO_t Uplo, double alpha, vector const& X, matrix& A ){
803 return gsl_blas_dsyr( Uplo, alpha, X.get(), A.get() ); }
804
814 inline int dsyr2( CBLAS_UPLO_t Uplo, double alpha, vector const& X, vector const& Y, matrix& A ){
815 return gsl_blas_dsyr2( Uplo, alpha, X.get(), Y.get(), A.get() ); }
816
827 inline int chemv( CBLAS_UPLO_t Uplo, complex_float const& alpha,
830 return gsl_blas_chemv( Uplo, alpha.get(), A.get(), X.get(), beta.get(), Y.get() ); }
831
840 inline int cgeru( complex_float const& alpha, vector_complex_float const& X,
842 return gsl_blas_cgeru( alpha.get(), X.get(), Y.get(), A.get() ); }
843
852 inline int cgerc( complex_float const& alpha, vector_complex_float const& X,
854 return gsl_blas_cgerc( alpha.get(), X.get(), Y.get(), A.get() ); }
855
864 inline int cher( CBLAS_UPLO_t Uplo, float alpha, vector_complex_float const& X,
866 return gsl_blas_cher( Uplo, alpha, X.get(), A.get() ); }
867
877 inline int cher2( CBLAS_UPLO_t Uplo, complex_float const& alpha,
879 return gsl_blas_cher2( Uplo, alpha.get(), X.get(), Y.get(), A.get() ); }
880
891 inline int zhemv( CBLAS_UPLO_t Uplo, complex const& alpha, matrix_complex const& A,
892 vector_complex const& X, complex const& beta, vector_complex& Y ){
893 return gsl_blas_zhemv( Uplo, alpha.get(), A.get(), X.get(), beta.get(), Y.get() ); }
894
903 inline int zgeru( complex const& alpha, vector_complex const& X, vector_complex const& Y,
904 matrix_complex& A ){
905 return gsl_blas_zgeru( alpha.get(), X.get(), Y.get(), A.get() ); }
906
915 inline int zgerc( complex const& alpha, vector_complex const& X, vector_complex const& Y,
916 matrix_complex& A ){
917 return gsl_blas_zgerc( alpha.get(), X.get(), Y.get(), A.get() ); }
918
927 inline int zher( CBLAS_UPLO_t Uplo, double alpha, vector_complex const& X,
928 matrix_complex& A ){
929 return gsl_blas_zher( Uplo, alpha, X.get(), A.get() ); }
930
940 inline int zher2( CBLAS_UPLO_t Uplo, complex const alpha, vector_complex const& X,
941 vector_complex const& Y, matrix_complex& A ){
942 return gsl_blas_zher2( Uplo, alpha.get(), X.get(), Y.get(), A.get() ); }
943
955 inline int sgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, float alpha,
956 matrix_float const& A, matrix_float const& B, float beta, matrix_float& C ){
957 return gsl_blas_sgemm( TransA, TransB, alpha, A.get(), B.get(), beta, C.get() ); }
958
970 inline int ssymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, float alpha,
971 matrix_float const& A, matrix_float const& B, float beta, matrix_float& C ){
972 return gsl_blas_ssymm( Side, Uplo, alpha, A.get(), B.get(), beta, C.get() ); }
973
984 inline int ssyrk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, float alpha,
985 matrix_float const& A, float beta, matrix_float& C ){
986 return gsl_blas_ssyrk( Uplo, Trans, alpha, A.get(), beta, C.get() ); }
987
999 inline int ssyr2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, float alpha,
1000 matrix_float const& A, matrix_float const& B, float beta, matrix_float& C ){
1001 return gsl_blas_ssyr2k( Uplo, Trans, alpha, A.get(), B.get(), beta, C.get() ); }
1002
1014 inline int strmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1015 CBLAS_DIAG_t Diag, float alpha, matrix_float const& A, matrix_float& B ){
1016 return gsl_blas_strmm( Side, Uplo, TransA, Diag, alpha, A.get(), B.get() ); }
1017
1029 inline int strsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1030 CBLAS_DIAG_t Diag, float alpha, matrix_float const& A, matrix_float& B ){
1031 return gsl_blas_strsm( Side, Uplo, TransA, Diag, alpha, A.get(), B.get() ); }
1032
1044 inline int dgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, double alpha,
1045 matrix const& A, matrix const& B, double beta, matrix& C ){
1046 return gsl_blas_dgemm( TransA, TransB, alpha, A.get(), B.get(), beta, C.get() ); }
1047
1059 inline int dsymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, double alpha,
1060 matrix const& A, matrix const& B, double beta, matrix& C ){
1061 return gsl_blas_dsymm( Side, Uplo, alpha, A.get(), B.get(), beta, C.get() ); }
1062
1073 inline int dsyrk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, double alpha,
1074 matrix const& A, double beta, matrix& C ){
1075 return gsl_blas_dsyrk( Uplo, Trans, alpha, A.get(), beta, C.get() ); }
1076
1088 inline int dsyr2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, double alpha,
1089 matrix const& A, matrix const& B, double beta, matrix& C ){
1090 return gsl_blas_dsyr2k( Uplo, Trans, alpha, A.get(), B.get(), beta, C.get() ); }
1091
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() ); }
1106
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() ); }
1121
1133 inline int cgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB,
1134 complex_float const& alpha, matrix_complex_float const& A,
1136 return gsl_blas_cgemm( TransA, TransB, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1137
1149 inline int csymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex_float const& alpha,
1150 matrix_complex_float const& A, matrix_complex_float const& B,
1152 return gsl_blas_csymm( Side, Uplo, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1153
1164 inline int csyrk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex_float const& alpha,
1166 return gsl_blas_csyrk( Uplo, Trans, alpha.get(), A.get(), beta.get(), C.get() ); }
1167
1179 inline int csyr2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex_float const& alpha,
1180 matrix_complex_float const& A, matrix_complex_float const& B,
1182 return gsl_blas_csyr2k( Uplo, Trans, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1183
1195 inline int ctrmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1196 CBLAS_DIAG_t Diag, complex_float const& alpha, matrix_complex_float const& A,
1198 return gsl_blas_ctrmm( Side, Uplo, TransA, Diag, alpha.get(), A.get(), B.get() ); }
1199
1211 inline int ctrsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1212 CBLAS_DIAG_t Diag, complex_float const& alpha, matrix_complex_float const& A,
1214 return gsl_blas_ctrsm( Side, Uplo, TransA, Diag, alpha.get(), A.get(), B.get() ); }
1215
1227 inline int zgemm( CBLAS_TRANSPOSE_t TransA, CBLAS_TRANSPOSE_t TransB, complex const& alpha,
1228 matrix_complex const& A, matrix_complex const& B, complex const& beta,
1229 matrix_complex& C ){
1230 return gsl_blas_zgemm( TransA, TransB, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1231
1243 inline int zsymm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex const& alpha,
1244 matrix_complex const& A, matrix_complex const& B, complex const& beta,
1245 matrix_complex& C ){
1246 return gsl_blas_zsymm( Side, Uplo, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1247
1258 inline int zsyrk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex const& alpha,
1259 matrix_complex const& A, complex const& beta, matrix_complex& C ){
1260 return gsl_blas_zsyrk( Uplo, Trans, alpha.get(), A.get(), beta.get(), C.get() ); }
1261
1273 inline int zsyr2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex const& alpha,
1274 matrix_complex const& A, matrix_complex const& B, complex const& beta,
1275 matrix_complex& C ){
1276 return gsl_blas_zsyr2k( Uplo, Trans, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1277
1289 inline int ztrmm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1290 CBLAS_DIAG_t Diag, complex const& alpha, matrix_complex const& A,
1291 matrix_complex& B ){
1292 return gsl_blas_ztrmm( Side, Uplo, TransA, Diag, alpha.get(), A.get(), B.get() ); }
1293
1305 inline int ztrsm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t TransA,
1306 CBLAS_DIAG_t Diag, complex const& alpha, matrix_complex const& A,
1307 matrix_complex& B ){
1308 return gsl_blas_ztrsm( Side, Uplo, TransA, Diag, alpha.get(), A.get(), B.get() ); }
1309
1321 inline int chemm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex_float const& alpha,
1322 matrix_complex_float const& A, matrix_complex_float const& B,
1324 return gsl_blas_chemm( Side, Uplo, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1325
1336 inline int cherk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, float alpha,
1337 matrix_complex_float const& A, float beta, matrix_complex_float& C ){
1338 return gsl_blas_cherk( Uplo, Trans, alpha, A.get(), beta, C.get() ); }
1339
1351 inline int cher2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex_float const& alpha,
1352 matrix_complex_float const& A, matrix_complex_float const& B, float beta,
1354 return gsl_blas_cher2k( Uplo, Trans, alpha.get(), A.get(), B.get(), beta, C.get() ); }
1355
1367 inline int zhemm( CBLAS_SIDE_t Side, CBLAS_UPLO_t Uplo, complex const& alpha,
1368 matrix_complex const& A, matrix_complex const& B, complex const& beta,
1369 matrix_complex& C ){
1370 return gsl_blas_zhemm( Side, Uplo, alpha.get(), A.get(), B.get(), beta.get(), C.get() ); }
1371
1382 inline int zherk( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, double alpha,
1383 matrix_complex const& A, double beta, matrix_complex& C ){
1384 return gsl_blas_zherk( Uplo, Trans, alpha, A.get(), beta, C.get() ); }
1385
1397 inline int zher2k( CBLAS_UPLO_t Uplo, CBLAS_TRANSPOSE_t Trans, complex const& alpha,
1398 matrix_complex const& A, matrix_complex const& B, double beta,
1399 matrix_complex& C ){
1400 return gsl_blas_zher2k( Uplo, Trans, alpha.get(), A.get(), B.get(), beta, C.get() ); }
1401
1402 }
1403
1404}
1405#endif
This class handles complex_float numbers.
gsl_complex_float & get()
Get the base class object.
This class handles complex numbers.
Definition: complex.hpp:42
gsl_complex & get()
Get the base class object.
Definition: complex.hpp:106
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.
Definition: matrix.hpp:72
gsl_matrix * get()
Get the gsl_matrix.
Definition: matrix.hpp:1207
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.
Definition: vector.hpp:74
gsl_vector * get()
Get the gsl_vector.
Definition: vector.hpp:1320
CBLAS_TRANSPOSE_t const NoTrans
No transpose.
Definition: blas.hpp:39
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().
Definition: blas.hpp:840
int zcopy(vector_complex const &X, vector_complex &Y)
C++ version of gsl_blas_zcopy().
Definition: blas.hpp:337
CBLAS_TRANSPOSE_t const Trans
Transpose.
Definition: blas.hpp:40
void cscal(complex_float const &alpha, vector_complex_float &X)
C++ version of gsl_blas_cscal().
Definition: blas.hpp:535
CBLAS_INDEX_t isamax(vector_float const &X)
C++ version of gsl_blas_isamax().
Definition: blas.hpp:219
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().
Definition: blas.hpp:569
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().
Definition: blas.hpp:1367
int zgeru(complex const &alpha, vector_complex const &X, vector_complex const &Y, matrix_complex &A)
C++ version of gsl_blas_zgeru().
Definition: blas.hpp:903
CBLAS_SIDE_t const Right
Apply to right matrix.
Definition: blas.hpp:47
float sasum(vector_float const &X)
C++ version of gsl_blas_sasum().
Definition: blas.hpp:170
CBLAS_SIDE_t const Left
Apply to left matrix.
Definition: blas.hpp:46
int dsdot(vector_float const &X, vector_float const &Y, double &result)
C++ version of gsl_blas_dsdot().
Definition: blas.hpp:69
int cher(CBLAS_UPLO_t Uplo, float alpha, vector_complex_float const &X, matrix_complex_float &A)
C++ version of gsl_blas_cher().
Definition: blas.hpp:864
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().
Definition: blas.hpp:1133
int dgemv(CBLAS_TRANSPOSE_t TransA, double alpha, matrix const &A, vector const &X, double beta, vector &Y)
C++ version of gsl_blas_dgemv().
Definition: blas.hpp:610
int srotg(float &a, float &b, float &c, float &s)
C++ version of gsl_blas_srotg().
Definition: blas.hpp:383
int drot(vector &X, vector &Y, double const c, double const s)
C++ version of gsl_blas_drot().
Definition: blas.hpp:503
int zher(CBLAS_UPLO_t Uplo, double alpha, vector_complex const &X, matrix_complex &A)
C++ version of gsl_blas_zher().
Definition: blas.hpp:927
int dsymv(CBLAS_UPLO_t Uplo, double alpha, matrix const &A, vector const &X, double beta, vector &Y)
C++ version of gsl_blas_dsymv().
Definition: blas.hpp:779
int cdotc(vector_complex_float const &X, vector_complex_float const &Y, complex_float *dotc)
C++ version of gsl_blas_cdotc().
Definition: blas.hpp:134
int zaxpy(complex const &alpha, vector_complex const &X, vector_complex &Y)
C++ version of gsl_blas_zaxpy().
Definition: blas.hpp:347
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().
Definition: blas.hpp:731
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().
Definition: blas.hpp:664
double dnrm2(vector const &X)
C++ version of gsl_blas_dnrm2().
Definition: blas.hpp:177
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().
Definition: blas.hpp:1273
float scnrm2(vector_complex_float const &X)
C++ version of gsl_blas_scnrm2().
Definition: blas.hpp:191
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().
Definition: blas.hpp:1336
int zdotu(vector_complex const &X, vector_complex const &Y, complex *dotu)
C++ version of gsl_blas_zdotu().
Definition: blas.hpp:145
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().
Definition: blas.hpp:636
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().
Definition: blas.hpp:1118
int scopy(vector_float const &X, vector_float &Y)
C++ version of gsl_blas_scopy().
Definition: blas.hpp:256
CBLAS_INDEX_t icamax(vector_complex_float const &X)
C++ version of gsl_blas_icamax().
Definition: blas.hpp:233
int srotmg(float &d1, float &d2, float &b1, float b2, float &P)
C++ version of gsl_blas_srotmg().
Definition: blas.hpp:395
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().
Definition: blas.hpp:955
int ccopy(vector_complex_float const &X, vector_complex_float &Y)
C++ version of gsl_blas_ccopy().
Definition: blas.hpp:309
int ssyr(CBLAS_UPLO_t Uplo, float alpha, vector_float const &X, matrix_float &A)
C++ version of gsl_blas_ssyr().
Definition: blas.hpp:754
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().
Definition: blas.hpp:1029
int dcopy(vector const &X, vector &Y)
C++ version of gsl_blas_dcopy().
Definition: blas.hpp:282
CBLAS_INDEX_t izamax(vector_complex const &X)
C++ version of gsl_blas_izamax().
Definition: blas.hpp:240
CBLAS_INDEX_t idamax(vector const &X)
C++ version of gsl_blas_idamax().
Definition: blas.hpp:226
int zgerc(complex const &alpha, vector_complex const &X, vector_complex const &Y, matrix_complex &A)
C++ version of gsl_blas_zgerc().
Definition: blas.hpp:915
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().
Definition: blas.hpp:1059
int dsyr(CBLAS_UPLO_t Uplo, double alpha, vector const &X, matrix &A)
C++ version of gsl_blas_dsyr().
Definition: blas.hpp:802
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().
Definition: blas.hpp:1289
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().
Definition: blas.hpp:1195
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().
Definition: blas.hpp:970
int zswap(vector_complex &X, vector_complex &Y)
C++ version of gsl_blas_zswap().
Definition: blas.hpp:328
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().
Definition: blas.hpp:623
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().
Definition: blas.hpp:1258
int dsyr2(CBLAS_UPLO_t Uplo, double alpha, vector const &X, vector const &Y, matrix &A)
C++ version of gsl_blas_dsyr2().
Definition: blas.hpp:814
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().
Definition: blas.hpp:1305
int sger(float alpha, vector_float const &X, vector_float const &Y, matrix_float &A)
C++ version of gsl_blas_sger().
Definition: blas.hpp:743
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().
Definition: blas.hpp:717
CBLAS_UPLO_t const Lower
Lower triangular.
Definition: blas.hpp:43
int drotm(vector &X, vector &Y, double const P[])
C++ version of gsl_blas_drotm().
Definition: blas.hpp:513
void csscal(float alpha, vector_complex_float &X)
C++ version of gsl_blas_csscal().
Definition: blas.hpp:550
CBLAS_TRANSPOSE_t const ConjTrans
Hermitian transpose.
Definition: blas.hpp:41
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().
Definition: blas.hpp:691
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().
Definition: blas.hpp:596
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().
Definition: blas.hpp:1351
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().
Definition: blas.hpp:1382
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().
Definition: blas.hpp:852
int dger(double alpha, vector const &X, vector const &Y, matrix &A)
C++ version of gsl_blas_dger().
Definition: blas.hpp:791
void zdscal(double alpha, vector_complex &X)
C++ version of gsl_blas_zdscal().
Definition: blas.hpp:557
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().
Definition: blas.hpp:1211
int srotm(vector_float &X, vector_float &Y, float const P[])
C++ version of gsl_blas_srotm().
Definition: blas.hpp:417
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().
Definition: blas.hpp:984
int cdotu(vector_complex_float const &X, vector_complex_float const &Y, complex_float *dotu)
C++ version of gsl_blas_cdotu().
Definition: blas.hpp:123
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().
Definition: blas.hpp:891
int ddot(vector const &X, vector const &Y, double &result)
C++ version of gsl_blas_ddot().
Definition: blas.hpp:112
int zdotc(vector_complex const &X, vector_complex const &Y, complex *dotc)
C++ version of gsl_blas_zdotc().
Definition: blas.hpp:155
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().
Definition: blas.hpp:1088
int sswap(vector_float &X, vector_float &Y)
C++ version of gsl_blas_sswap().
Definition: blas.hpp:248
CBLAS_UPLO_t const Upper
Upper triangular.
Definition: blas.hpp:42
float snrm2(vector_float const &X)
C++ version of gsl_blas_snrm2().
Definition: blas.hpp:163
int daxpy(double alpha, vector const &X, vector &Y)
C++ version of gsl_blas_daxpy().
Definition: blas.hpp:291
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().
Definition: blas.hpp:877
void dscal(double alpha, vector &X)
C++ version of gsl_blas_dscal().
Definition: blas.hpp:528
double dzasum(vector_complex const &X)
C++ version of gsl_blas_dzasum().
Definition: blas.hpp:212
int caxpy(complex_float const &alpha, vector_complex_float const &X, vector_complex_float &Y)
C++ version of gsl_blas_caxpy().
Definition: blas.hpp:319
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().
Definition: blas.hpp:1243
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().
Definition: blas.hpp:1149
CBLAS_DIAG_t const Unit
Unit diagonal.
Definition: blas.hpp:45
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().
Definition: blas.hpp:1014
int sdot(vector_float const &X, vector_float const &Y, float &result)
C++ version of gsl_blas_sdot().
Definition: blas.hpp:91
int dswap(vector &X, vector &Y)
C++ version of gsl_blas_dswap().
Definition: blas.hpp:274
CBLAS_DIAG_t const NonUnit
Non unit diagonal.
Definition: blas.hpp:44
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().
Definition: blas.hpp:827
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().
Definition: blas.hpp:1397
int srot(vector_float &X, vector_float &Y, float c, float s)
C++ version of gsl_blas_srot().
Definition: blas.hpp:406
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().
Definition: blas.hpp:940
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().
Definition: blas.hpp:1227
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().
Definition: blas.hpp:1321
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().
Definition: blas.hpp:1179
int saxpy(float alpha, vector_float const &X, vector_float &Y)
C++ version of gsl_blas_saxpy().
Definition: blas.hpp:265
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().
Definition: blas.hpp:1044
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().
Definition: blas.hpp:1164
int drotg(ARRAY &a, ARRAY &b, ARRAY &c, ARRAY &s)
C++ version of gsl_blas_drotg().
Definition: blas.hpp:478
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().
Definition: blas.hpp:1103
int drotmg(ARRAY &d1, ARRAY &d2, ARRAY &b1, double b2, ARRAY &P)
C++ version of gsl_blas_drotmg().
Definition: blas.hpp:492
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().
Definition: blas.hpp:1073
int cswap(vector_complex_float &X, vector_complex_float &Y)
C++ version of gsl_blas_cswap().
Definition: blas.hpp:300
double dznrm2(vector_complex const &X)
C++ version of gsl_blas_dznrm2().
Definition: blas.hpp:205
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().
Definition: blas.hpp:583
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().
Definition: blas.hpp:999
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().
Definition: blas.hpp:766
void zscal(complex const &alpha, vector_complex &X)
C++ version of gsl_blas_zscal().
Definition: blas.hpp:543
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().
Definition: blas.hpp:650
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().
Definition: blas.hpp:704
void sscal(float alpha, vector_float &X)
C++ version of gsl_blas_sscal().
Definition: blas.hpp:521
double dasum(vector const &X)
C++ version of gsl_blas_dasum().
Definition: blas.hpp:184
float scasum(vector_complex_float const &X)
C++ version of gsl_blas_scasum().
Definition: blas.hpp:198
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().
Definition: blas.hpp:677
double beta(rng const &r, double const a, double const b)
C++ version of gsl_ran_beta().
Definition: randist.hpp:262
double P(double phi, double k, double n, mode_t mode)
C++ version of gsl_sf_ellint_P().
Definition: sf_ellint.hpp:182
double b(int order, double qq)
C++ version of gsl_sf_mathieu_b().
Definition: sf_mathieu.hpp:298
double a(int order, double qq)
C++ version of gsl_sf_mathieu_a().
Definition: sf_mathieu.hpp:272
gsl_sf_result result
Typedef for gsl_sf_result.
Definition: sf_result.hpp:30
The gsl package creates an interface to the GNU Scientific Library for C++.
Definition: blas.hpp:34