⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slaset.c

📁 SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems
💻 C
字号:
#include "f2c.h"/* Subroutine */ int slaset_(char *uplo, integer *m, integer *n, real *alpha, 	real *beta, real *a, integer *lda){/*  -- LAPACK auxiliary routine (version 2.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          October 31, 1992       Purpose       =======       SLASET initializes an m-by-n matrix A to BETA on the diagonal and       ALPHA on the offdiagonals.       Arguments       =========       UPLO    (input) CHARACTER*1               Specifies the part of the matrix A to be set.               = 'U':      Upper triangular part is set; the strictly lower                           triangular part of A is not changed.               = 'L':      Lower triangular part is set; the strictly upper                           triangular part of A is not changed.               Otherwise:  All of the matrix A is set.       M       (input) INTEGER               The number of rows of the matrix A.  M >= 0.       N       (input) INTEGER               The number of columns of the matrix A.  N >= 0.       ALPHA   (input) REAL               The constant to which the offdiagonal elements are to be set.       BETA    (input) REAL               The constant to which the diagonal elements are to be set.       A       (input/output) REAL array, dimension (LDA,N)               On exit, the leading m-by-n submatrix of A is set as follows:               if UPLO = 'U', A(i,j) = ALPHA, 1<=i<=j-1, 1<=j<=n,               if UPLO = 'L', A(i,j) = ALPHA, j+1<=i<=m, 1<=j<=n,               otherwise,     A(i,j) = ALPHA, 1<=i<=m, 1<=j<=n, i.ne.j,               and, for all UPLO, A(i,i) = BETA, 1<=i<=min(m,n).       LDA     (input) INTEGER               The leading dimension of the array A.  LDA >= max(1,M).      =====================================================================          Parameter adjustments          Function Body */    /* System generated locals */    integer a_dim1, a_offset, i__1, i__2, i__3;    /* Local variables */    static integer i, j;    extern logical lsame_(char *, char *);#define A(I,J) a[(I)-1 + ((J)-1)* ( *lda)]    if (lsame_(uplo, "U")) {/*        Set the strictly upper triangular or trapezoidal part of the             array to ALPHA. */	i__1 = *n;	for (j = 2; j <= *n; ++j) {/* Computing MIN */	    i__3 = j - 1;	    i__2 = min(i__3,*m);	    for (i = 1; i <= min(j-1,*m); ++i) {		A(i,j) = *alpha;/* L10: */	    }/* L20: */	}    } else if (lsame_(uplo, "L")) {/*        Set the strictly lower triangular or trapezoidal part of the             array to ALPHA. */	i__1 = min(*m,*n);	for (j = 1; j <= min(*m,*n); ++j) {	    i__2 = *m;	    for (i = j + 1; i <= *m; ++i) {		A(i,j) = *alpha;/* L30: */	    }/* L40: */	}    } else {/*        Set the leading m-by-n submatrix to ALPHA. */	i__1 = *n;	for (j = 1; j <= *n; ++j) {	    i__2 = *m;	    for (i = 1; i <= *m; ++i) {		A(i,j) = *alpha;/* L50: */	    }/* L60: */	}    }/*     Set the first min(M,N) diagonal elements to BETA. */    i__1 = min(*m,*n);    for (i = 1; i <= min(*m,*n); ++i) {	A(i,i) = *beta;/* L70: */    }    return 0;/*     End of SLASET */} /* slaset_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -