您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sscal_函数代码示例

51自学网 2021-06-03 08:18:25
  C++
这篇教程C++ sscal_函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sscal_函数的典型用法代码示例。如果您正苦于以下问题:C++ sscal_函数的具体用法?C++ sscal_怎么用?C++ sscal_使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sscal_函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: UPLO

/* Subroutine */ int spotf2_(char *uplo, integer *n, real *a, integer *lda, 	integer *info){/*  -- LAPACK routine (version 3.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          February 29, 1992       Purpose       =======       SPOTF2 computes the Cholesky factorization of a real symmetric       positive definite matrix A.       The factorization has the form          A = U' * U ,  if UPLO = 'U', or          A = L  * L',  if UPLO = 'L',       where U is an upper triangular matrix and L is lower triangular.       This is the unblocked version of the algorithm, calling Level 2 BLAS.       Arguments       =========       UPLO    (input) CHARACTER*1               Specifies whether the upper or lower triangular part of the               symmetric matrix A is stored.               = 'U':  Upper triangular               = 'L':  Lower triangular       N       (input) INTEGER               The order of the matrix A.  N >= 0.       A       (input/output) REAL array, dimension (LDA,N)               On entry, the symmetric matrix A.  If UPLO = 'U', the leading               n by n upper triangular part of A contains the upper               triangular part of the matrix A, and the strictly lower               triangular part of A is not referenced.  If UPLO = 'L', the               leading n by n lower triangular part of A contains the lower               triangular part of the matrix A, and the strictly upper               triangular part of A is not referenced.               On exit, if INFO = 0, the factor U or L from the Cholesky               factorization A = U'*U  or A = L*L'.       LDA     (input) INTEGER               The leading dimension of the array A.  LDA >= max(1,N).       INFO    (output) INTEGER               = 0: successful exit               < 0: if INFO = -k, the k-th argument had an illegal value               > 0: if INFO = k, the leading minor of order k is not                    positive definite, and the factorization could not be                    completed.       =====================================================================          Test the input parameters.          Parameter adjustments */    /* Table of constant values */    static integer c__1 = 1;    static real c_b10 = -1.f;    static real c_b12 = 1.f;        /* System generated locals */    integer a_dim1, a_offset, i__1, i__2, i__3;    real r__1;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    extern doublereal sdot_(integer *, real *, integer *, real *, integer *);    static integer j;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), 	    sgemv_(char *, integer *, integer *, real *, real *, integer *, 	    real *, integer *, real *, real *, integer *);    static logical upper;    extern /* Subroutine */ int xerbla_(char *, integer *);    static real ajj;#define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]    a_dim1 = *lda;    a_offset = 1 + a_dim1 * 1;    a -= a_offset;    /* Function Body */    *info = 0;    upper = lsame_(uplo, "U");    if (! upper && ! lsame_(uplo, "L")) {	*info = -1;    } else if (*n < 0) {	*info = -2;    } else if (*lda < max(1,*n)) {	*info = -4;    }    if (*info != 0) {//.........这里部分代码省略.........
开发者ID:MichaelH13,项目名称:sdkpub,代码行数:101,


示例2: sqrt

/* Subroutine */ int sstemr_(char *jobz, char *range, integer *n, real *d__, 	real *e, real *vl, real *vu, integer *il, integer *iu, integer *m, 	real *w, real *z__, integer *ldz, integer *nzc, integer *isuppz, 	logical *tryrac, real *work, integer *lwork, integer *iwork, integer *	liwork, integer *info){    /* System generated locals */    integer z_dim1, z_offset, i__1, i__2;    real r__1, r__2;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    integer i__, j;    real r1, r2;    integer jj;    real cs;    integer in;    real sn, wl, wu;    integer iil, iiu;    real eps, tmp;    integer indd, iend, jblk, wend;    real rmin, rmax;    integer itmp;    real tnrm;    integer inde2;    extern /* Subroutine */ int slae2_(real *, real *, real *, real *, real *)	    ;    integer itmp2;    real rtol1, rtol2, scale;    integer indgp;    extern logical lsame_(char *, char *);    integer iinfo;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    integer iindw, ilast, lwmin;    extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, 	    integer *), sswap_(integer *, real *, integer *, real *, integer *);    logical wantz;    extern /* Subroutine */ int slaev2_(real *, real *, real *, real *, real *, real *, real *);    logical alleig;    integer ibegin;    logical indeig;    integer iindbl;    logical valeig;    extern doublereal slamch_(char *);    integer wbegin;    real safmin;    extern /* Subroutine */ int xerbla_(char *, integer *);    real bignum;    integer inderr, iindwk, indgrs, offset;    extern /* Subroutine */ int slarrc_(char *, integer *, real *, real *, 	    real *, real *, real *, integer *, integer *, integer *, integer *), slarre_(char *, integer *, real *, real *, integer *, 	    integer *, real *, real *, real *, real *, real *, real *, 	    integer *, integer *, integer *, real *, real *, real *, integer *, integer *, real *, real *, real *, integer *, integer *)	    ;    real thresh;    integer iinspl, indwrk, ifirst, liwmin, nzcmin;    real pivmin;    extern doublereal slanst_(char *, integer *, real *, real *);    extern /* Subroutine */ int slarrj_(integer *, real *, real *, integer *, 	    integer *, real *, integer *, real *, real *, real *, integer *, 	    real *, real *, integer *), slarrr_(integer *, real *, real *, 	    integer *);    integer nsplit;    extern /* Subroutine */ int slarrv_(integer *, real *, real *, real *, 	    real *, real *, integer *, integer *, integer *, integer *, real *, real *, real *, real *, real *, real *, integer *, integer *, 	    real *, real *, integer *, integer *, real *, integer *, integer *);    real smlnum;    extern /* Subroutine */ int slasrt_(char *, integer *, real *, integer *);    logical lquery, zquery;/*  -- LAPACK computational routine (version 3.1) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SSTEMR computes selected eigenvalues and, optionally, eigenvectors *//*  of a real symmetric tridiagonal matrix T. Any such unreduced matrix has *//*  a well defined set of pairwise different real eigenvalues, the corresponding *//*  real eigenvectors are pairwise orthogonal. *//*  The spectrum may be computed either completely or partially by specifying *//*  either an interval (VL,VU] or a range of indices IL:IU for the desired *//*  eigenvalues. *///.........这里部分代码省略.........
开发者ID:dacap,项目名称:loseface,代码行数:101,


示例3: r_sign

