slacpy.c

来自「NIST Handwriting OCR Testbed」· C语言 代码 · 共 109 行

C
109
字号
/** ======================================================================* NIST Guide to Available Math Software.* Fullsource for module SSYEVX.C from package CLAPACK.* Retrieved from NETLIB on Fri Mar 10 14:23:44 2000.* ======================================================================*/#include <f2c.h>/* Subroutine */ int slacpy_(char *uplo, integer *m, integer *n, real *a, 	integer *lda, real *b, integer *ldb){/*  -- LAPACK auxiliary routine (version 2.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          February 29, 1992       Purpose       =======       SLACPY copies all or part of a two-dimensional matrix A to another       matrix B.       Arguments       =========       UPLO    (input) CHARACTER*1               Specifies the part of the matrix A to be copied to B.               = 'U':      Upper triangular part               = 'L':      Lower triangular part               Otherwise:  All of the matrix A       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.       A       (input) REAL array, dimension (LDA,N)               The m by n matrix A.  If UPLO = 'U', only the upper triangle               or trapezoid is accessed; if UPLO = 'L', only the lower               triangle or trapezoid is accessed.       LDA     (input) INTEGER               The leading dimension of the array A.  LDA >= max(1,M).       B       (output) REAL array, dimension (LDB,N)               On exit, B = A in the locations specified by UPLO.       LDB     (input) INTEGER               The leading dimension of the array B.  LDB >= max(1,M).       =====================================================================          Parameter adjustments          Function Body */    /* System generated locals */    integer a_dim1, a_offset, b_dim1, b_offset, i__1, i__2;    /* Local variables */    static integer i, j;    extern logical lsame_(char *, char *);#define A(I,J) a[(I)-1 + ((J)-1)* ( *lda)]#define B(I,J) b[(I)-1 + ((J)-1)* ( *ldb)]    if (lsame_(uplo, "U")) {	i__1 = *n;	for (j = 1; j <= *n; ++j) {	    i__2 = min(j,*m);	    for (i = 1; i <= min(j,*m); ++i) {		B(i,j) = A(i,j);/* L10: */	    }/* L20: */	}    } else if (lsame_(uplo, "L")) {	i__1 = *n;	for (j = 1; j <= *n; ++j) {	    i__2 = *m;	    for (i = j; i <= *m; ++i) {		B(i,j) = A(i,j);/* L30: */	    }/* L40: */	}    } else {	i__1 = *n;	for (j = 1; j <= *n; ++j) {	    i__2 = *m;	    for (i = 1; i <= *m; ++i) {		B(i,j) = A(i,j);/* L50: */	    }/* L60: */	}    }    return 0;/*     End of SLACPY */} /* slacpy_ */

⌨️ 快捷键说明

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