nmpp
nmblas.h
См. документацию.
1
16
18
22
24
25
26#ifndef _NMBLAS_H_INCLUDED_
27#define _NMBLAS_H_INCLUDED_
28
29#ifdef __cplusplus
30 extern "C" {
31#endif
32
33
55 const int N,
56 const double *X,
57 const int INCX
58);
60
61enum nm_trans{nm_n=0,nm_t=1};
62
63
90 const int N,
91 const double A,
92 const double *X,
93 const int INCX,
94 double *Y,
95 const int INCY
96);
98
99
124 const int N,
125 const double* X,
126 const int INCX,
127 double* Y,
128 const int INCY
129);
131
157 const int N,
158 const double* X,
159 const int INCX,
160 const double* Y,
161 const int INCY
162);
164
185 const int N,
186 const double *x,
187 const int INCX
188);
190
218 const int N,
219 double *X,
220 const int INCX,
221 double *Y,
222 const int INCY,
223 const double C,
224 const double S
225);
227
239 double *A,
240 double *B,
241 double *C,
242 double *S
243);
245
261 const int N,
262 double *X,
263 const int INCX,
264 double *Y,
265 const int INCY,
266 double *param
267);
269
291 const int N,
292 const double ALPHA,
293 double*X,
294 const int INCX
295);
297
326 const int N,
327 const float* X,
328 const int INCX,
329 const float* Y,
330 const int INCY
331);
333
349 const int N,
350 double *X,
351 const int INCX,
352 double *Y,
353 const int INCY
354);
356
377 const int N,
378 const double *X,
379 const int INCX
380);
382
403 const int N,
404 const double* X,
405 const int INCX
406);
409
430 const int N,
431 const float* X,
432 const int INCX
433);
435
456 const int N,
457 const float *X,
458 const int INCX
459);
461
487 int N,
488 const float A,
489 const float *X,
490 const int INCX,
491 float *Y,
492 const int INCY
493);
495
516 const int N,
517 const float* X,
518 const int INCX
519);
521
545 const int N,
546 const float* X,
547 const int INCX,
548 float* Y,
549 const int INCY
550);
552
577 const int N,
578 const float *X,
579 const int INCX,
580 const float *Y,
581 const int INCY
582);
584
604 const int N,
605 const float B,
606 const float* X,
607 const int INCX,
608 const float* Y,
609 const int INCY
610);
612
633 const int N,
634 const float* X,
635 const int INCX
636);
638
654 const int N,
655 float *X,
656 const int INCX,
657 float *Y,
658 const int INCY,
659 const float C,
660 const float S
661);
663
679 const int N,
680 float *X,
681 const int INCX,
682 float *Y,
683 const int INCY,
684 float *param
685);
687
708 const int N,
709 const float A,
710 const float *X,
711 const int INCX
712);
714
738 const int N,
739 const float *X,
740 const int INCX,
741 const float *Y,
742 const int INCY
743);
745
747
748//defgroup sgemv nmblas_sgemv
788
790 const enum nm_trans TRANS,
791 const int M,
792 const int N,
793 const float ALPHA,
794 const float * A,
795 const int LDA,
796 const float * X,
797 const int INCX,
798 const float BETA,
799 float * Y,
800 const int INCY
801);
803
804//defgroup dgemv nmblas_dgemv
844
846 const enum nm_trans TRANS,
847 const int M,
848 const int N,
849 const double ALPHA,
850 const double * A,
851 const int LDA,
852 const double * X,
853 const int INCX,
854 const double BETA,
855 double * Y,
856 const int INCY
857);
859
860//defgroup sger nmblas_sger
902
904 const int M,//row
905 const int N,//coullum
906 const float ALPHA,
907 const float * X,
908 const int INCX,
909 const float * Y,
910 const int INCY,
911 float * A,
912 const int LDA
913);
915#include<nmblas/nmblas_sgemm.h>
916
917void MullMatrix_f(
918 void* A,
919 int pI,
920 int ldA,
921 void* B,
922 int pK,
923 int ldB,
924 void* C,
925 int pJ,
926 int ldC,
927 int plusC
928);
929
930
931#ifdef __cplusplus
932 };
933#endif
934
935#endif // _INIT_H_INCLUDED_
int nmblas_idamax(const int N, const double *X, const int INCX)
finds the index of the first element having maximum absolute value.
float nmblas_snrm2(const int N, const float *X, const int INCX)
SNRM2 returns the euclidean norm of a vector via the function name, so that SNRM2 := sqrt( x'*x )....
void nmblas_dswap(const int N, double *X, const int INCX, double *Y, const int INCY)
interchanges two vectors <>
void nmblas_dscal(const int N, const double ALPHA, double *X, const int INCX)
scales a vector by a constant <>
void nmblas_drot(const int N, double *X, const int INCX, double *Y, const int INCY, const double C, const double S)
applies a plane rotation <>
double nmblas_ddot(const int N, const double *X, const int INCX, const double *Y, const int INCY)
forms the dot product of two vectors.
float nmblas_scnrm2(const int N, const float *X, const int INCX)
returns the euclidean norm of a vector via the function name, so that SCNRM2 := sqrt( x**H*x )
void nmblas_srotm(const int N, float *X, const int INCX, float *Y, const int INCY, float *param)
Apply a Given's rotation constructed by SROTMG. <>
void nmblas_scopy(const int N, const float *X, const int INCX, float *Y, const int INCY)
copies a vector, X, to a vector, Y
int nmblas_isamax(const int N, const float *X, const int INCX)
finds the index of the first element having maximum absolute value.
void nmblas_sswap(const int N, const float *X, const int INCX, const float *Y, const int INCY)
interchanges two vectors <>
float nmblas_sdot(const int N, const float *X, const int INCX, const float *Y, const int INCY)
SDOT forms the dot product of two vectors.
double nmblas_dsdot(const int N, const float *X, const int INCX, const float *Y, const int INCY)
Compute the inner product of two vectors with double precision accumulation. <>
float nmblas_sasum(const int N, const float *X, const int INCX)
takes the sum of the absolute values
void nmblas_drotg(double *A, double *B, double *C, double *S)
construct givens plane rotation <>
void nmblas_srot(const int N, float *X, const int INCX, float *Y, const int INCY, const float C, const float S)
applies a plane rotation <>
float nmblas_sdsdot(const int N, const float B, const float *X, const int INCX, const float *Y, const int INCY)
Compute the inner product of two vectors with double precision accumulation. <>
double nmblas_dznrm2(const int N, const double *X, const int INCX)
returns the euclidean norm of a vector via the function name, so that DZNRM2 := sqrt( x**H*x ) <>
void nmblas_daxpy(const int N, const double A, const double *X, const int INCX, double *Y, const int INCY)
constant times a vector plus a vector <>
double nmblas_dasum(const int N, const double *X, const int INCX)
takes the sum of the absolute values <>
double nmblas_dnrm2(const int N, const double *x, const int INCX)
returns the euclidean norm of a vector via the function name, so that SCNRM2 := sqrt( x**H*x )
void nmblas_drotm(const int N, double *X, const int INCX, double *Y, const int INCY, double *param)
Apply a Given's rotation constructed by DROTMG. <>
void nmblas_sscal(const int N, const float A, const float *X, const int INCX)
scales a vector by a constant <>
void nmblas_dcopy(const int N, const double *X, const int INCX, double *Y, const int INCY)
copies a vector, X, to a vector, Y
void nmblas_saxpy(int N, const float A, const float *X, const int INCX, float *Y, const int INCY)
constant times a vector plus a vector
void nmblas_sger(const int M, const int N, const float ALPHA, const float *X, const int INCX, const float *Y, const int INCY, float *A, const int LDA)
perform the rank 1 operation A := alpha*x*y' + A, where alpha is a scalar, x is an m element vector,...
void nmblas_sgemv(const enum nm_trans TRANS, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *X, const int INCX, const float BETA, float *Y, const int INCY)
performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y,...
void nmblas_dgemv(const enum nm_trans TRANS, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *X, const int INCX, const double BETA, double *Y, const int INCY)
performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y,...
part of nmblas library, sgemm function implementation