/* Subroutine */ int slaror_(char *side, char *init, integer *m, integer *n,        real *a, integer *lda, integer *iseed, real *x, integer *info){    /* System generated locals */    integer a_dim1, a_offset, i__1, i__2;    real r__1;    /* Builtin functions */    double r_sign(real *, real *);    /* Local variables */    static integer kbeg, jcol;    extern /* Subroutine */ int sger_(integer *, integer *, real *, real *,            integer *, real *, integer *, real *, integer *);    static integer irow;    extern real snrm2_(integer *, real *, integer *);    static integer j;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *),            sgemv_(char *, integer *, integer *, real *, real *, integer *,            real *, integer *, real *, real *, integer *);    static integer ixfrm, itype, nxfrm;    static real xnorm;    extern /* Subroutine */ int xerbla_(char *, integer *);    static real factor;    extern doublereal slarnd_(integer *, integer *);    extern /* Subroutine */ int slaset_(char *, integer *, integer *, real *,            real *, real *, integer *);    static real xnorms;/*  -- LAPACK auxiliary test routine (version 2.0) --       Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,       Courant Institute, Argonne National Lab, and Rice University       September 30, 1994    Purpose    =======    SLAROR pre- or post-multiplies an M by N matrix A by a random    orthogonal matrix U, overwriting A.  A may optionally be initialized    to the identity matrix before multiplying by U.  U is generated using    the method of G.W. Stewart (SIAM J. Numer. Anal. 17, 1980, 403-409).    Arguments    =========    SIDE    (input) CHARACTER*1            Specifies whether A is multiplied on the left or right by U.            = 'L':         Multiply A on the left (premultiply) by U            = 'R':         Multiply A on the right (postmultiply) by U'            = 'C' or 'T':  Multiply A on the left by U and the right                            by U' (Here, U' means U-transpose.)    INIT    (input) CHARACTER*1            Specifies whether or not A should be initialized to the            identity matrix.            = 'I':  Initialize A to (a section of) the identity matrix                     before applying U.            = 'N':  No initialization.  Apply U to the input matrix A.            INIT = 'I' may be used to generate square or rectangular            orthogonal matrices:            For M = N and SIDE = 'L' or 'R', the rows will be orthogonal            to each other, as will the columns.            If M < N, SIDE = 'R' produces a dense matrix whose rows are            orthogonal and whose columns are not, while SIDE = 'L'            produces a matrix whose rows are orthogonal, and whose first            M columns are orthogonal, and whose remaining columns are            zero.            If M > N, SIDE = 'L' produces a dense matrix whose columns            are orthogonal and whose rows are not, while SIDE = 'R'            produces a matrix whose columns are orthogonal, and whose            first M rows are orthogonal, and whose remaining rows are            zero.    M       (input) INTEGER            The number of rows of A.    N       (input) INTEGER            The number of columns of A.    A       (input/output) REAL array, dimension (LDA, N)            On entry, the array A.            On exit, overwritten by U A ( if SIDE = 'L' ),             or by A U ( if SIDE = 'R' ),             or by U A U' ( if SIDE = 'C' or 'T').    LDA     (input) INTEGER            The leading dimension of the array A.  LDA >= max(1,M).//.........这里部分代码省略.........
开发者ID:DarkOfTheMoon,项目名称:HONEI,代码行数:101,


示例4: sgemv_

//.........这里部分代码省略.........			1], &c__1, &tau[i__ - 1]);		e[i__ - 1] = a[i__ - 1 + i__ * a_dim1];		a[i__ - 1 + i__ * a_dim1] = 1.f;/*              Compute W(1:i-1,i) */		i__2 = i__ - 1;		ssymv_("Upper", &i__2, &c_b6, &a[a_offset], lda, &a[i__ * 			a_dim1 + 1], &c__1, &c_b16, &w[iw * w_dim1 + 1], &			c__1);		if (i__ < *n) {		    i__2 = i__ - 1;		    i__3 = *n - i__;		    sgemv_("Transpose", &i__2, &i__3, &c_b6, &w[(iw + 1) * 			    w_dim1 + 1], ldw, &a[i__ * a_dim1 + 1], &c__1, &			    c_b16, &w[i__ + 1 + iw * w_dim1], &c__1);		    i__2 = i__ - 1;		    i__3 = *n - i__;		    sgemv_("No transpose", &i__2, &i__3, &c_b5, &a[(i__ + 1) *			     a_dim1 + 1], lda, &w[i__ + 1 + iw * w_dim1], &			    c__1, &c_b6, &w[iw * w_dim1 + 1], &c__1);		    i__2 = i__ - 1;		    i__3 = *n - i__;		    sgemv_("Transpose", &i__2, &i__3, &c_b6, &a[(i__ + 1) * 			    a_dim1 + 1], lda, &a[i__ * a_dim1 + 1], &c__1, &			    c_b16, &w[i__ + 1 + iw * w_dim1], &c__1);		    i__2 = i__ - 1;		    i__3 = *n - i__;		    sgemv_("No transpose", &i__2, &i__3, &c_b5, &w[(iw + 1) * 			    w_dim1 + 1], ldw, &w[i__ + 1 + iw * w_dim1], &			    c__1, &c_b6, &w[iw * w_dim1 + 1], &c__1);		}		i__2 = i__ - 1;		sscal_(&i__2, &tau[i__ - 1], &w[iw * w_dim1 + 1], &c__1);		i__2 = i__ - 1;		alpha = tau[i__ - 1] * -.5f * sdot_(&i__2, &w[iw * w_dim1 + 1], &c__1, &a[i__ * a_dim1 + 1], &c__1);		i__2 = i__ - 1;		saxpy_(&i__2, &alpha, &a[i__ * a_dim1 + 1], &c__1, &w[iw * 			w_dim1 + 1], &c__1);	    }	}    } else {/*        Reduce first NB columns of lower triangle */	i__1 = *nb;	for (i__ = 1; i__ <= i__1; ++i__) {/*           Update A(i:n,i) */	    i__2 = *n - i__ + 1;	    i__3 = i__ - 1;	    sgemv_("No transpose", &i__2, &i__3, &c_b5, &a[i__ + a_dim1], lda, 		     &w[i__ + w_dim1], ldw, &c_b6, &a[i__ + i__ * a_dim1], &		    c__1);	    i__2 = *n - i__ + 1;	    i__3 = i__ - 1;	    sgemv_("No transpose", &i__2, &i__3, &c_b5, &w[i__ + w_dim1], ldw, 		     &a[i__ + a_dim1], lda, &c_b6, &a[i__ + i__ * a_dim1], &		    c__1);	    if (i__ < *n) {/*              Generate elementary reflector H(i) to annihilate *//*              A(i+2:n,i) */
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:67,


示例5: sgebal_

 int sgebal_(char *job, int *n, float *a, int *lda, 	int *ilo, int *ihi, float *scale, int *info){    /* System generated locals */    int a_dim1, a_offset, i__1, i__2;    float r__1, r__2;    /* Local variables */    float c__, f, g;    int i__, j, k, l, m;    float r__, s, ca, ra;    int ica, ira, iexc;    extern int lsame_(char *, char *);    extern  int sscal_(int *, float *, float *, int *), 	    sswap_(int *, float *, int *, float *, int *);    float sfmin1, sfmin2, sfmax1, sfmax2;    extern double slamch_(char *);    extern  int xerbla_(char *, int *);    extern int isamax_(int *, float *, int *);    int noconv;/*  -- LAPACK routine (version 3.2) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SGEBAL balances a general float matrix A.  This involves, first, *//*  permuting A by a similarity transformation to isolate eigenvalues *//*  in the first 1 to ILO-1 and last IHI+1 to N elements on the *//*  diagonal; and second, applying a diagonal similarity transformation *//*  to rows and columns ILO to IHI to make the rows and columns as *//*  close in norm as possible.  Both steps are optional. *//*  Balancing may reduce the 1-norm of the matrix, and improve the *//*  accuracy of the computed eigenvalues and/or eigenvectors. *//*  Arguments *//*  ========= *//*  JOB     (input) CHARACTER*1 *//*          Specifies the operations to be performed on A: *//*          = 'N':  none:  simply set ILO = 1, IHI = N, SCALE(I) = 1.0 *//*                  for i = 1,...,N; *//*          = 'P':  permute only; *//*          = 'S':  scale only; *//*          = 'B':  both permute and scale. *//*  N       (input) INTEGER *//*          The order of the matrix A.  N >= 0. *//*  A       (input/output) REAL array, dimension (LDA,N) *//*          On entry, the input matrix A. *//*          On exit,  A is overwritten by the balanced matrix. *//*          If JOB = 'N', A is not referenced. *//*          See Further Details. *//*  LDA     (input) INTEGER *//*          The leading dimension of the array A.  LDA >= MAX(1,N). *//*  ILO     (output) INTEGER *//*  IHI     (output) INTEGER *//*          ILO and IHI are set to ints such that on exit *//*          A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N. *//*          If JOB = 'N' or 'S', ILO = 1 and IHI = N. *//*  SCALE   (output) REAL array, dimension (N) *//*          Details of the permutations and scaling factors applied to *//*          A.  If P(j) is the index of the row and column interchanged *//*          with row and column j and D(j) is the scaling factor *//*          applied to row and column j, then *//*          SCALE(j) = P(j)    for j = 1,...,ILO-1 *//*                   = D(j)    for j = ILO,...,IHI *//*                   = P(j)    for j = IHI+1,...,N. *//*          The order in which the interchanges are made is N to IHI+1, *//*          then 1 to ILO-1. *//*  INFO    (output) INTEGER *//*          = 0:  successful exit. *//*          < 0:  if INFO = -i, the i-th argument had an illegal value. *//*  Further Details *//*  =============== *//*  The permutations consist of row and column interchanges which put *//*  the matrix in the form *//*             ( T1   X   Y  ) *//*     P A P = (  0   B   Z  ) *//*             (  0   0   T2 ) *//*  where T1 and T2 are upper triangular matrices whose eigenvalues lie *//*  along the diagonal.  The column indices ILO and IHI mark the starting *///.........这里部分代码省略.........
开发者ID:GuillaumeFuchs,项目名称:Ensimag,代码行数:101,


示例6: sger_

/* Subroutine */ int sgbtrf_(integer *m, integer *n, integer *kl, integer *ku, 	 real *ab, integer *ldab, integer *ipiv, integer *info){    /* System generated locals */    integer ab_dim1, ab_offset, i__1, i__2, i__3, i__4, i__5, i__6;    real r__1;    /* Local variables */    integer i__, j, i2, i3, j2, j3, k2, jb, nb, ii, jj, jm, ip, jp, km, ju, 	    kv, nw;    extern /* Subroutine */ int sger_(integer *, integer *, real *, real *, 	    integer *, real *, integer *, real *, integer *);    real temp;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), 	    sgemm_(char *, char *, integer *, integer *, integer *, real *, 	    real *, integer *, real *, integer *, real *, real *, integer *);    real work13[4160]	/* was [65][64] */, work31[4160]	/* was [65][	    64] */;    extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, 	    integer *), sswap_(integer *, real *, integer *, real *, integer *), strsm_(char *, char *, char *, char *, integer *, integer *, 	    real *, real *, integer *, real *, integer *), sgbtf2_(integer *, integer *, integer *, integer 	    *, real *, integer *, integer *, integer *), xerbla_(char *, 	    integer *);    extern integer ilaenv_(integer *, char *, char *, integer *, integer *, 	    integer *, integer *), isamax_(integer *, real *, 	    integer *);    extern /* Subroutine */ int slaswp_(integer *, real *, integer *, integer 	    *, integer *, integer *, integer *);/*  -- LAPACK routine (version 3.2) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SGBTRF computes an LU factorization of a real m-by-n band matrix A *//*  using partial pivoting with row interchanges. *//*  This is the blocked version of the algorithm, calling Level 3 BLAS. *//*  Arguments *//*  ========= *//*  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. *//*  KL      (input) INTEGER *//*          The number of subdiagonals within the band of A.  KL >= 0. *//*  KU      (input) INTEGER *//*          The number of superdiagonals within the band of A.  KU >= 0. *//*  AB      (input/output) REAL array, dimension (LDAB,N) *//*          On entry, the matrix A in band storage, in rows KL+1 to *//*          2*KL+KU+1; rows 1 to KL of the array need not be set. *//*          The j-th column of A is stored in the j-th column of the *//*          array AB as follows: *//*          AB(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl) *//*          On exit, details of the factorization: U is stored as an *//*          upper triangular band matrix with KL+KU superdiagonals in *//*          rows 1 to KL+KU+1, and the multipliers used during the *//*          factorization are stored in rows KL+KU+2 to 2*KL+KU+1. *//*          See below for further details. *//*  LDAB    (input) INTEGER *//*          The leading dimension of the array AB.  LDAB >= 2*KL+KU+1. *//*  IPIV    (output) INTEGER array, dimension (min(M,N)) *//*          The pivot indices; for 1 <= i <= min(M,N), row i of the *//*          matrix was interchanged with row IPIV(i). *//*  INFO    (output) INTEGER *//*          = 0: successful exit *//*          < 0: if INFO = -i, the i-th argument had an illegal value *//*          > 0: if INFO = +i, U(i,i) is exactly zero. The factorization *//*               has been completed, but the factor U is exactly *//*               singular, and division by zero will occur if it is used *//*               to solve a system of equations. *//*  Further Details *//*  =============== *//*  The band storage scheme is illustrated by the following example, when *//*  M = N = 6, KL = 2, KU = 1: *//*  On entry:                       On exit: *//*      *    *    *    +    +    +       *    *    *   u14  u25  u36 *///.........这里部分代码省略.........
开发者ID:0u812,项目名称:roadrunner-backup,代码行数:101,


示例7: sger_

/* Subroutine */ int sgetf2_(integer *m, integer *n, real *a, integer *lda, 	integer *ipiv, integer *info){    /* System generated locals */    integer a_dim1, a_offset, i__1, i__2, i__3;    real r__1;    /* Local variables */    integer i__, j, jp;    extern /* Subroutine */ int sger_(integer *, integer *, real *, real *, 	    integer *, real *, integer *, real *, integer *), sscal_(integer *, real *, real *, integer *);    real sfmin;    extern /* Subroutine */ int sswap_(integer *, real *, integer *, real *, 	    integer *);    extern doublereal slamch_(char *);    extern /* Subroutine */ int xerbla_(char *, integer *);    extern integer isamax_(integer *, real *, integer *);/*  -- LAPACK routine (version 3.1) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SGETF2 computes an LU factorization of a general m-by-n matrix A *//*  using partial pivoting with row interchanges. *//*  The factorization has the form *//*     A = P * L * U *//*  where P is a permutation matrix, L is lower triangular with unit *//*  diagonal elements (lower trapezoidal if m > n), and U is upper *//*  triangular (upper trapezoidal if m < n). *//*  This is the right-looking Level 2 BLAS version of the algorithm. *//*  Arguments *//*  ========= *//*  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/output) REAL array, dimension (LDA,N) *//*          On entry, the m by n matrix to be factored. *//*          On exit, the factors L and U from the factorization *//*          A = P*L*U; the unit diagonal elements of L are not stored. *//*  LDA     (input) INTEGER *//*          The leading dimension of the array A.  LDA >= max(1,M). *//*  IPIV    (output) INTEGER array, dimension (min(M,N)) *//*          The pivot indices; for 1 <= i <= min(M,N), row i of the *//*          matrix was interchanged with row IPIV(i). *//*  INFO    (output) INTEGER *//*          = 0: successful exit *//*          < 0: if INFO = -k, the k-th argument had an illegal value *//*          > 0: if INFO = k, U(k,k) is exactly zero. The factorization *//*               has been completed, but the factor U is exactly *//*               singular, and division by zero will occur if it is used *//*               to solve a system of equations. *//*  ===================================================================== *//*     .. Parameters .. *//*     .. *//*     .. Local Scalars .. *//*     .. *//*     .. External Functions .. *//*     .. *//*     .. External Subroutines .. *//*     .. *//*     .. Intrinsic Functions .. *//*     .. *//*     .. Executable Statements .. *//*     Test the input parameters. */    /* Parameter adjustments */    a_dim1 = *lda;    a_offset = 1 + a_dim1;    a -= a_offset;    --ipiv;    /* Function Body */    *info = 0;    if (*m < 0) {	*info = -1;    } else if (*n < 0) {	*info = -2;//.........这里部分代码省略.........
开发者ID:Avatarchik,项目名称:EmguCV-Unity,代码行数:101,


示例8: sqrt

/* Subroutine */ int sgeevx_(char *balanc, char *jobvl, char *jobvr, char *	sense, integer *n, real *a, integer *lda, real *wr, real *wi, real *	vl, integer *ldvl, real *vr, integer *ldvr, integer *ilo, integer *	ihi, real *scale, real *abnrm, real *rconde, real *rcondv, real *work, 	 integer *lwork, integer *iwork, integer *info){    /* System generated locals */    integer a_dim1, a_offset, vl_dim1, vl_offset, vr_dim1, vr_offset, i__1, 	    i__2, i__3;    real r__1, r__2;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    integer i__, k;    real r__, cs, sn;    char job[1];    real scl, dum[1], eps;    char side[1];    real anrm;    integer ierr, itau, iwrk, nout;    extern /* Subroutine */ int srot_(integer *, real *, integer *, real *, 	    integer *, real *, real *);    extern doublereal snrm2_(integer *, real *, integer *);    integer icond;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    extern doublereal slapy2_(real *, real *);    extern /* Subroutine */ int slabad_(real *, real *);    logical scalea;    real cscale;    extern /* Subroutine */ int sgebak_(char *, char *, integer *, integer *, 	    integer *, real *, integer *, real *, integer *, integer *), sgebal_(char *, integer *, real *, integer *, 	    integer *, integer *, real *, integer *);    extern doublereal slamch_(char *), slange_(char *, integer *, 	    integer *, real *, integer *, real *);    extern /* Subroutine */ int sgehrd_(integer *, integer *, integer *, real 	    *, integer *, real *, real *, integer *, integer *), xerbla_(char 	    *, integer *);    extern integer ilaenv_(integer *, char *, char *, integer *, integer *, 	    integer *, integer *);    logical select[1];    real bignum;    extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, 	    real *, integer *, integer *, real *, integer *, integer *);    extern integer isamax_(integer *, real *, integer *);    extern /* Subroutine */ int slacpy_(char *, integer *, integer *, real *, 	    integer *, real *, integer *), slartg_(real *, real *, 	    real *, real *, real *), sorghr_(integer *, integer *, integer *, 	    real *, integer *, real *, real *, integer *, integer *), shseqr_(	    char *, char *, integer *, integer *, integer *, real *, integer *, real *, real *, real *, integer *, real *, integer *, integer *), strevc_(char *, char *, logical *, integer *, 	    real *, integer *, real *, integer *, real *, integer *, integer *, integer *, real *, integer *);    integer minwrk, maxwrk;    extern /* Subroutine */ int strsna_(char *, char *, logical *, integer *, 	    real *, integer *, real *, integer *, real *, integer *, real *, 	    real *, integer *, integer *, real *, integer *, integer *, 	    integer *);    logical wantvl, wntsnb;    integer hswork;    logical wntsne;    real smlnum;    logical lquery, wantvr, wntsnn, wntsnv;/*  -- LAPACK driver routine (version 3.1) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SGEEVX computes for an N-by-N real nonsymmetric matrix A, the *//*  eigenvalues and, optionally, the left and/or right eigenvectors. *//*  Optionally also, it computes a balancing transformation to improve *//*  the conditioning of the eigenvalues and eigenvectors (ILO, IHI, *//*  SCALE, and ABNRM), reciprocal condition numbers for the eigenvalues *//*  (RCONDE), and reciprocal condition numbers for the right *//*  eigenvectors (RCONDV). *//*  The right eigenvector v(j) of A satisfies *//*                   A * v(j) = lambda(j) * v(j) *//*  where lambda(j) is its eigenvalue. *//*  The left eigenvector u(j) of A satisfies *//*                u(j)**H * A = lambda(j) * u(j)**H *//*  where u(j)**H denotes the conjugate transpose of u(j). *//*  The computed eigenvectors are normalized to have Euclidean norm *//*  equal to 1 and largest component real. *//*  Balancing a matrix means permuting the rows and columns to make it *//*  more nearly upper triangular, and applying a diagonal similarity *///.........这里部分代码省略.........
开发者ID:dacap,项目名称:loseface,代码行数:101,


示例9: clatps_

/* Subroutine */int clatps_(char *uplo, char *trans, char *diag, char * normin, integer *n, complex *ap, complex *x, real *scale, real *cnorm, integer *info){    /* System generated locals */    integer i__1, i__2, i__3, i__4, i__5;    real r__1, r__2, r__3, r__4;    complex q__1, q__2, q__3, q__4;    /* Builtin functions */    double r_imag(complex *);    void r_cnjg(complex *, complex *);    /* Local variables */    integer i__, j, ip;    real xj, rec, tjj;    integer jinc, jlen;    real xbnd;    integer imax;    real tmax;    complex tjjs;    real xmax, grow;    extern /* Complex */    VOID cdotc_f2c_(complex *, integer *, complex *, integer *, complex *, integer *);    extern logical lsame_(char *, char *);    extern /* Subroutine */    int sscal_(integer *, real *, real *, integer *);    real tscal;    complex uscal;    integer jlast;    extern /* Complex */    VOID cdotu_f2c_(complex *, integer *, complex *, integer *, complex *, integer *);    complex csumj;    extern /* Subroutine */    int caxpy_(integer *, complex *, complex *, integer *, complex *, integer *);    logical upper;    extern /* Subroutine */    int ctpsv_(char *, char *, char *, integer *, complex *, complex *, integer *), slabad_( real *, real *);    extern integer icamax_(integer *, complex *, integer *);    extern /* Complex */    VOID cladiv_(complex *, complex *, complex *);    extern real slamch_(char *);    extern /* Subroutine */    int csscal_(integer *, real *, complex *, integer *), xerbla_(char *, integer *);    real bignum;    extern integer isamax_(integer *, real *, integer *);    extern real scasum_(integer *, complex *, integer *);    logical notran;    integer jfirst;    real smlnum;    logical nounit;    /* -- LAPACK auxiliary routine (version 3.4.2) -- */    /* -- LAPACK is a software package provided by Univ. of Tennessee, -- */    /* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- */    /* September 2012 */    /* .. Scalar Arguments .. */    /* .. */    /* .. Array Arguments .. */    /* .. */    /* ===================================================================== */    /* .. Parameters .. */    /* .. */    /* .. Local Scalars .. */    /* .. */    /* .. External Functions .. */    /* .. */    /* .. External Subroutines .. */    /* .. */    /* .. Intrinsic Functions .. */    /* .. */    /* .. Statement Functions .. */    /* .. */    /* .. Statement Function definitions .. */    /* .. */    /* .. Executable Statements .. */    /* Parameter adjustments */    --cnorm;    --x;    --ap;    /* Function Body */    *info = 0;    upper = lsame_(uplo, "U");    notran = lsame_(trans, "N");    nounit = lsame_(diag, "N");    /* Test the input parameters. */    if (! upper && ! lsame_(uplo, "L"))    {        *info = -1;    }    else if (! notran && ! lsame_(trans, "T") && ! lsame_(trans, "C"))    {        *info = -2;    }    else if (! nounit && ! lsame_(diag, "U"))    {        *info = -3;    }    else if (! lsame_(normin, "Y") && ! lsame_(normin, "N"))    {        *info = -4;    }    else if (*n < 0)    {//.........这里部分代码省略.........
开发者ID:csapng,项目名称:libflame,代码行数:101,


示例10: sspevx_

int sspevx_(char *jobz, char *range, char *uplo, int *n,            float *ap, float *vl, float *vu, int *il, int *iu, float *abstol,            int *m, float *w, float *z__, int *ldz, float *work, int *            iwork, int *ifail, int *info){    /* System generated locals */    int z_dim1, z_offset, i__1, i__2;    float r__1, r__2;    /* Builtin functions */    double sqrt(double);    /* Local variables */    int i__, j, jj;    float eps, vll, vuu, tmp1;    int indd, inde;    float anrm;    int imax;    float rmin, rmax;    int test;    int itmp1, indee;    float sigma;    extern int lsame_(char *, char *);    int iinfo;    extern  int sscal_(int *, float *, float *, int *);    char order[1];    extern  int scopy_(int *, float *, int *, float *,                       int *), sswap_(int *, float *, int *, float *, int *                                     );    int wantz, alleig, indeig;    int iscale, indibl;    int valeig;    extern double slamch_(char *);    float safmin;    extern  int xerbla_(char *, int *);    float abstll, bignum;    int indtau, indisp, indiwo, indwrk;    extern double slansp_(char *, char *, int *, float *, float *);    extern  int sstein_(int *, float *, float *, int *,                        float *, int *, int *, float *, int *, float *, int *                        , int *, int *), ssterf_(int *, float *, float *,                                int *);    int nsplit;    extern  int sstebz_(char *, char *, int *, float *,                        float *, int *, int *, float *, float *, float *, int *,                        int *, float *, int *, int *, float *, int *,                        int *);    float smlnum;    extern  int sopgtr_(char *, int *, float *, float *,                        float *, int *, float *, int *), ssptrd_(char *,                                int *, float *, float *, float *, float *, int *),                                    ssteqr_(char *, int *, float *, float *, float *, int *,                                            float *, int *), sopmtr_(char *, char *, char *,                                                    int *, int *, float *, float *, float *, int *, float *,                                                    int *);    /*  -- LAPACK driver routine (version 3.2) -- */    /*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */    /*     November 2006 */    /*     .. Scalar Arguments .. */    /*     .. */    /*     .. Array Arguments .. */    /*     .. */    /*  Purpose */    /*  ======= */    /*  SSPEVX computes selected eigenvalues and, optionally, eigenvectors */    /*  of a float symmetric matrix A in packed storage.  Eigenvalues/vectors */    /*  can be selected by specifying either a range of values or a range of */    /*  indices for the desired eigenvalues. */    /*  Arguments */    /*  ========= */    /*  JOBZ    (input) CHARACTER*1 */    /*          = 'N':  Compute eigenvalues only; */    /*          = 'V':  Compute eigenvalues and eigenvectors. */    /*  RANGE   (input) CHARACTER*1 */    /*          = 'A': all eigenvalues will be found; */    /*          = 'V': all eigenvalues in the half-open interval (VL,VU] */    /*                 will be found; */    /*          = 'I': the IL-th through IU-th eigenvalues will be found. */    /*  UPLO    (input) CHARACTER*1 */    /*          = 'U':  Upper triangle of A is stored; */    /*          = 'L':  Lower triangle of A is stored. */    /*  N       (input) INTEGER */    /*          The order of the matrix A.  N >= 0. */    /*  AP      (input/output) REAL array, dimension (N*(N+1)/2) */    /*          On entry, the upper or lower triangle of the symmetric matrix */    /*          A, packed columnwise in a linear array.  The j-th column of A */    /*          is stored in the array AP as follows: */    /*          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; */    /*          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *///.........这里部分代码省略.........
开发者ID:GuillaumeFuchs,项目名称:Ensimag,代码行数:101,


示例11: inv

/* Subroutine */ int sspgst_(integer *itype, char *uplo, integer *n, real *ap,	 real *bp, integer *info){/*  -- LAPACK routine (version 3.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          March 31, 1993       Purpose       =======       SSPGST reduces a real symmetric-definite generalized eigenproblem       to standard form, using packed storage.       If ITYPE = 1, the problem is A*x = lambda*B*x,       and A is overwritten by inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T)       If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or       B*A*x = lambda*x, and A is overwritten by U*A*U**T or L**T*A*L.       B must have been previously factorized as U**T*U or L*L**T by SPPTRF.       Arguments       =========       ITYPE   (input) INTEGER               = 1: compute inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T);               = 2 or 3: compute U*A*U**T or L**T*A*L.       UPLO    (input) CHARACTER               = 'U':  Upper triangle of A is stored and B is factored as                       U**T*U;               = 'L':  Lower triangle of A is stored and B is factored as                       L*L**T.       N       (input) INTEGER               The order of the matrices A and B.  N >= 0.       AP      (input/output) REAL array, dimension (N*(N+1)/2)               On entry, the upper or lower triangle of the symmetric matrix               A, packed columnwise in a linear array.  The j-th column of A               is stored in the array AP as follows:               if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;               if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.               On exit, if INFO = 0, the transformed matrix, stored in the               same format as A.       BP      (input) REAL array, dimension (N*(N+1)/2)               The triangular factor from the Cholesky factorization of B,               stored in the same format as A, as returned by SPPTRF.       INFO    (output) INTEGER               = 0:  successful exit               < 0:  if INFO = -i, the i-th argument had an illegal value       =====================================================================          Test the input parameters.          Parameter adjustments */    /* Table of constant values */    static integer c__1 = 1;    static real c_b9 = -1.f;    static real c_b11 = 1.f;        /* System generated locals */    integer i__1, i__2;    real r__1;    /* Local variables */    extern doublereal sdot_(integer *, real *, integer *, real *, integer *);    extern /* Subroutine */ int sspr2_(char *, integer *, real *, real *, 	    integer *, real *, integer *, real *);    static integer j, k;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    static logical upper;    static integer j1, k1;    extern /* Subroutine */ int saxpy_(integer *, real *, real *, integer *, 	    real *, integer *), sspmv_(char *, integer *, real *, real *, 	    real *, integer *, real *, real *, integer *), stpmv_(	    char *, char *, char *, integer *, real *, real *, integer *), stpsv_(char *, char *, char *, integer *,	     real *, real *, integer *);    static integer jj, kk;    static real ct;    extern /* Subroutine */ int xerbla_(char *, integer *);    static real ajj;    static integer j1j1;    static real akk;    static integer k1k1;    static real bjj, bkk;    --bp;    --ap;    /* Function Body */    *info = 0;//.........这里部分代码省略.........
开发者ID:MichaelH13,项目名称:sdkpub,代码行数:101,


示例12: sscal_

/* Subroutine */ int sorgr2_(integer *m, integer *n, integer *k, real *a, 	integer *lda, real *tau, real *work, integer *info){    /* System generated locals */    integer a_dim1, a_offset, i__1, i__2, i__3;    real r__1;    /* Local variables */    integer i__, j, l, ii;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), 	    slarf_(char *, integer *, integer *, real *, integer *, real *, 	    real *, integer *, real *), xerbla_(char *, integer *);/*  -- LAPACK routine (version 3.1) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SORGR2 generates an m by n real matrix Q with orthonormal rows, *//*  which is defined as the last m rows of a product of k elementary *//*  reflectors of order n *//*        Q  =  H(1) H(2) . . . H(k) *//*  as returned by SGERQF. *//*  Arguments *//*  ========= *//*  M       (input) INTEGER *//*          The number of rows of the matrix Q. M >= 0. *//*  N       (input) INTEGER *//*          The number of columns of the matrix Q. N >= M. *//*  K       (input) INTEGER *//*          The number of elementary reflectors whose product defines the *//*          matrix Q. M >= K >= 0. *//*  A       (input/output) REAL array, dimension (LDA,N) *//*          On entry, the (m-k+i)-th row must contain the vector which *//*          defines the elementary reflector H(i), for i = 1,2,...,k, as *//*          returned by SGERQF in the last k rows of its array argument *//*          A. *//*          On exit, the m by n matrix Q. *//*  LDA     (input) INTEGER *//*          The first dimension of the array A. LDA >= max(1,M). *//*  TAU     (input) REAL array, dimension (K) *//*          TAU(i) must contain the scalar factor of the elementary *//*          reflector H(i), as returned by SGERQF. *//*  WORK    (workspace) REAL array, dimension (M) *//*  INFO    (output) INTEGER *//*          = 0: successful exit *//*          < 0: if INFO = -i, the i-th argument has an illegal value *//*  ===================================================================== *//*     .. Parameters .. *//*     .. *//*     .. Local Scalars .. *//*     .. *//*     .. External Subroutines .. *//*     .. *//*     .. Intrinsic Functions .. *//*     .. *//*     .. Executable Statements .. *//*     Test the input arguments */    /* Parameter adjustments */    a_dim1 = *lda;    a_offset = 1 + a_dim1;    a -= a_offset;    --tau;    --work;    /* Function Body */    *info = 0;    if (*m < 0) {	*info = -1;    } else if (*n < *m) {	*info = -2;    } else if (*k < 0 || *k > *m) {	*info = -3;    } else if (*lda < max(1,*m)) {	*info = -5;    }    if (*info != 0) {//.........这里部分代码省略.........
开发者ID:dacap,项目名称:loseface,代码行数:101,


示例13: dimension

//.........这里部分代码省略.........    The contents of A on exit are illustrated by the following examples       with nb = 2:       m = 6 and n = 5 (m > n):          m = 5 and n = 6 (m < n):         (  1   1   u1  u1  u1 )           (  1   u1  u1  u1  u1  u1 )         (  v1  1   1   u2  u2 )           (  1   1   u2  u2  u2  u2 )         (  v1  v2  a   a   a  )           (  v1  1   a   a   a   a  )         (  v1  v2  a   a   a  )           (  v1  v2  a   a   a   a  )         (  v1  v2  a   a   a  )           (  v1  v2  a   a   a   a  )         (  v1  v2  a   a   a  )       where a denotes an element of the original matrix which is unchanged,       vi denotes an element of the vector defining H(i), and ui an element       of the vector defining G(i).       =====================================================================          Quick return if possible          Parameter adjustments */    /* Table of constant values */    static real c_b4 = -1.f;    static real c_b5 = 1.f;    static integer c__1 = 1;    static real c_b16 = 0.f;        /* System generated locals */    integer a_dim1, a_offset, x_dim1, x_offset, y_dim1, y_offset, i__1, i__2, 	    i__3;    /* Local variables */    static integer i__;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), 	    sgemv_(char *, integer *, integer *, real *, real *, integer *, 	    real *, integer *, real *, real *, integer *), slarfg_(	    integer *, real *, real *, integer *, real *);#define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]#define x_ref(a_1,a_2) x[(a_2)*x_dim1 + a_1]#define y_ref(a_1,a_2) y[(a_2)*y_dim1 + a_1]    a_dim1 = *lda;    a_offset = 1 + a_dim1 * 1;    a -= a_offset;    --d__;    --e;    --tauq;    --taup;    x_dim1 = *ldx;    x_offset = 1 + x_dim1 * 1;    x -= x_offset;    y_dim1 = *ldy;    y_offset = 1 + y_dim1 * 1;    y -= y_offset;    /* Function Body */    if (*m <= 0 || *n <= 0) {	return 0;    }    if (*m >= *n) {/*        Reduce to upper bidiagonal form */	i__1 = *nb;
开发者ID:MichaelH13,项目名称:sdkpub,代码行数:67,


示例14: sqrt

/* Subroutine */ int ssyevr_(char *jobz, char *range, char *uplo, integer *n, 	real *a, integer *lda, real *vl, real *vu, integer *il, integer *iu, 	real *abstol, integer *m, real *w, real *z__, integer *ldz, integer *	isuppz, real *work, integer *lwork, integer *iwork, integer *liwork, 	integer *info){    /* System generated locals */    integer a_dim1, a_offset, z_dim1, z_offset, i__1, i__2;    real r__1, r__2;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    integer i__, j, nb, jj;    real eps, vll, vuu, tmp1;    integer indd, inde;    real anrm;    integer imax;    real rmin, rmax;    logical test;    integer inddd, indee;    real sigma;    extern logical lsame_(char *, char *);    integer iinfo;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    char order[1];    integer indwk, lwmin;    logical lower;    extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, 	    integer *), sswap_(integer *, real *, integer *, real *, integer *);    logical wantz, alleig, indeig;    integer iscale, ieeeok, indibl, indifl;    logical valeig;    extern doublereal slamch_(char *);    real safmin;    extern integer ilaenv_(integer *, char *, char *, integer *, integer *, 	    integer *, integer *);    extern /* Subroutine */ int xerbla_(char *, integer *);    real abstll, bignum;    integer indtau, indisp, indiwo, indwkn, liwmin;    logical tryrac;    extern /* Subroutine */ int sstein_(integer *, real *, real *, integer *, 	    real *, integer *, integer *, real *, integer *, real *, integer *, integer *, integer *), ssterf_(integer *, real *, real *, 	    integer *);    integer llwrkn, llwork, nsplit;    real smlnum;    extern doublereal slansy_(char *, char *, integer *, real *, integer *, 	    real *);    extern /* Subroutine */ int sstebz_(char *, char *, integer *, real *, 	    real *, integer *, integer *, real *, real *, real *, integer *, 	    integer *, real *, integer *, integer *, real *, integer *, 	    integer *), sstemr_(char *, char *, integer *, 	    real *, real *, real *, real *, integer *, integer *, integer *, 	    real *, real *, integer *, integer *, integer *, logical *, real *, integer *, integer *, integer *, integer *);    integer lwkopt;    logical lquery;    extern /* Subroutine */ int sormtr_(char *, char *, char *, integer *, 	    integer *, real *, integer *, real *, real *, integer *, real *, 	    integer *, integer *), ssytrd_(char *, 	    integer *, real *, integer *, real *, real *, real *, real *, 	    integer *, integer *);/*  -- LAPACK driver routine (version 3.1) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SSYEVR computes selected eigenvalues and, optionally, eigenvectors *//*  of a real symmetric matrix A.  Eigenvalues and eigenvectors can be *//*  selected by specifying either a range of values or a range of *//*  indices for the desired eigenvalues. *//*  SSYEVR first reduces the matrix A to tridiagonal form T with a call *//*  to SSYTRD.  Then, whenever possible, SSYEVR calls SSTEMR to compute *//*  the eigenspectrum using Relatively Robust Representations.  SSTEMR *//*  computes eigenvalues by the dqds algorithm, while orthogonal *//*  eigenvectors are computed from various "good" L D L^T representations *//*  (also known as Relatively Robust Representations). Gram-Schmidt *//*  orthogonalization is avoided as far as possible. More specifically, *//*  the various steps of the algorithm are as follows. *//*  For each unreduced block (submatrix) of T, *//*     (a) Compute T - sigma I  = L D L^T, so that L and D *//*         define all the wanted eigenvalues to high relative accuracy. *//*         This means that small relative changes in the entries of D and L *//*         cause only small relative changes in the eigenvalues and *//*         eigenvectors. The standard (unfactored) representation of the *//*         tridiagonal matrix T does not have this property in general. *///.........这里部分代码省略.........
开发者ID:Barbakas,项目名称:windage,代码行数:101,


示例15: chpevd_

/* Subroutine */int chpevd_(char *jobz, char *uplo, integer *n, complex *ap, real *w, complex *z__, integer *ldz, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *info){    /* System generated locals */    integer z_dim1, z_offset, i__1;    real r__1;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    real eps;    integer inde;    real anrm;    integer imax;    real rmin, rmax, sigma;    extern logical lsame_(char *, char *);    integer iinfo;    extern /* Subroutine */    int sscal_(integer *, real *, real *, integer *);    integer lwmin, llrwk, llwrk;    logical wantz;    integer iscale;    extern real clanhp_(char *, char *, integer *, complex *, real *);    extern /* Subroutine */    int cstedc_(char *, integer *, real *, real *, complex *, integer *, complex *, integer *, real *, integer *, integer *, integer *, integer *);    extern real slamch_(char *);    extern /* Subroutine */    int csscal_(integer *, real *, complex *, integer *);    real safmin;    extern /* Subroutine */    int xerbla_(char *, integer *);    real bignum;    integer indtau;    extern /* Subroutine */    int chptrd_(char *, integer *, complex *, real *, real *, complex *, integer *);    integer indrwk, indwrk, liwmin;    extern /* Subroutine */    int ssterf_(integer *, real *, real *, integer *);    integer lrwmin;    extern /* Subroutine */    int cupmtr_(char *, char *, char *, integer *, integer *, complex *, complex *, complex *, integer *, complex *, integer *);    real smlnum;    logical lquery;    /* -- LAPACK driver routine (version 3.4.0) -- */    /* -- LAPACK is a software package provided by Univ. of Tennessee, -- */    /* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- */    /* November 2011 */    /* .. Scalar Arguments .. */    /* .. */    /* .. Array Arguments .. */    /* .. */    /* ===================================================================== */    /* .. Parameters .. */    /* .. */    /* .. Local Scalars .. */    /* .. */    /* .. External Functions .. */    /* .. */    /* .. External Subroutines .. */    /* .. */    /* .. Intrinsic Functions .. */    /* .. */    /* .. Executable Statements .. */    /* Test the input parameters. */    /* Parameter adjustments */    --ap;    --w;    z_dim1 = *ldz;    z_offset = 1 + z_dim1;    z__ -= z_offset;    --work;    --rwork;    --iwork;    /* Function Body */    wantz = lsame_(jobz, "V");    lquery = *lwork == -1 || *lrwork == -1 || *liwork == -1;    *info = 0;    if (! (wantz || lsame_(jobz, "N")))    {        *info = -1;    }    else if (! (lsame_(uplo, "L") || lsame_(uplo, "U")))    {        *info = -2;    }    else if (*n < 0)    {        *info = -3;    }    else if (*ldz < 1 || wantz && *ldz < *n)    {        *info = -7;    }    if (*info == 0)    {        if (*n <= 1)        {            lwmin = 1;            liwmin = 1;            lrwmin = 1;        }//.........这里部分代码省略.........
开发者ID:csapng,项目名称:libflame,代码行数:101,


示例16: JOBZ

//.........这里部分代码省略.........            IFAIL are zero.  If INFO > 0, then IFAIL contains the               indices of the eigenvectors that failed to converge.               If JOBZ = 'N', then IFAIL is not referenced.       INFO    (output) INTEGER               = 0:  successful exit               < 0:  if INFO = -i, the i-th argument had an illegal value               > 0:  if INFO = i, then i eigenvectors failed to converge.                     Their indices are stored in array IFAIL.       =====================================================================          Test the input parameters.          Parameter adjustments */    /* Table of constant values */    static integer c__1 = 1;        /* System generated locals */    integer z_dim1, z_offset, i__1, i__2;    real r__1, r__2;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    static integer indd, inde;    static real anrm;    static integer imax;    static real rmin, rmax;    static integer itmp1, i__, j, indee;    static real sigma;    extern logical lsame_(char *, char *);    static integer iinfo;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    static char order[1];    extern /* Subroutine */ int cswap_(integer *, complex *, integer *, 	    complex *, integer *), scopy_(integer *, real *, integer *, real *	    , integer *);    static logical wantz;    static integer jj;    static logical alleig, indeig;    static integer iscale, indibl;    extern doublereal clanhp_(char *, char *, integer *, complex *, real *);    static logical valeig;    extern doublereal slamch_(char *);    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer 	    *);    static real safmin;    extern /* Subroutine */ int xerbla_(char *, integer *);    static real abstll, bignum;    static integer indiwk, indisp, indtau;    extern /* Subroutine */ int chptrd_(char *, integer *, complex *, real *, 	    real *, complex *, integer *), cstein_(integer *, real *, 	    real *, integer *, real *, integer *, integer *, complex *, 	    integer *, real *, integer *, integer *, integer *);    static integer indrwk, indwrk;    extern /* Subroutine */ int csteqr_(char *, integer *, real *, real *, 	    complex *, integer *, real *, integer *), cupgtr_(char *, 	    integer *, complex *, complex *, complex *, integer *, complex *, 	    integer *), ssterf_(integer *, real *, real *, integer *);    static integer nsplit;    extern /* Subroutine */ int cupmtr_(char *, char *, char *, integer *, 	    integer *, complex *, complex *, complex *, integer *, complex *, 	    integer *);    static real smlnum;    extern /* Subroutine */ int sstebz_(char *, char *, integer *, real *, 
开发者ID:EugeneGalipchak,项目名称:antelope_contrib,代码行数:67,


示例17: SIDE

/* Subroutine */ int sggbak_(char *job, char *side, integer *n, integer *ilo, 	integer *ihi, real *lscale, real *rscale, integer *m, real *v, 	integer *ldv, integer *info){/*  -- LAPACK routine (version 3.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          September 30, 1994       Purpose       =======       SGGBAK forms the right or left eigenvectors of a real generalized       eigenvalue problem A*x = lambda*B*x, by backward transformation on       the computed eigenvectors of the balanced pair of matrices output by       SGGBAL.       Arguments       =========       JOB     (input) CHARACTER*1               Specifies the type of backward transformation required:               = 'N':  do nothing, return immediately;               = 'P':  do backward transformation for permutation only;               = 'S':  do backward transformation for scaling only;               = 'B':  do backward transformations for both permutation and                       scaling.               JOB must be the same as the argument JOB supplied to SGGBAL.       SIDE    (input) CHARACTER*1               = 'R':  V contains right eigenvectors;               = 'L':  V contains left eigenvectors.       N       (input) INTEGER               The number of rows of the matrix V.  N >= 0.       ILO     (input) INTEGER       IHI     (input) INTEGER               The integers ILO and IHI determined by SGGBAL.               1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.       LSCALE  (input) REAL array, dimension (N)               Details of the permutations and/or scaling factors applied               to the left side of A and B, as returned by SGGBAL.       RSCALE  (input) REAL array, dimension (N)               Details of the permutations and/or scaling factors applied               to the right side of A and B, as returned by SGGBAL.       M       (input) INTEGER               The number of columns of the matrix V.  M >= 0.       V       (input/output) REAL array, dimension (LDV,M)               On entry, the matrix of right or left eigenvectors to be               transformed, as returned by STGEVC.               On exit, V is overwritten by the transformed eigenvectors.       LDV     (input) INTEGER               The leading dimension of the matrix V. LDV >= max(1,N).       INFO    (output) INTEGER               = 0:  successful exit.               < 0:  if INFO = -i, the i-th argument had an illegal value.       Further Details       ===============       See R.C. Ward, Balancing the generalized eigenvalue problem,                      SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.       =====================================================================          Test the input parameters          Parameter adjustments */    /* System generated locals */    integer v_dim1, v_offset, i__1;    /* Local variables */    static integer i__, k;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    static logical leftv;    extern /* Subroutine */ int sswap_(integer *, real *, integer *, real *, 	    integer *), xerbla_(char *, integer *);    static logical rightv;#define v_ref(a_1,a_2) v[(a_2)*v_dim1 + a_1]    --lscale;    --rscale;    v_dim1 = *ldv;    v_offset = 1 + v_dim1 * 1;    v -= v_offset;    /* Function Body */    rightv = lsame_(side, "R");    leftv = lsame_(side, "L");    *info = 0;//.........这里部分代码省略.........
开发者ID:EugeneGalipchak,项目名称:antelope_contrib,代码行数:101,


示例18: JOBZ

//.........这里部分代码省略.........            If JOBZ  = 'N' or N <= 1 then LIWORK must be at least 1.               If JOBZ  = 'V' and N > 1 then LIWORK must be at least 2+5*N.       INFO    (output) INTEGER               = 0:  successful exit               < 0:  if INFO = -i, the i-th argument had an illegal value               > 0:  if INFO = i, the algorithm failed to converge; i                     off-diagonal elements of E did not converge to zero.       =====================================================================          Test the input parameters.          Parameter adjustments          Function Body */    /* Table of constant values */    static integer c__2 = 2;    static integer c__1 = 1;        /* System generated locals */    integer z_dim1, z_offset, i__1;    real r__1;    /* Builtin functions */    double log(doublereal);    integer pow_ii(integer *, integer *);    double sqrt(doublereal);    /* Local variables */    static real rmin, rmax, tnrm, sigma;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    static integer lwmin;    static logical wantz;    static integer iscale;    extern doublereal slamch_(char *);    static real safmin;    extern /* Subroutine */ int xerbla_(char *, integer *);    static real bignum;    extern /* Subroutine */ int sstedc_(char *, integer *, real *, real *, 	    real *, integer *, real *, integer *, integer *, integer *, 	    integer *);    static integer liwmin;    extern doublereal slanst_(char *, integer *, real *, real *);    extern /* Subroutine */ int ssterf_(integer *, real *, real *, integer *);    static real smlnum;    static integer lgn;    static real eps;#define D(I) d[(I)-1]#define E(I) e[(I)-1]#define WORK(I) work[(I)-1]#define IWORK(I) iwork[(I)-1]#define Z(I,J) z[(I)-1 + ((J)-1)* ( *ldz)]    wantz = lsame_(jobz, "V");    *info = 0;    liwmin = 1;    lwmin = 1;    if (! (wantz || lsame_(jobz, "N"))) {
开发者ID:deepakantony,项目名称:vispack,代码行数:67,


示例19: JOBZ

/* Subroutine */ int chpev_(char *jobz, char *uplo, integer *n, complex *ap, 	real *w, complex *z, integer *ldz, complex *work, real *rwork, 	integer *info){/*  -- LAPACK driver routine (version 2.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          March 31, 1993       Purpose       =======       CHPEV computes all the eigenvalues and, optionally, eigenvectors of a       complex Hermitian matrix in packed storage.       Arguments       =========       JOBZ    (input) CHARACTER*1               = 'N':  Compute eigenvalues only;               = 'V':  Compute eigenvalues and eigenvectors.       UPLO    (input) CHARACTER*1               = 'U':  Upper triangle of A is stored;               = 'L':  Lower triangle of A is stored.       N       (input) INTEGER               The order of the matrix A.  N >= 0.       AP      (input/output) COMPLEX array, dimension (N*(N+1)/2)               On entry, the upper or lower triangle of the Hermitian matrix               A, packed columnwise in a linear array.  The j-th column of A               is stored in the array AP as follows:               if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;               if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.               On exit, AP is overwritten by values generated during the               reduction to tridiagonal form.  If UPLO = 'U', the diagonal               and first superdiagonal of the tridiagonal matrix T overwrite               the corresponding elements of A, and if UPLO = 'L', the               diagonal and first subdiagonal of T overwrite the               corresponding elements of A.       W       (output) REAL array, dimension (N)               If INFO = 0, the eigenvalues in ascending order.       Z       (output) COMPLEX array, dimension (LDZ, N)               If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal               eigenvectors of the matrix A, with the i-th column of Z               holding the eigenvector associated with W(i).               If JOBZ = 'N', then Z is not referenced.       LDZ     (input) INTEGER               The leading dimension of the array Z.  LDZ >= 1, and if               JOBZ = 'V', LDZ >= max(1,N).       WORK    (workspace) COMPLEX array, dimension (max(1, 2*N-1))       RWORK   (workspace) REAL array, dimension (max(1, 3*N-2))       INFO    (output) INTEGER               = 0:  successful exit.               < 0:  if INFO = -i, the i-th argument had an illegal value.               > 0:  if INFO = i, the algorithm failed to converge; i                     off-diagonal elements of an intermediate tridiagonal                     form did not converge to zero.       =====================================================================          Test the input parameters.          Parameter adjustments          Function Body */    /* Table of constant values */    static integer c__1 = 1;        /* System generated locals */    integer z_dim1, z_offset, i__1;    real r__1;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    static integer inde;    static real anrm;    static integer imax;    static real rmin, rmax, sigma;    extern logical lsame_(char *, char *);    static integer iinfo;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    static logical wantz;    static integer iscale;//.........这里部分代码省略.........
开发者ID:deepakantony,项目名称:vispack,代码行数:101,


示例20: cheev_

/* Subroutine */int cheev_(char *jobz, char *uplo, integer *n, complex *a, integer *lda, real *w, complex *work, integer *lwork, real *rwork, integer *info){    /* System generated locals */    integer a_dim1, a_offset, i__1, i__2;    real r__1;    /* Builtin functions */    double sqrt(doublereal);    /* Local variables */    integer nb;    real eps;    integer inde;    real anrm;    integer imax;    real rmin, rmax, sigma;    extern logical lsame_(char *, char *);    integer iinfo;    extern /* Subroutine */    int sscal_(integer *, real *, real *, integer *);    logical lower, wantz;    extern real clanhe_(char *, char *, integer *, complex *, integer *, real *);    integer iscale;    extern /* Subroutine */    int clascl_(char *, integer *, integer *, real *, real *, integer *, integer *, complex *, integer *, integer *);    extern real slamch_(char *);    extern /* Subroutine */    int chetrd_(char *, integer *, complex *, integer *, real *, real *, complex *, complex *, integer *, integer *);    real safmin;    extern integer ilaenv_(integer *, char *, char *, integer *, integer *, integer *, integer *);    extern /* Subroutine */    int xerbla_(char *, integer *);    real bignum;    integer indtau, indwrk;    extern /* Subroutine */    int csteqr_(char *, integer *, real *, real *, complex *, integer *, real *, integer *), cungtr_(char *, integer *, complex *, integer *, complex *, complex *, integer *, integer *), ssterf_(integer *, real *, real *, integer *);    integer llwork;    real smlnum;    integer lwkopt;    logical lquery;    /* -- LAPACK driver routine (version 3.4.0) -- */    /* -- LAPACK is a software package provided by Univ. of Tennessee, -- */    /* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- */    /* November 2011 */    /* .. Scalar Arguments .. */    /* .. */    /* .. Array Arguments .. */    /* .. */    /* ===================================================================== */    /* .. Parameters .. */    /* .. */    /* .. Local Scalars .. */    /* .. */    /* .. External Functions .. */    /* .. */    /* .. External Subroutines .. */    /* .. */    /* .. Intrinsic Functions .. */    /* .. */    /* .. Executable Statements .. */    /* Test the input parameters. */    /* Parameter adjustments */    a_dim1 = *lda;    a_offset = 1 + a_dim1;    a -= a_offset;    --w;    --work;    --rwork;    /* Function Body */    wantz = lsame_(jobz, "V");    lower = lsame_(uplo, "L");    lquery = *lwork == -1;    *info = 0;    if (! (wantz || lsame_(jobz, "N")))    {        *info = -1;    }    else if (! (lower || lsame_(uplo, "U")))    {        *info = -2;    }    else if (*n < 0)    {        *info = -3;    }    else if (*lda < max(1,*n))    {        *info = -5;    }    if (*info == 0)    {        nb = ilaenv_(&c__1, "CHETRD", uplo, n, &c_n1, &c_n1, &c_n1);        /* Computing MAX */        i__1 = 1;        i__2 = (nb + 1) * *n; // , expr subst        lwkopt = max(i__1,i__2);        work[1].r = (real) lwkopt;        work[1].i = 0.f; // , expr subst        /* Computing MAX */        i__1 = 1;        i__2 = (*n << 1) - 1; // , expr subst//.........这里部分代码省略.........
开发者ID:csapng,项目名称:libflame,代码行数:101,


示例21: lsame_

//.........这里部分代码省略.........    a -= a_offset;    /* Function Body */    *info = 0;    upper = lsame_(uplo, "U");    if (! upper && ! lsame_(uplo, "L")) {	*info = -1;    } else if (*n < 0) {	*info = -2;    } else if (*lda < max(1,*n)) {	*info = -4;    }    if (*info != 0) {	i__1 = -(*info);	xerbla_("SPOTF2", &i__1);	return 0;    }/*     Quick return if possible */    if (*n == 0) {	return 0;    }    if (upper) {/*        Compute the Cholesky factorization A = U'*U. */	i__1 = *n;	for (j = 1; j <= i__1; ++j) {/*           Compute U(J,J) and test for non-positive-definiteness. */	    i__2 = j - 1;	    ajj = a[j + j * a_dim1] - sdot_(&i__2, &a[j * a_dim1 + 1], &c__1, 		    &a[j * a_dim1 + 1], &c__1);	    if (ajj <= 0.f || sisnan_(&ajj)) {		a[j + j * a_dim1] = ajj;		goto L30;	    }	    ajj = sqrt(ajj);	    a[j + j * a_dim1] = ajj;/*           Compute elements J+1:N of row J. */	    if (j < *n) {		i__2 = j - 1;		i__3 = *n - j;		sgemv_("Transpose", &i__2, &i__3, &c_b10, &a[(j + 1) * a_dim1 			+ 1], lda, &a[j * a_dim1 + 1], &c__1, &c_b12, &a[j + (			j + 1) * a_dim1], lda);		i__2 = *n - j;		r__1 = 1.f / ajj;		sscal_(&i__2, &r__1, &a[j + (j + 1) * a_dim1], lda);	    }	}    } else {/*        Compute the Cholesky factorization A = L*L'. */	i__1 = *n;	for (j = 1; j <= i__1; ++j) {/*           Compute L(J,J) and test for non-positive-definiteness. */	    i__2 = j - 1;	    ajj = a[j + j * a_dim1] - sdot_(&i__2, &a[j + a_dim1], lda, &a[j 		    + a_dim1], lda);	    if (ajj <= 0.f || sisnan_(&ajj)) {		a[j + j * a_dim1] = ajj;		goto L30;	    }	    ajj = sqrt(ajj);	    a[j + j * a_dim1] = ajj;/*           Compute elements J+1:N of column J. */	    if (j < *n) {		i__2 = *n - j;		i__3 = j - 1;		sgemv_("No transpose", &i__2, &i__3, &c_b10, &a[j + 1 + 			a_dim1], lda, &a[j + a_dim1], lda, &c_b12, &a[j + 1 + 			j * a_dim1], &c__1);		i__2 = *n - j;		r__1 = 1.f / ajj;		sscal_(&i__2, &r__1, &a[j + 1 + j * a_dim1], &c__1);	    }	}    }    goto L40;L30:    *info = j;L40:    return 0;/*     End of SPOTF2 */} /* spotf2_ */
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:101,


示例22: slaein_

 int slaein_(int *rightv, int *noinit, int *n, 	float *h__, int *ldh, float *wr, float *wi, float *vr, float *vi, float 	*b, int *ldb, float *work, float *eps3, float *smlnum, float *bignum, 	int *info){    /* System generated locals */    int b_dim1, b_offset, h_dim1, h_offset, i__1, i__2, i__3, i__4;    float r__1, r__2, r__3, r__4;    /* Builtin functions */    double sqrt(double);    /* Local variables */    int i__, j;    float w, x, y;    int i1, i2, i3;    float w1, ei, ej, xi, xr, rec;    int its, ierr;    float temp, norm, vmax;    extern double snrm2_(int *, float *, int *);    float scale;    extern  int sscal_(int *, float *, float *, int *);    char trans[1];    float vcrit;    extern double sasum_(int *, float *, int *);    float rootn, vnorm;    extern double slapy2_(float *, float *);    float absbii, absbjj;    extern int isamax_(int *, float *, int *);    extern  int sladiv_(float *, float *, float *, float *, float *, float *);    char normin[1];    float nrmsml;    extern  int slatrs_(char *, char *, char *, char *, 	    int *, float *, int *, float *, float *, float *, int *);    float growto;/*  -- LAPACK auxiliary routine (version 3.2) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SLAEIN uses inverse iteration to find a right or left eigenvector *//*  corresponding to the eigenvalue (WR,WI) of a float upper Hessenberg *//*  matrix H. *//*  Arguments *//*  ========= *//*  RIGHTV   (input) LOGICAL *//*          = .TRUE. : compute right eigenvector; *//*          = .FALSE.: compute left eigenvector. *//*  NOINIT   (input) LOGICAL *//*          = .TRUE. : no initial vector supplied in (VR,VI). *//*          = .FALSE.: initial vector supplied in (VR,VI). *//*  N       (input) INTEGER *//*          The order of the matrix H.  N >= 0. *//*  H       (input) REAL array, dimension (LDH,N) *//*          The upper Hessenberg matrix H. *//*  LDH     (input) INTEGER *//*          The leading dimension of the array H.  LDH >= MAX(1,N). *//*  WR      (input) REAL *//*  WI      (input) REAL *//*          The float and imaginary parts of the eigenvalue of H whose *//*          corresponding right or left eigenvector is to be computed. *//*  VR      (input/output) REAL array, dimension (N) *//*  VI      (input/output) REAL array, dimension (N) *//*          On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain *//*          a float starting vector for inverse iteration using the float *//*          eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, VR and VI *//*          must contain the float and imaginary parts of a complex *//*          starting vector for inverse iteration using the complex *//*          eigenvalue (WR,WI); otherwise VR and VI need not be set. *//*          On exit, if WI = 0.0 (float eigenvalue), VR contains the *//*          computed float eigenvector; if WI.ne.0.0 (complex eigenvalue), *//*          VR and VI contain the float and imaginary parts of the *//*          computed complex eigenvector. The eigenvector is normalized *//*          so that the component of largest magnitude has magnitude 1; *//*          here the magnitude of a complex number (x,y) is taken to be *//*          |x| + |y|. *//*          VI is not referenced if WI = 0.0. *//*  B       (workspace) REAL array, dimension (LDB,N) *//*  LDB     (input) INTEGER *//*          The leading dimension of the array B.  LDB >= N+1. *///.........这里部分代码省略.........
开发者ID:GuillaumeFuchs,项目名称:Ensimag,代码行数:101,


示例23: lsame_

/* Subroutine */ int shseqr_(char *job, char *compz, integer *n, integer *ilo,	 integer *ihi, real *h__, integer *ldh, real *wr, real *wi, real *z__,	 integer *ldz, real *work, integer *lwork, integer *info, ftnlen 	job_len, ftnlen compz_len){    /* System generated locals */    address a__1[2];    integer h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3[2], i__4, 	    i__5;    real r__1, r__2;    char ch__1[2];    /* Builtin functions */    /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);    /* Local variables */    static integer i__, j, k, l;    static real s[225]	/* was [15][15] */, v[16];    static integer i1, i2, ii, nh, nr, ns, nv;    static real vv[16];    static integer itn;    static real tau;    static integer its;    static real ulp, tst1;    static integer maxb;    static real absw;    static integer ierr;    static real unfl, temp, ovfl;    extern logical lsame_(char *, char *, ftnlen, ftnlen);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    static integer itemp;    extern /* Subroutine */ int sgemv_(char *, integer *, integer *, real *, 	    real *, integer *, real *, integer *, real *, real *, integer *, 	    ftnlen);    static logical initz, wantt;    extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, 	    integer *);    static logical wantz;    extern doublereal slapy2_(real *, real *);    extern /* Subroutine */ int slabad_(real *, real *);    extern doublereal slamch_(char *, ftnlen);    extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen);    extern integer ilaenv_(integer *, char *, char *, integer *, integer *, 	    integer *, integer *, ftnlen, ftnlen);    extern /* Subroutine */ int slarfg_(integer *, real *, real *, integer *, 	    real *);    extern integer isamax_(integer *, real *, integer *);    extern doublereal slanhs_(char *, integer *, real *, integer *, real *, 	    ftnlen);    extern /* Subroutine */ int slahqr_(logical *, logical *, integer *, 	    integer *, integer *, real *, integer *, real *, real *, integer *	    , integer *, real *, integer *, integer *), slacpy_(char *, 	    integer *, integer *, real *, integer *, real *, integer *, 	    ftnlen), slaset_(char *, integer *, integer *, real *, real *, 	    real *, integer *, ftnlen), slarfx_(char *, integer *, integer *, 	    real *, real *, real *, integer *, real *, ftnlen);    static real smlnum;    static logical lquery;/*  -- LAPACK routine (version 3.0) -- *//*     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., *//*     Courant Institute, Argonne National Lab, and Rice University *//*     June 30, 1999 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SHSEQR computes the eigenvalues of a real upper Hessenberg matrix H *//*  and, optionally, the matrices T and Z from the Schur decomposition *//*  H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur *//*  form), and Z is the orthogonal matrix of Schur vectors. *//*  Optionally Z may be postmultiplied into an input orthogonal matrix Q, *//*  so that this routine can give the Schur factorization of a matrix A *//*  which has been reduced to the Hessenberg form H by the orthogonal *//*  matrix Q:  A = Q*H*Q**T = (QZ)*T*(QZ)**T. *//*  Arguments *//*  ========= *//*  JOB     (input) CHARACTER*1 *//*          = 'E':  compute eigenvalues only; *//*          = 'S':  compute eigenvalues and the Schur form T. *//*  COMPZ   (input) CHARACTER*1 *//*          = 'N':  no Schur vectors are computed; *//*          = 'I':  Z is initialized to the unit matrix and the matrix Z *//*                  of Schur vectors of H is returned; *//*          = 'V':  Z must contain an orthogonal matrix Q on entry, and *//*                  the product Q*Z is returned. *//*  N       (input) INTEGER *//*          The order of the matrix H.  N >= 0. *///.........这里部分代码省略.........
开发者ID:Electrostatics,项目名称:FETK,代码行数:101,


示例24: The

//.........这里部分代码省略.........    Further Details       ===============       Based on contributions by          Ming Gu and Ren-Cang Li, Computer Science Division, University of            California at Berkeley, USA          Osni Marques, LBNL/NERSC, USA       =====================================================================          Test the input parameters.          Parameter adjustments */    /* Table of constant values */    static real c_b5 = -1.f;    static integer c__1 = 1;    static real c_b11 = 1.f;    static real c_b13 = 0.f;    static integer c__0 = 0;        /* System generated locals */    integer givcol_dim1, givcol_offset, b_dim1, b_offset, bx_dim1, bx_offset, 	    difr_dim1, difr_offset, givnum_dim1, givnum_offset, poles_dim1, 	    poles_offset, i__1, i__2;    real r__1;    /* Local variables */    static real temp;    extern /* Subroutine */ int srot_(integer *, real *, integer *, real *, 	    integer *, real *, real *);    extern doublereal snrm2_(integer *, real *, integer *);    static integer i__, j, m, n;    static real diflj, difrj, dsigj;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), 	    sgemv_(char *, integer *, integer *, real *, real *, integer *, 	    real *, integer *, real *, real *, integer *), scopy_(	    integer *, real *, integer *, real *, integer *);    extern doublereal slamc3_(real *, real *);    static real dj;    extern /* Subroutine */ int xerbla_(char *, integer *);    static real dsigjp;    extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, 	    real *, integer *, integer *, real *, integer *, integer *), slacpy_(char *, integer *, integer *, real *, integer *, 	    real *, integer *);    static integer nlp1;#define difr_ref(a_1,a_2) difr[(a_2)*difr_dim1 + a_1]#define b_ref(a_1,a_2) b[(a_2)*b_dim1 + a_1]#define poles_ref(a_1,a_2) poles[(a_2)*poles_dim1 + a_1]#define bx_ref(a_1,a_2) bx[(a_2)*bx_dim1 + a_1]#define givcol_ref(a_1,a_2) givcol[(a_2)*givcol_dim1 + a_1]#define givnum_ref(a_1,a_2) givnum[(a_2)*givnum_dim1 + a_1]    b_dim1 = *ldb;    b_offset = 1 + b_dim1 * 1;    b -= b_offset;    bx_dim1 = *ldbx;    bx_offset = 1 + bx_dim1 * 1;    bx -= bx_offset;    --perm;    givcol_dim1 = *ldgcol;    givcol_offset = 1 + givcol_dim1 * 1;    givcol -= givcol_offset;    difr_dim1 = *ldgnum;    difr_offset = 1 + difr_dim1 * 1;    difr -= difr_offset;
开发者ID:MichaelH13,项目名称:sdkpub,代码行数:67,


示例25: sdot_

/* Subroutine */ int sget01_(integer *m, integer *n, real *a, integer *lda, 	real *afac, integer *ldafac, integer *ipiv, real *rwork, real *resid){    /* System generated locals */    integer a_dim1, a_offset, afac_dim1, afac_offset, i__1, i__2;    /* Local variables */    integer i__, j, k;    real t, eps;    extern doublereal sdot_(integer *, real *, integer *, real *, integer *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    real anorm;    extern /* Subroutine */ int sgemv_(char *, integer *, integer *, real *, 	    real *, integer *, real *, integer *, real *, real *, integer *), strmv_(char *, char *, char *, integer *, real *, 	    integer *, real *, integer *);    extern doublereal slamch_(char *), slange_(char *, integer *, 	    integer *, real *, integer *, real *);    extern /* Subroutine */ int slaswp_(integer *, real *, integer *, integer 	    *, integer *, integer *, integer *);/*  -- LAPACK test routine (version 3.1) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  SGET01 reconstructs a matrix A from its L*U factorization and *//*  computes the residual *//*     norm(L*U - A) / ( N * norm(A) * EPS ), *//*  where EPS is the machine epsilon. *//*  Arguments *//*  ========== *//*  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 original M x N matrix A. *//*  LDA     (input) INTEGER *//*          The leading dimension of the array A.  LDA >= max(1,M). *//*  AFAC    (input/output) REAL array, dimension (LDAFAC,N) *//*          The factored form of the matrix A.  AFAC contains the factors *//*          L and U from the L*U factorization as computed by SGETRF. *//*          Overwritten with the reconstructed matrix, and then with the *//*          difference L*U - A. *//*  LDAFAC  (input) INTEGER *//*          The leading dimension of the array AFAC.  LDAFAC >= max(1,M). *//*  IPIV    (input) INTEGER array, dimension (N) *//*          The pivot indices from SGETRF. *//*  RWORK   (workspace) REAL array, dimension (M) *//*  RESID   (output) REAL *//*          norm(L*U - A) / ( N * norm(A) * EPS ) *//*  ===================================================================== *//*     .. Parameters .. *//*     .. *//*     .. Local Scalars .. *//*     .. *//*     .. External Functions .. *//*     .. *//*     .. External Subroutines .. *//*     .. *//*     .. Intrinsic Functions .. *//*     .. *//*     .. Executable Statements .. *//*     Quick exit if M = 0 or N = 0. */    /* Parameter adjustments */    a_dim1 = *lda;    a_offset = 1 + a_dim1;    a -= a_offset;    afac_dim1 = *ldafac;    afac_offset = 1 + afac_dim1;    afac -= afac_offset;    --ipiv;    --rwork;    /* Function Body */    if (*m <= 0 || *n <= 0) {	*resid = 0.f;//.........这里部分代码省略.........
开发者ID:3deggi,项目名称:levmar-ndk,代码行数:101,


示例26: H

/* Subroutine */ int sorgl2_(integer *m, integer *n, integer *k, real *a, 	integer *lda, real *tau, real *work, integer *info){/*  -- LAPACK 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       =======       SORGL2 generates an m by n real matrix Q with orthonormal rows,       which is defined as the first m rows of a product of k elementary       reflectors of order n             Q  =  H(k) . . . H(2) H(1)       as returned by SGELQF.       Arguments       =========       M       (input) INTEGER               The number of rows of the matrix Q. M >= 0.       N       (input) INTEGER               The number of columns of the matrix Q. N >= M.       K       (input) INTEGER               The number of elementary reflectors whose product defines the               matrix Q. M >= K >= 0.       A       (input/output) REAL array, dimension (LDA,N)               On entry, the i-th row must contain the vector which defines               the elementary reflector H(i), for i = 1,2,...,k, as returned               by SGELQF in the first k rows of its array argument A.               On exit, the m-by-n matrix Q.       LDA     (input) INTEGER               The first dimension of the array A. LDA >= max(1,M).       TAU     (input) REAL array, dimension (K)               TAU(i) must contain the scalar factor of the elementary               reflector H(i), as returned by SGELQF.       WORK    (workspace) REAL array, dimension (M)       INFO    (output) INTEGER               = 0: successful exit               < 0: if INFO = -i, the i-th argument has an illegal value       =====================================================================          Test the input arguments          Parameter adjustments          Function Body */    /* System generated locals */    integer a_dim1, a_offset, i__1, i__2;    real r__1;    /* Local variables */    static integer i, j, l;    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), 	    slarf_(char *, integer *, integer *, real *, integer *, real *, 	    real *, integer *, real *), xerbla_(char *, integer *);#define TAU(I) tau[(I)-1]#define WORK(I) work[(I)-1]#define A(I,J) a[(I)-1 + ((J)-1)* ( *lda)]    *info = 0;    if (*m < 0) {	*info = -1;    } else if (*n < *m) {	*info = -2;    } else if (*k < 0 || *k > *m) {	*info = -3;    } else if (*lda < max(1,*m)) {	*info = -5;    }    if (*info != 0) {	i__1 = -(*info);	xerbla_("SORGL2", &i__1);	return 0;    }/*     Quick return if possible */    if (*m <= 0) {	return 0;    }//.........这里部分代码省略.........
开发者ID:deepakantony,项目名称:vispack,代码行数:101,


示例27: srot_

/* Subroutine */ int stgsja_(char *jobu, char *jobv, char *jobq, integer *m, 	integer *p, integer *n, integer *k, integer *l, real *a, integer *lda, 	 real *b, integer *ldb, real *tola, real *tolb, real *alpha, real *	beta, real *u, integer *ldu, real *v, integer *ldv, real *q, integer *	ldq, real *work, integer *ncycle, integer *info){    /* System generated locals */    integer a_dim1, a_offset, b_dim1, b_offset, q_dim1, q_offset, u_dim1, 	    u_offset, v_dim1, v_offset, i__1, i__2, i__3, i__4;    real r__1;    /* Local variables */    integer i__, j;    real a1, a2, a3, b1, b2, b3, csq, csu, csv, snq, rwk, snu, snv;    extern /* Subroutine */ int srot_(integer *, real *, integer *, real *, 	    integer *, real *, real *);    real gamma;    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    logical initq, initu, initv, wantq, upper;    real error, ssmin;    logical wantu, wantv;    extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, 	    integer *), slags2_(logical *, real *, real *, real *, real *, 	    real *, real *, real *, real *, real *, real *, real *, real *);    integer kcycle;    extern /* Subroutine */ int xerbla_(char *, integer *), slapll_(	    integer *, real *, integer *, real *, integer *, real *), slartg_(	    real *, real *, real *, real *, real *), slaset_(char *, integer *, integer *, real *, real *, real *, integer *);/*  -- LAPACK routine (version 3.2) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  STGSJA computes the generalized singular value decomposition (GSVD) *//*  of two real upper triangular (or trapezoidal) matrices A and B. *//*  On entry, it is assumed that matrices A and B have the following *//*  forms, which may be obtained by the preprocessing subroutine SGGSVP *//*  from a general M-by-N matrix A and P-by-N matrix B: *//*               N-K-L  K    L *//*     A =    K ( 0    A12  A13 ) if M-K-L >= 0; *//*            L ( 0     0   A23 ) *//*        M-K-L ( 0     0    0  ) *//*             N-K-L  K    L *//*     A =  K ( 0    A12  A13 ) if M-K-L < 0; *//*        M-K ( 0     0   A23 ) *//*             N-K-L  K    L *//*     B =  L ( 0     0   B13 ) *//*        P-L ( 0     0    0  ) *//*  where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular *//*  upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0, *//*  otherwise A23 is (M-K)-by-L upper trapezoidal. *//*  On exit, *//*              U'*A*Q = D1*( 0 R ),    V'*B*Q = D2*( 0 R ), *//*  where U, V and Q are orthogonal matrices, Z' denotes the transpose *//*  of Z, R is a nonsingular upper triangular matrix, and D1 and D2 are *//*  ``diagonal'' matrices, which are of the following structures: *//*  If M-K-L >= 0, *//*                      K  L *//*         D1 =     K ( I  0 ) *//*                  L ( 0  C ) *//*              M-K-L ( 0  0 ) *//*                    K  L *//*         D2 = L   ( 0  S ) *//*              P-L ( 0  0 ) *//*                 N-K-L  K    L *//*    ( 0 R ) = K (  0   R11  R12 ) K *//*              L (  0    0   R22 ) L *//*  where *//*    C = diag( ALPHA(K+1), ... , ALPHA(K+L) ), *//*    S = diag( BETA(K+1),  ... , BETA(K+L) ), *//*    C**2 + S**2 = I. *//*    R is stored in A(1:K+L,N-K-L+1:N) on exit. *//*  If M-K-L < 0, *///.........这里部分代码省略.........
开发者ID:3deggi,项目名称:levmar-ndk,代码行数:101,


示例28: r_imag

/* Subroutine */ int clatbs_(char *uplo, char *trans, char *diag, char *	normin, integer *n, integer *kd, complex *ab, integer *ldab, complex *	x, real *scale, real *cnorm, integer *info){    /* System generated locals */    integer ab_dim1, ab_offset, i__1, i__2, i__3, i__4, i__5;    real r__1, r__2, r__3, r__4;    complex q__1, q__2, q__3, q__4;    /* Builtin functions */    double r_imag(complex *);    void r_cnjg(complex *, complex *);    /* Local variables */    integer i__, j;    real xj, rec, tjj;    integer jinc, jlen;    real xbnd;    integer imax;    real tmax;    complex tjjs;    real xmax, grow;    integer maind;    extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer 	    *, complex *, integer *);    extern logical lsame_(char *, char *);    extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);    real tscal;    complex uscal;    integer jlast;    extern /* Complex */ VOID cdotu_(complex *, integer *, complex *, integer 	    *, complex *, integer *);    complex csumj;    extern /* Subroutine */ int ctbsv_(char *, char *, char *, integer *, 	    integer *, complex *, integer *, complex *, integer *), caxpy_(integer *, complex *, complex *, integer *, complex *, integer *);    logical upper;    extern /* Subroutine */ int slabad_(real *, real *);    extern integer icamax_(integer *, complex *, integer *);    extern /* Complex */ VOID cladiv_(complex *, complex *, complex *);    extern doublereal slamch_(char *);    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer 	    *), xerbla_(char *, integer *);    real bignum;    extern integer isamax_(integer *, real *, integer *);    extern doublereal scasum_(integer *, complex *, integer *);    logical notran;    integer jfirst;    real smlnum;    logical nounit;/*  -- LAPACK auxiliary routine (version 3.2) -- *//*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. *//*     November 2006 *//*     .. Scalar Arguments .. *//*     .. *//*     .. Array Arguments .. *//*     .. *//*  Purpose *//*  ======= *//*  CLATBS solves one of the triangular systems *//*     A * x = s*b,  A**T * x = s*b,  or  A**H * x = s*b, *//*  with scaling to prevent overflow, where A is an upper or lower *//*  triangular band matrix.  Here A' denotes the transpose of A, x and b *//*  are n-element vectors, and s is a scaling factor, usually less than *//*  or equal to 1, chosen so that the components of x will be less than *//*  the overflow threshold.  If the unscaled problem will not cause *//*  overflow, the Level 2 BLAS routine CTBSV is called.  If the matrix A *//*  is singular (A(j,j) = 0 for some j), then s is set to 0 and a *//*  non-trivial solution to A*x = 0 is returned. *//*  Arguments *//*  ========= *//*  UPLO    (input) CHARACTER*1 *//*          Specifies whether the matrix A is upper or lower triangular. *//*          = 'U':  Upper triangular *//*          = 'L':  Lower triangular *//*  TRANS   (input) CHARACTER*1 *//*          Specifies the operation applied to A. *//*          = 'N':  Solve A * x = s*b     (No transpose) *//*          = 'T':  Solve A**T * x = s*b  (Transpose) *//*          = 'C':  Solve A**H * x = s*b  (Conjugate transpose) *//*  DIAG    (input) CHARACTER*1 *//*          Specifies whether or not the matrix A is unit triangular. *//*          = 'N':  Non-unit triangular *//*          = 'U':  Unit triangular *//*  NORMIN  (input) CHARACTER*1 *//*          Specifies whether CNORM has been set or not. *//*          = 'Y':  CNORM contains the column norms on entry *//*          = 'N':  CNORM is not set on entry.  On exit, the norms will *///.........这里部分代码省略.........
开发者ID:3deggi,项目名称:levmar-ndk,代码行数:101,


示例29: lsame_

//.........这里部分代码省略.........    } else if (*ldv < max(1,*n)) {	*info = -9;    }    if (*info != 0) {	i__1 = -(*info);	xerbla_("SGEBAK", &i__1);	return 0;    }/*     Quick return if possible */    if (*n == 0) {	return 0;    }    if (*m == 0) {	return 0;    }    if (lsame_(job, "N")) {	return 0;    }    if (*ilo == *ihi) {	goto L30;    }/*     Backward balance */    if (lsame_(job, "S") || lsame_(job, "B")) {	if (rightv) {	    i__1 = *ihi;	    for (i__ = *ilo; i__ <= i__1; ++i__) {		s = scale[i__];		sscal_(m, &s, &v[i__ + v_dim1], ldv);	    }	}	if (leftv) {	    i__1 = *ihi;	    for (i__ = *ilo; i__ <= i__1; ++i__) {		s = 1.f / scale[i__];		sscal_(m, &s, &v[i__ + v_dim1], ldv);	    }	}    }/*     Backward permutation *//*     For  I = ILO-1 step -1 until 1, *//*              IHI+1 step 1 until N do -- */L30:    if (lsame_(job, "P") || lsame_(job, "B")) {	if (rightv) {	    i__1 = *n;	    for (ii = 1; ii <= i__1; ++ii) {		i__ = ii;		if (i__ >= *ilo && i__ <= *ihi) {		    goto L40;		}		if (i__ < *ilo) {		    i__ = *ilo - ii;		}		k = scale[i__];		if (k == i__) {
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:67,



注:本文中的sscal_函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ sscanf函数代码示例
C++ ssbi_write函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。