/** A <- alpha*x*x^T + A */ void dsyr( MatrixTriangle uplo, int n, double alpha, const double *x, int incx, double *A, int ldA ) { const char *UL[2] = { "U", "L" }; OGF_FORTRAN(dsyr)(UL[(int)uplo],&n,&alpha,x,&incx,A,&ldA); }
/** A <- alpha*x*y^T + alpha*y*x^T + A */ void dspr2( MatrixTriangle uplo, int n, double alpha, const double *x, int incx, const double *y, int incy, double *AP ) { const char *UL[2] = { "U", "L" }; OGF_FORTRAN(dspr2)(UL[(int)uplo],&n,&alpha,x,&incx,y,&incy,AP); }
/** y <- alpha*A*x + beta*y */ void dspmv( MatrixTriangle uplo, int n, double alpha, const double *AP, const double *x, int incx, double beta, double *y, int incy ) { const char *UL[2] = { "U", "L" }; OGF_FORTRAN(dspmv)(UL[(int)uplo],&n,&alpha,AP,x,&incx,&beta,y,&incy); }
/** y <- alpha*A*x + beta*y, y <- alpha*A^T*x + beta*y, A-(m,n) */ void dgemv( MatrixTranspose trans, int m, int n, double alpha, const double *A, int ldA, const double *x, int incx, double beta, double *y, int incy ) { const char *T[3] = { "N", "T", 0 }; OGF_FORTRAN(dgemv)(T[(int)trans],&m,&n,&alpha,A,&ldA,x,&incx,&beta,y,&incy); }
/** x <- A^{-1}*x, x <- A^{-T}*x */ void dtpsv( MatrixTriangle uplo, MatrixTranspose trans, MatrixUnitTriangular diag, int n, const double *AP, double *x, int incx ) { const char *UL[2] = { "U", "L" }; const char *T[3] = { "N", "T", 0 }; const char *D[2] = { "U", "N" }; OGF_FORTRAN(dtpsv)(UL[(int)uplo],T[(int)trans],D[(int)diag],&n,AP,x,&incx); }
/** x <- a*x */ void dscal( int n, double alpha, double *x, int incx ) { OGF_FORTRAN(dscal)(&n,&alpha,x,&incx); }
/** x <-> y */ void dswap( int n, double *x, int incx, double *y, int incy ) { OGF_FORTRAN(dswap)(&n,x,&incx,y,&incy); }
/** applies a plane rotation */ void drot( int n, double *x, int incx, double *y, int incy, double c, double s ) { OGF_FORTRAN(drot)(&n,x,&incx,y,&incy,&c,&s); }
/** generates a plane rotation */ void drotg( double *a, double *b, double *c, double *s ) { OGF_FORTRAN(drotg)(a,b,c,s); }
/** y <- a*x+y */ void daxpy( int n, double alpha, const double *x, int incx, double *y, int incy ) { OGF_FORTRAN(daxpy)(&n,&alpha,x,&incx,y,&incy); }
int dgetrf(int m, int n, double* a, int lda, int* ipiv, int* info) { return OGF_FORTRAN(dgetrf)(&m, &n, a, &lda, ipiv, info); }
/** returns the first k such that |x_k| = max|x_i| */ int idamax( int n, const double *x, int incx ) { return OGF_FORTRAN(idamax)(&n,x,&incx); }
/** returns |x|_1 */ double dasum( int n, const double *x, int incx ) { return OGF_FORTRAN(dasum)(&n,x,&incx); }
/** returns x^T*y */ double ddot( int n, const double *x, int incx, const double *y, int incy ) { return OGF_FORTRAN(ddot)(&n,x,&incx,y,&incy); }
int dpotrf( char* uplo, int n, double* a, int lda, int* info ) { return OGF_FORTRAN(dpotrf)(uplo, &n, a, &lda, info) ; }
int dpotrs( char* uplo, int n, int nrhs, double* a, int lda, double* bx, int ldb, int* info ) { return OGF_FORTRAN(dpotrs)(uplo, &n, &nrhs, a, &lda, bx, &ldb, info) ; }
/** A <- alpha*x*y^T + A, A-(m,n) */ void dger( int m, int n, double alpha, const double *x, int incx, const double *y, int incy, double *A, int ldA ) { OGF_FORTRAN(dger)(&m,&n,&alpha,x,&incx,y,&incy,A,&ldA); }
int dgetrs(char trans, int n, int nrhs, double* a, int lda, int* ipiv, double* b, int ldb, int* info) { return OGF_FORTRAN(dgetrs)(&trans, &n, &nrhs, a, &lda, ipiv, b, &ldb, info); }
/** y <- x */ void dcopy( int n, const double *x, int incx, double *y, int incy ) { OGF_FORTRAN(dcopy)(&n,x,&incx,y,&incy); }