本文整理汇总了C++中slamch_函数的典型用法代码示例。如果您正苦于以下问题:C++ slamch_函数的具体用法?C++ slamch_怎么用?C++ slamch_使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了slamch_函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: sqrt
/* Subroutine */ int slasq2_(integer *n, real *z__, integer *info)
{
/* System generated locals */
integer i__1, i__2, i__3;
real r__1, r__2;
/* Builtin functions */
double sqrt(doublereal);
/* Local variables */
static real d__, e;
static integer k;
static real s, t;
static integer i0, i4, n0, pp;
static real eps, tol;
static integer ipn4;
static real tol2;
static logical ieee;
static integer nbig;
static real dmin__, emin, emax;
static integer ndiv, iter;
static real qmin, temp, qmax, zmax;
static integer splt, nfail;
static real desig, trace, sigma;
static integer iinfo;
extern /* Subroutine */ int slasq3_(integer *, integer *, real *, integer
*, real *, real *, real *, real *, integer *, integer *, integer *
, logical *);
extern doublereal slamch_(char *, ftnlen);
static integer iwhila, iwhilb;
static real oldemn, safmin;
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen);
extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
integer *, integer *, ftnlen, ftnlen);
extern /* Subroutine */ int slasrt_(char *, integer *, real *, integer *,
ftnlen);
/* -- LAPACK routine (version 3.0) -- */
/* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., */
/* Courant Institute, Argonne National Lab, and Rice University */
/* October 31, 1999 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* SLASQ2 computes all the eigenvalues of the symmetric positive */
/* definite tridiagonal matrix associated with the qd array Z to high */
/* relative accuracy are computed to high relative accuracy, in the */
/* absence of denormalization, underflow and overflow. */
/* To see the relation of Z to the tridiagonal matrix, let L be a */
/* unit lower bidiagonal matrix with subdiagonals Z(2,4,6,,..) and */
/* let U be an upper bidiagonal matrix with 1's above and diagonal */
/* Z(1,3,5,,..). The tridiagonal is L*U or, if you prefer, the */
/* symmetric tridiagonal to which it is similar. */
/* Note : SLASQ2 defines a logical variable, IEEE, which is true */
/* on machines which follow ieee-754 floating-point standard in their */
/* handling of infinities and NaNs, and false otherwise. This variable */
/* is passed to SLASQ3. */
/* Arguments */
/* ========= */
/* N (input) INTEGER */
/* The number of rows and columns in the matrix. N >= 0. */
/* Z (workspace) REAL array, dimension ( 4*N ) */
/* On entry Z holds the qd array. On exit, entries 1 to N hold */
/* the eigenvalues in decreasing order, Z( 2*N+1 ) holds the */
/* trace, and Z( 2*N+2 ) holds the sum of the eigenvalues. If */
/* N > 2, then Z( 2*N+3 ) holds the iteration count, Z( 2*N+4 ) */
/* holds NDIVS/NIN^2, and Z( 2*N+5 ) holds the percentage of */
/* shifts that failed. */
/* INFO (output) INTEGER */
/* = 0: successful exit */
/* < 0: if the i-th argument is a scalar and had an illegal */
/* value, then INFO = -i, if the i-th argument is an */
/* array and the j-entry had an illegal value, then */
/* INFO = -(i*100+j) */
/* > 0: the algorithm failed */
/* = 1, a split was marked by a positive value in E */
/* = 2, current block of Z not diagonalized after 30*N */
/* iterations (in inner while loop) */
/* = 3, termination criterion of outer while loop not met */
/* (program created more than N unreduced blocks) */
/* Further Details */
/* =============== */
/* Local Variables: I0:N0 defines a current unreduced segment of Z. */
/* The shifts are accumulated in SIGMA. Iteration count is in ITER. */
/* Ping-pong is controlled by PP (alternates between 0 and 1). */
//.........这里部分代码省略.........
开发者ID:Electrostatics,项目名称:FETK,代码行数:101,代码来源:slasq2.c
示例2: slamch_
/* Subroutine */ int slasq6_(integer *i0, integer *n0, real *z__, integer *pp,
real *dmin__, real *dmin1, real *dmin2, real *dn, real *dnm1, real *
dnm2)
{
/* System generated locals */
integer i__1;
real r__1, r__2;
/* Local variables */
static real d__;
static integer j4, j4p2;
static real emin, temp;
extern doublereal slamch_(char *, ftnlen);
static real safmin;
/* -- LAPACK auxiliary routine (version 3.0) -- */
/* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., */
/* Courant Institute, Argonne National Lab, and Rice University */
/* October 31, 1999 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* SLASQ6 computes one dqd (shift equal to zero) transform in */
/* ping-pong form, with protection against underflow and overflow. */
/* Arguments */
/* ========= */
/* I0 (input) INTEGER */
/* First index. */
/* N0 (input) INTEGER */
/* Last index. */
/* Z (input) REAL array, dimension ( 4*N ) */
/* Z holds the qd array. EMIN is stored in Z(4*N0) to avoid */
/* an extra argument. */
/* PP (input) INTEGER */
/* PP=0 for ping, PP=1 for pong. */
/* DMIN (output) REAL */
/* Minimum value of d. */
/* DMIN1 (output) REAL */
/* Minimum value of d, excluding D( N0 ). */
/* DMIN2 (output) REAL */
/* Minimum value of d, excluding D( N0 ) and D( N0-1 ). */
/* DN (output) REAL */
/* d(N0), the last value of d. */
/* DNM1 (output) REAL */
/* d(N0-1). */
/* DNM2 (output) REAL */
/* d(N0-2). */
/* ===================================================================== */
/* .. Parameter .. */
/* .. */
/* .. Local Scalars .. */
/* .. */
/* .. External Function .. */
/* .. */
/* .. Intrinsic Functions .. */
/* .. */
/* .. Executable Statements .. */
/* Parameter adjustments */
--z__;
/* Function Body */
if (*n0 - *i0 - 1 <= 0) {
return 0;
}
safmin = slamch_("Safe minimum", (ftnlen)12);
j4 = (*i0 << 2) + *pp - 3;
emin = z__[j4 + 4];
d__ = z__[j4];
*dmin__ = d__;
if (*pp == 0) {
i__1 = *n0 - 3 << 2;
for (j4 = *i0 << 2; j4 <= i__1; j4 += 4) {
z__[j4 - 2] = d__ + z__[j4 - 1];
if (z__[j4 - 2] == 0.f) {
z__[j4] = 0.f;
d__ = z__[j4 + 1];
*dmin__ = d__;
//.........这里部分代码省略.........
开发者ID:Electrostatics,项目名称:FETK,代码行数:101,代码来源:slasq6.c
示例3: saxpy_
/* Subroutine */ int sptrfs_(integer *n, integer *nrhs, real *d__, real *e,
real *df, real *ef, real *b, integer *ldb, real *x, integer *ldx,
real *ferr, real *berr, real *work, integer *info)
{
/* System generated locals */
integer b_dim1, b_offset, x_dim1, x_offset, i__1, i__2;
real r__1, r__2, r__3;
/* Local variables */
static integer i__, j;
static real s, bi, cx, dx, ex;
static integer ix, nz;
static real eps, safe1, safe2;
static integer count;
extern /* Subroutine */ int saxpy_(integer *, real *, real *, integer *,
real *, integer *);
extern doublereal slamch_(char *, ftnlen);
static real safmin;
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen);
extern integer isamax_(integer *, real *, integer *);
static real lstres;
extern /* Subroutine */ int spttrs_(integer *, integer *, real *, real *,
real *, integer *, integer *);
/* -- 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 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* SPTRFS improves the computed solution to a system of linear */
/* equations when the coefficient matrix is symmetric positive definite */
/* and tridiagonal, and provides error bounds and backward error */
/* estimates for the solution. */
/* Arguments */
/* ========= */
/* N (input) INTEGER */
/* The order of the matrix A. N >= 0. */
/* NRHS (input) INTEGER */
/* The number of right hand sides, i.e., the number of columns */
/* of the matrix B. NRHS >= 0. */
/* D (input) REAL array, dimension (N) */
/* The n diagonal elements of the tridiagonal matrix A. */
/* E (input) REAL array, dimension (N-1) */
/* The (n-1) subdiagonal elements of the tridiagonal matrix A. */
/* DF (input) REAL array, dimension (N) */
/* The n diagonal elements of the diagonal matrix D from the */
/* factorization computed by SPTTRF. */
/* EF (input) REAL array, dimension (N-1) */
/* The (n-1) subdiagonal elements of the unit bidiagonal factor */
/* L from the factorization computed by SPTTRF. */
/* B (input) REAL array, dimension (LDB,NRHS) */
/* The right hand side matrix B. */
/* LDB (input) INTEGER */
/* The leading dimension of the array B. LDB >= max(1,N). */
/* X (input/output) REAL array, dimension (LDX,NRHS) */
/* On entry, the solution matrix X, as computed by SPTTRS. */
/* On exit, the improved solution matrix X. */
/* LDX (input) INTEGER */
/* The leading dimension of the array X. LDX >= max(1,N). */
/* FERR (output) REAL array, dimension (NRHS) */
/* The forward error bound for each solution vector */
/* X(j) (the j-th column of the solution matrix X). */
/* If XTRUE is the true solution corresponding to X(j), FERR(j) */
/* is an estimated upper bound for the magnitude of the largest */
/* element in (X(j) - XTRUE) divided by the magnitude of the */
/* largest element in X(j). */
/* BERR (output) REAL array, dimension (NRHS) */
/* The componentwise relative backward error of each solution */
/* vector X(j) (i.e., the smallest relative change in */
/* any element of A or B that makes X(j) an exact solution). */
/* WORK (workspace) REAL array, dimension (2*N) */
/* INFO (output) INTEGER */
/* = 0: successful exit */
/* < 0: if INFO = -i, the i-th argument had an illegal value */
/* Internal Parameters */
//.........这里部分代码省略.........
开发者ID:Electrostatics,项目名称:FETK,代码行数:101,代码来源:sptrfs.c
示例4: lsame_
//.........这里部分代码省略.........
} else if (*n < 0) {
*info = -2;
} else if (*nrhs < 0) {
*info = -3;
} else if (*lda < max(1,*n)) {
*info = -5;
} else if (*ldaf < max(1,*n)) {
*info = -7;
} else if (*ldb < max(1,*n)) {
*info = -10;
} else if (*ldx < max(1,*n)) {
*info = -12;
}
if (*info != 0) {
i__1 = -(*info);
xerbla_("SSYRFS", &i__1);
return 0;
}
/* Quick return if possible */
if (*n == 0 || *nrhs == 0) {
i__1 = *nrhs;
for (j = 1; j <= i__1; ++j) {
ferr[j] = 0.f;
berr[j] = 0.f;
}
return 0;
}
/* NZ = maximum number of nonzero elements in each row of A, plus 1 */
nz = *n + 1;
eps = slamch_("Epsilon");
safmin = slamch_("Safe minimum");
safe1 = nz * safmin;
safe2 = safe1 / eps;
/* Do for each right hand side */
i__1 = *nrhs;
for (j = 1; j <= i__1; ++j) {
count = 1;
lstres = 3.f;
L20:
/* Loop until stopping criterion is satisfied. */
/* Compute residual R = B - A * X */
scopy_(n, &b[j * b_dim1 + 1], &c__1, &work[*n + 1], &c__1);
ssymv_(uplo, n, &c_b12, &a[a_offset], lda, &x[j * x_dim1 + 1], &c__1,
&c_b14, &work[*n + 1], &c__1);
/* Compute componentwise relative backward error from formula */
/* max(i) ( abs(R(i)) / ( abs(A)*abs(X) + abs(B) )(i) ) */
/* where abs(Z) is the componentwise absolute value of the matrix */
/* or vector Z. If the i-th component of the denominator is less */
/* than SAFE2, then SAFE1 is added to the i-th components of the */
/* numerator and denominator before dividing. */
i__2 = *n;
for (i__ = 1; i__ <= i__2; ++i__) {
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:67,代码来源:ssyrfs.c
示例5: lsame_
//.........这里部分代码省略.........
/* ================================================================== */
/* Parameter adjustments */
err_bnds_comp_dim1 = *nrhs;
err_bnds_comp_offset = 1 + err_bnds_comp_dim1;
err_bnds_comp__ -= err_bnds_comp_offset;
err_bnds_norm_dim1 = *nrhs;
err_bnds_norm_offset = 1 + err_bnds_norm_dim1;
err_bnds_norm__ -= err_bnds_norm_offset;
a_dim1 = *lda;
a_offset = 1 + a_dim1;
a -= a_offset;
af_dim1 = *ldaf;
af_offset = 1 + af_dim1;
af -= af_offset;
--ipiv;
--s;
b_dim1 = *ldb;
b_offset = 1 + b_dim1;
b -= b_offset;
x_dim1 = *ldx;
x_offset = 1 + x_dim1;
x -= x_offset;
--berr;
--params;
--work;
--rwork;
/* Function Body */
*info = 0;
nofact = lsame_(fact, "N");
equil = lsame_(fact, "E");
smlnum = slamch_("Safe minimum");
bignum = 1.f / smlnum;
if (nofact || equil) {
*(unsigned char *)equed = 'N';
rcequ = FALSE_;
} else {
rcequ = lsame_(equed, "Y");
}
/* Default is failure. If an input parameter is wrong or */
/* factorization fails, make everything look horrible. Only the */
/* pivot growth is set here, the rest is initialized in CHERFSX. */
*rpvgrw = 0.f;
/* Test the input parameters. PARAMS is not tested until CHERFSX. */
if (! nofact && ! equil && ! lsame_(fact, "F")) {
*info = -1;
} else if (! lsame_(uplo, "U") && ! lsame_(uplo,
"L")) {
*info = -2;
} else if (*n < 0) {
*info = -3;
} else if (*nrhs < 0) {
*info = -4;
} else if (*lda < max(1,*n)) {
*info = -6;
} else if (*ldaf < max(1,*n)) {
*info = -8;
} else if (lsame_(fact, "F") && ! (rcequ || lsame_(
equed, "N"))) {
*info = -9;
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:67,代码来源:chesvxx.c
示例6: sscal_
/* Subroutine */ int sgetrf_(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, ipivstart, jpivstart, jp;
real tmp;
extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *),
sgemm_(char *, char *, integer *, integer *, integer *, real *,
real *, integer *, real *, integer *, real *, real *, integer *);
integer kcols;
real sfmin;
integer nstep;
extern /* Subroutine */ int strsm_(char *, char *, char *, char *,
integer *, integer *, real *, real *, integer *, real *, integer *
);
integer kahead;
extern doublereal slamch_(char *);
extern integer isamax_(integer *, real *, integer *);
integer npived;
extern logical sisnan_(real *);
integer kstart;
extern /* Subroutine */ int slaswp_(integer *, real *, integer *, integer
*, integer *, integer *, integer *);
integer ntopiv;
/* -- LAPACK routine (version 3.X) -- */
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
/* May 2008 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* SGETRF 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 code implements an iterative version of Sivan Toledo's recursive */
/* LU algorithm[1]. For square matrices, this iterative versions should */
/* be within a factor of two of the optimum number of memory transfers. */
/* The pattern is as follows, with the large blocks of U being updated */
/* in one call to STRSM, and the dotted lines denoting sections that */
/* have had all pending permutations applied: */
/* 1 2 3 4 5 6 7 8 */
/* +-+-+---+-------+------ */
/* | |1| | | */
/* |.+-+ 2 | | */
/* | | | | | */
/* |.|.+-+-+ 4 | */
/* | | | |1| | */
/* | | |.+-+ | */
/* | | | | | | */
/* |.|.|.|.+-+-+---+ 8 */
/* | | | | | |1| | */
/* | | | | |.+-+ 2 | */
/* | | | | | | | | */
/* | | | | |.|.+-+-+ */
/* | | | | | | | |1| */
/* | | | | | | |.+-+ */
/* | | | | | | | | | */
/* |.|.|.|.|.|.|.|.+----- */
/* | | | | | | | | | */
/* The 1-2-1-4-1-2-1-8-... pattern is the position of the last 1 bit in */
/* the binary expansion of the current column. Each Schur update is */
/* applied as soon as the necessary portion of U is available. */
/* [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with */
/* Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), */
/* 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 */
/* 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. */
//.........这里部分代码省略.........
开发者ID:juanjosegarciaripoll,项目名称:cblapack,代码行数:101,代码来源:sgetrf.c
示例7: sgemm_
/* Subroutine */ int sgsvts_(integer *m, integer *p, integer *n, real *a,
real *af, integer *lda, real *b, real *bf, integer *ldb, real *u,
integer *ldu, real *v, integer *ldv, real *q, integer *ldq, real *
alpha, real *beta, real *r__, integer *ldr, integer *iwork, real *
work, integer *lwork, real *rwork, real *result)
{
/* System generated locals */
integer a_dim1, a_offset, af_dim1, af_offset, b_dim1, b_offset, bf_dim1,
bf_offset, q_dim1, q_offset, r_dim1, r_offset, u_dim1, u_offset,
v_dim1, v_offset, i__1, i__2;
real r__1;
/* Local variables */
integer i__, j, k, l;
real ulp;
integer info;
real unfl, temp, resid;
extern /* Subroutine */ int sgemm_(char *, char *, integer *, integer *,
integer *, real *, real *, integer *, real *, integer *, real *,
real *, integer *);
real anorm, bnorm;
extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *,
integer *), ssyrk_(char *, char *, integer *, integer *, real *,
real *, integer *, real *, real *, integer *);
extern doublereal slamch_(char *), slange_(char *, integer *,
integer *, real *, integer *, real *);
extern /* Subroutine */ int slacpy_(char *, integer *, integer *, real *,
integer *, real *, integer *), slaset_(char *, integer *,
integer *, real *, real *, real *, integer *), sggsvd_(
char *, char *, char *, integer *, integer *, integer *, integer *
, integer *, real *, integer *, real *, integer *, real *, real *,
real *, integer *, real *, integer *, real *, integer *, real *,
integer *, integer *);
extern doublereal slansy_(char *, char *, integer *, real *, integer *,
real *);
real ulpinv;
/* -- LAPACK test routine (version 3.1) -- */
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
/* November 2006 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* SGSVTS tests SGGSVD, which computes the GSVD of an M-by-N matrix A */
/* and a P-by-N matrix B: */
/* U'*A*Q = D1*R and V'*B*Q = D2*R. */
/* Arguments */
/* ========= */
/* M (input) INTEGER */
/* The number of rows of the matrix A. M >= 0. */
/* P (input) INTEGER */
/* The number of rows of the matrix B. P >= 0. */
/* N (input) INTEGER */
/* The number of columns of the matrices A and B. N >= 0. */
/* A (input) REAL array, dimension (LDA,M) */
/* The M-by-N matrix A. */
/* AF (output) REAL array, dimension (LDA,N) */
/* Details of the GSVD of A and B, as returned by SGGSVD, */
/* see SGGSVD for further details. */
/* LDA (input) INTEGER */
/* The leading dimension of the arrays A and AF. */
/* LDA >= max( 1,M ). */
/* B (input) REAL array, dimension (LDB,P) */
/* On entry, the P-by-N matrix B. */
/* BF (output) REAL array, dimension (LDB,N) */
/* Details of the GSVD of A and B, as returned by SGGSVD, */
/* see SGGSVD for further details. */
/* LDB (input) INTEGER */
/* The leading dimension of the arrays B and BF. */
/* LDB >= max(1,P). */
/* U (output) REAL array, dimension(LDU,M) */
/* The M by M orthogonal matrix U. */
/* LDU (input) INTEGER */
/* The leading dimension of the array U. LDU >= max(1,M). */
/* V (output) REAL array, dimension(LDV,M) */
/* The P by P orthogonal matrix V. */
/* LDV (input) INTEGER */
/* The leading dimension of the array V. LDV >= max(1,P). */
//.........这里部分代码省略.........
开发者ID:kstraube,项目名称:hysim,代码行数:101,代码来源:sgsvts.c
示例8: sqrt
/* Subroutine */ int ctgsen_(integer *ijob, logical *wantq, logical *wantz,
logical *select, integer *n, complex *a, integer *lda, complex *b,
integer *ldb, complex *alpha, complex *beta, complex *q, integer *ldq,
complex *z__, integer *ldz, integer *m, real *pl, real *pr, real *
dif, complex *work, integer *lwork, integer *iwork, integer *liwork,
integer *info)
{
/* System generated locals */
integer a_dim1, a_offset, b_dim1, b_offset, q_dim1, q_offset, z_dim1,
z_offset, i__1, i__2, i__3;
complex q__1, q__2;
/* Builtin functions */
double sqrt(doublereal), c_abs(complex *);
void r_cnjg(complex *, complex *);
/* Local variables */
integer i__, k, n1, n2, ks, mn2, ijb, kase, ierr;
real dsum;
logical swap;
complex temp1, temp2;
extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
integer *);
integer isave[3];
logical wantd;
integer lwmin;
logical wantp;
extern /* Subroutine */ int clacn2_(integer *, complex *, complex *, real
*, integer *, integer *);
logical wantd1, wantd2;
real dscale;
extern doublereal slamch_(char *);
real rdscal;
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex
*, integer *, complex *, integer *);
real safmin;
extern /* Subroutine */ int ctgexc_(logical *, logical *, integer *,
complex *, integer *, complex *, integer *, complex *, integer *,
complex *, integer *, integer *, integer *, integer *), xerbla_(
char *, integer *), classq_(integer *, complex *, integer
*, real *, real *);
integer liwmin;
extern /* Subroutine */ int ctgsyl_(char *, integer *, integer *, integer
*, complex *, integer *, complex *, integer *, complex *, integer
*, complex *, integer *, complex *, integer *, complex *, integer
*, real *, real *, complex *, integer *, integer *, integer *);
logical lquery;
/* -- LAPACK routine (version 3.2) -- */
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
/* January 2007 */
/* Modified to call CLACN2 in place of CLACON, 10 Feb 03, SJH. */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* CTGSEN reorders the generalized Schur decomposition of a complex */
/* matrix pair (A, B) (in terms of an unitary equivalence trans- */
/* formation Q' * (A, B) * Z), so that a selected cluster of eigenvalues */
/* appears in the leading diagonal blocks of the pair (A,B). The leading */
/* columns of Q and Z form unitary bases of the corresponding left and */
/* right eigenspaces (deflating subspaces). (A, B) must be in */
/* generalized Schur canonical form, that is, A and B are both upper */
/* triangular. */
/* CTGSEN also computes the generalized eigenvalues */
/* w(j)= ALPHA(j) / BETA(j) */
/* of the reordered matrix pair (A, B). */
/* Optionally, the routine computes estimates of reciprocal condition */
/* numbers for eigenvalues and eigenspaces. These are Difu[(A11,B11), */
/* (A22,B22)] and Difl[(A11,B11), (A22,B22)], i.e. the separation(s) */
/* between the matrix pairs (A11, B11) and (A22,B22) that correspond to */
/* the selected cluster and the eigenvalues outside the cluster, resp., */
/* and norms of "projections" onto left and right eigenspaces w.r.t. */
/* the selected cluster in the (1,1)-block. */
/* Arguments */
/* ========= */
/* IJOB (input) integer */
/* Specifies whether condition numbers are required for the */
/* cluster of eigenvalues (PL and PR) or the deflating subspaces */
/* (Difu and Difl): */
/* =0: Only reorder w.r.t. SELECT. No extras. */
/* =1: Reciprocal of norms of "projections" onto left and right */
/* eigenspaces w.r.t. the selected cluster (PL and PR). */
/* =2: Upper bounds on Difu and Difl. F-norm-based estimate */
/* (DIF(1:2)). */
/* =3: Estimate of Difu and Difl. 1-norm-based estimate */
//.........这里部分代码省略.........
开发者ID:0u812,项目名称:roadrunner-backup,代码行数:101,代码来源:ctgsen.c
示例9: pow_dd
/* Subroutine */ int snaup2_(integer *ido, char *bmat, integer *n, char *
which, integer *nev, integer *np, real *tol, real *resid, integer *
mode, integer *iupd, integer *ishift, integer *mxiter, real *v,
integer *ldv, real *h__, integer *ldh, real *ritzr, real *ritzi, real
*bounds, real *q, integer *ldq, real *workl, integer *ipntr, real *
workd, integer *info, ftnlen bmat_len, ftnlen which_len)
{
/* System generated locals */
integer h_dim1, h_offset, q_dim1, q_offset, v_dim1, v_offset, i__1, i__2;
real r__1, r__2;
doublereal d__1;
/* Builtin functions */
double pow_dd(doublereal *, doublereal *);
integer s_cmp(char *, char *, ftnlen, ftnlen);
/* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
double sqrt(doublereal);
/* Local variables */
static integer j;
static real t0, t1, t2, t3;
static integer kp[4], np0, nev0;
static real eps23;
static integer ierr, iter;
static real temp;
extern doublereal sdot_(integer *, real *, integer *, real *, integer *);
static logical getv0;
extern doublereal snrm2_(integer *, real *, integer *);
static logical cnorm;
static integer nconv;
static logical initv;
static real rnorm;
extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *,
integer *), ivout_(integer *, integer *, integer *, integer *,
char *, ftnlen), smout_(integer *, integer *, integer *, real *,
integer *, integer *, char *, ftnlen), svout_(integer *, integer *
, real *, integer *, char *, ftnlen), sgetv0_(integer *, char *,
integer *, logical *, integer *, integer *, real *, integer *,
real *, real *, integer *, real *, integer *, ftnlen);
extern doublereal slapy2_(real *, real *);
static integer nevbef;
extern doublereal slamch_(char *, ftnlen);
extern /* Subroutine */ int second_(real *);
static logical update;
static char wprime[2];
static logical ushift;
static integer kplusp, msglvl, nptemp, numcnv;
extern /* Subroutine */ int snaitr_(integer *, char *, integer *, integer
*, integer *, integer *, real *, real *, real *, integer *, real *
, integer *, integer *, real *, integer *, ftnlen), snconv_(
integer *, real *, real *, real *, real *, integer *), sneigh_(
real *, integer *, real *, integer *, real *, real *, real *,
real *, integer *, real *, integer *), sngets_(integer *, char *,
integer *, integer *, real *, real *, real *, real *, real *,
ftnlen), snapps_(integer *, integer *, integer *, real *, real *,
real *, integer *, real *, integer *, real *, real *, integer *,
real *, real *), ssortc_(char *, logical *, integer *, real *,
real *, real *, ftnlen);
/* %----------------------------------------------------% */
/* | Include files for debugging and timing information | */
/* %----------------------------------------------------% */
/* \SCCS Information: @(#) */
/* FILE: debug.h SID: 2.3 DATE OF SID: 11/16/95 RELEASE: 2 */
/* %---------------------------------% */
/* | See debug.doc for documentation | */
/* %---------------------------------% */
/* %------------------% */
/* | Scalar Arguments | */
/* %------------------% */
/* %--------------------------------% */
/* | See stat.doc for documentation | */
/* %--------------------------------% */
/* \SCCS Information: @(#) */
/* FILE: stat.h SID: 2.2 DATE OF SID: 11/16/95 RELEASE: 2 */
/* %-----------------% */
/* | Array Arguments | */
/* %-----------------% */
/* %------------% */
/* | Parameters | */
/* %------------% */
/* %---------------% */
/* | Local Scalars | */
/* %---------------% */
//.........这里部分代码省略.........
开发者ID:Electrostatics,项目名称:FETK,代码行数:101,代码来源:snaup2.c
示例10: COMPZ
//.........这里部分代码省略.........
static real c_b9 = 0.f;
static real c_b10 = 1.f;
static int c__0 = 0;
static int c__1 = 1;
static int c__2 = 2;
/* System generated locals */
/* Unused variables commented out by MDG on 03-09-05
int z_dim1, z_offset;
*/
int i__1, i__2;
real r__1, r__2;
/* Builtin functions */
double sqrt(doublereal), r_sign(real *, real *);
/* Local variables */
static int lend, jtot;
extern /* Subroutine */ int slae2_(real *, real *, real *, real *, real *)
;
static real b, c, f, g;
static int i, j, k, l, m;
static real p, r, s;
extern logical lsame_(char *, char *);
static real anorm;
extern /* Subroutine */ int slasr_(char *, char *, char *, int *,
int *, real *, real *, real *, int *);
static int l1;
extern /* Subroutine */ int sswap_(int *, real *, int *, real *,
int *);
static int lendm1, lendp1;
extern /* Subroutine */ int slaev2_(real *, real *, real *, real *, real *
, real *, real *);
extern doublereal slapy2_(real *, real *);
static int ii, mm, iscale;
extern doublereal slamch_(char *);
static real safmin;
extern /* Subroutine */ int xerbla_(char *, int *);
static real safmax;
extern /* Subroutine */ int slascl_(char *, int *, int *, real *,
real *, int *, int *, real *, int *, int *);
static int lendsv;
extern /* Subroutine */ int slartg_(real *, real *, real *, real *, real *
), slaset_(char *, int *, int *, real *, real *, real *,
int *);
static real ssfmin;
static int nmaxit, icompz;
static real ssfmax;
extern doublereal slanst_(char *, int *, real *, real *);
extern /* Subroutine */ int slasrt_(char *, int *, real *, int *);
static int lm1, mm1, nm1;
static real rt1, rt2, eps;
static int lsv;
static real tst, eps2;
#define D(I) d[(I)-1]
#define E(I) e[(I)-1]
#define WORK(I) work[(I)-1]
#define Z(I,J) z[(I)-1 + ((J)-1)* ( *ldz)]
*info = 0;
if (lsame_(compz, "N")) {
icompz = 0;
} else if (lsame_(compz, "V")) {
开发者ID:Booley,项目名称:nbis,代码行数:67,代码来源:ssteqr.c
示例11: r_imag
/* Subroutine */ int ctrcon_(char *norm, char *uplo, char *diag, integer *n,
complex *a, integer *lda, real *rcond, complex *work, real *rwork,
integer *info)
{
/* System generated locals */
integer a_dim1, a_offset, i__1;
real r__1, r__2;
/* Builtin functions */
double r_imag(complex *);
/* Local variables */
integer ix, kase, kase1;
real scale;
extern logical lsame_(char *, char *);
integer isave[3];
real anorm;
logical upper;
extern /* Subroutine */ int clacn2_(integer *, complex *, complex *, real
*, integer *, integer *);
real xnorm;
extern integer icamax_(integer *, complex *, integer *);
extern doublereal slamch_(char *);
extern /* Subroutine */ int xerbla_(char *, integer *);
extern doublereal clantr_(char *, char *, char *, integer *, integer *,
complex *, integer *, real *);
real ainvnm;
extern /* Subroutine */ int clatrs_(char *, char *, char *, char *,
integer *, complex *, integer *, complex *, real *, real *,
integer *), csrscl_(integer *,
real *, complex *, integer *);
logical onenrm;
char normin[1];
real smlnum;
logical nounit;
/* -- LAPACK routine (version 3.1) -- */
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
/* November 2006 */
/* Modified to call CLACN2 in place of CLACON, 10 Feb 03, SJH. */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* CTRCON estimates the reciprocal of the condition number of a */
/* triangular matrix A, in either the 1-norm or the infinity-norm. */
/* The norm of A is computed and an estimate is obtained for */
/* norm(inv(A)), then the reciprocal of the condition number is */
/* computed as */
/* RCOND = 1 / ( norm(A) * norm(inv(A)) ). */
/* Arguments */
/* ========= */
/* NORM (input) CHARACTER*1 */
/* Specifies whether the 1-norm condition number or the */
/* infinity-norm condition number is required: */
/* = '1' or 'O': 1-norm; */
/* = 'I': Infinity-norm. */
/* UPLO (input) CHARACTER*1 */
/* = 'U': A is upper triangular; */
/* = 'L': A is lower triangular. */
/* DIAG (input) CHARACTER*1 */
/* = 'N': A is non-unit triangular; */
/* = 'U': A is unit triangular. */
/* N (input) INTEGER */
/* The order of the matrix A. N >= 0. */
/* A (input) COMPLEX array, dimension (LDA,N) */
/* The triangular matrix A. If UPLO = 'U', the leading N-by-N */
/* upper triangular part of the array A contains the upper */
/* triangular matrix, and the strictly lower triangular part of */
/* A is not referenced. If UPLO = 'L', the leading N-by-N lower */
/* triangular part of the array A contains the lower triangular */
/* matrix, and the strictly upper triangular part of A is not */
/* referenced. If DIAG = 'U', the diagonal elements of A are */
/* also not referenced and are assumed to be 1. */
/* LDA (input) INTEGER */
/* The leading dimension of the array A. LDA >= max(1,N). */
/* RCOND (output) REAL */
/* The reciprocal of the condition number of the matrix A, */
/* computed as RCOND = 1/(norm(A) * norm(inv(A))). */
/* WORK (workspace) COMPLEX array, dimension (2*N) */
/* RWORK (workspace) REAL array, dimension (N) */
//.........这里部分代码省略.........
开发者ID:dacap,项目名称:loseface,代码行数:101,代码来源:ctrcon.c
示例12: s_wsfe
/* Subroutine */ int schkqp_(logical *dotype, integer *nm, integer *mval,
integer *nn, integer *nval, real *thresh, logical *tsterr, real *a,
real *copya, real *s, real *copys, real *tau, real *work, integer *
iwork, integer *nout)
{
/* Initialized data */
static integer iseedy[4] = { 1988,1989,1990,1991 };
/* Format strings */
static char fmt_9999[] = "(\002 M =\002,i5,\002, N =\002,i5,\002, type"
" \002,i2,\002, test \002,i2,\002, ratio =\002,g12.5)";
/* System generated locals */
integer i__1, i__2, i__3, i__4;
real r__1;
/* Builtin functions */
/* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
/* Local variables */
integer i__, k, m, n, im, in, lda;
real eps;
integer mode, info;
char path[3];
integer ilow, nrun;
extern /* Subroutine */ int alahd_(integer *, char *);
integer ihigh, nfail, iseed[4], imode, mnmin, istep;
extern doublereal sqpt01_(integer *, integer *, integer *, real *, real *,
integer *, real *, integer *, real *, integer *);
integer nerrs;
extern doublereal sqrt11_(integer *, integer *, real *, integer *, real *,
real *, integer *);
integer lwork;
extern doublereal sqrt12_(integer *, integer *, real *, integer *, real *,
real *, integer *), slamch_(char *);
extern /* Subroutine */ int alasum_(char *, integer *, integer *, integer
*, integer *), slaord_(char *, integer *, real *, integer
*), sgeqpf_(integer *, integer *, real *, integer *,
integer *, real *, real *, integer *), slacpy_(char *, integer *,
integer *, real *, integer *, real *, integer *), slaset_(
char *, integer *, integer *, real *, real *, real *, integer *), slatms_(integer *, integer *, char *, integer *, char *,
real *, integer *, real *, real *, integer *, integer *, char *,
real *, integer *, real *, integer *),
serrqp_(char *, integer *);
real result[3];
/* Fortran I/O blocks */
static cilist io___24 = { 0, 0, 0, fmt_9999, 0 };
/* -- LAPACK test routine (version 3.1.1) -- */
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
/* January 2007 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* SCHKQP tests SGEQPF. */
/* Arguments */
/* ========= */
/* DOTYPE (input) LOGICAL array, dimension (NTYPES) */
/* The matrix types to be used for testing. Matrices of type j */
/* (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) = */
/* .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used. */
/* NM (input) INTEGER */
/* The number of values of M contained in the vector MVAL. */
/* MVAL (input) INTEGER array, dimension (NM) */
/* The values of the matrix row dimension M. */
/* NN (input) INTEGER */
/* The number of values of N contained in the vector NVAL. */
/* NVAL (input) INTEGER array, dimension (NN) */
/* The values of the matrix column dimension N. */
/* THRESH (input) REAL */
/* The threshold value for the test ratios. A result is */
/* included in the output file if RESULT >= THRESH. To have */
/* every test ratio printed, use THRESH = 0. */
/* TSTERR (input) LOGICAL */
/* Flag that indicates whether error exits are to be tested. */
/* A (workspace) REAL array, dimension (MMAX*NMAX) */
/* where MMAX is the maximum value of M in MVAL and NMAX is the */
/* maximum value of N in NVAL. */
/* COPYA (workspace) REAL array, dimension (MMAX*NMAX) */
//.........这里部分代码省略.........
开发者ID:kstraube,项目名称:hysim,代码行数:101,代码来源:schkqp.c
示例13: r_imag
/* Subroutine */ int cpbt01_(char *uplo, integer *n, integer *kd, complex *a,
integer *lda, complex *afac, integer *ldafac, real *rwork, real *
resid)
{
/* System generated locals */
integer a_dim1, a_offset, afac_dim1, afac_offset, i__1, i__2, i__3, i__4,
i__5;
complex q__1;
/* Builtin functions */
double r_imag(complex *);
/* Local variables */
integer i__, j, k, kc, ml, mu;
real akk, eps;
extern /* Subroutine */ int cher_(char *, integer *, real *, complex *,
integer *, complex *, integer *);
integer klen;
extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer
*, complex *, integer *);
extern logical lsame_(char *, char *);
real anorm;
extern /* Subroutine */ int ctrmv_(char *, char *, char *, integer *,
complex *, integer *, complex *, integer *);
extern doublereal clanhb_(char *, char *, integer *, integer *, complex *,
integer *, real *), slamch_(char *);
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
*);
/* -- LAPACK test routine (version 3.1) -- */
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
/* November 2006 */
/* .. Scalar Arguments .. */
/* .. */
/* .. Array Arguments .. */
/* .. */
/* Purpose */
/* ======= */
/* CPBT01 reconstructs a Hermitian positive definite band matrix A from */
/* its L*L' or U'*U factorization and computes the residual */
/* norm( L*L' - A ) / ( N * norm(A) * EPS ) or */
/* norm( U'*U - A ) / ( N * norm(A) * EPS ), */
/* where EPS is the machine epsilon, L' is the conjugate transpose of */
/* L, and U' is the conjugate transpose of U. */
/* Arguments */
/* ========= */
/* UPLO (input) CHARACTER*1 */
/* Specifies whether the upper or lower triangular part of the */
/* Hermitian matrix A is stored: */
/* = 'U': Upper triangular */
/* = 'L': Lower triangular */
/* N (input) INTEGER */
/* The number of rows and columns of the matrix A. N >= 0. */
/* KD (input) INTEGER */
/* The number of super-diagonals of the matrix A if UPLO = 'U', */
/* or the number of sub-diagonals if UPLO = 'L'. KD >= 0. */
/* A (input) COMPLEX array, dimension (LDA,N) */
/* The original Hermitian band matrix A. If UPLO = 'U', the */
/* upper triangular part of A is stored as a band matrix; if */
/* UPLO = 'L', the lower triangular part of A is stored. The */
/* columns of the appropriate triangle are stored in the columns */
/* of A and the diagonals of the triangle are stored in the rows */
/* of A. See CPBTRF for further details. */
/* LDA (input) INTEGER. */
/* The leading dimension of the array A. LDA >= max(1,KD+1). */
/* AFAC (input) COMPLEX array, dimension (LDAFAC,N) */
/* The factored form of the matrix A. AFAC contains the factor */
/* L or U from the L*L' or U'*U factorization in band storage */
/* format, as computed by CPBTRF. */
/* LDAFAC (input) INTEGER */
/* The leading dimension of the array AFAC. */
/* LDAFAC >= max(1,KD+1). */
/* RWORK (workspace) REAL array, dimension (N) */
/* RESID (output) REAL */
/* If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS ) */
/* If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS ) */
/* ===================================================================== */
/* .. Parameters .. */
/* .. */
/* .. Local Scalars .. */
/* .. */
/* .. External Functions .. */
/* .. */
//.........这里部分代码省略.........
开发者ID:nya3jp,项目名称:python-animeface,代码行数:101,代码来源:cpbt01.c
示例14: sqrt
/* Subroutine */ int cgeevx_(char *balanc, char *jobvl, char *jobvr, char *
sense, integer *n, complex *a, integer *lda, complex *w, complex *vl,
integer *ldvl, complex *vr, integer *ldvr, integer *ilo, integer *ihi,
real *scale, real *abnrm, real *rconde, real *rcondv, complex *work,
integer *lwork, real *rwork, 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;
complex q__1, q__2;
/* Builtin functions */
double sqrt(doublereal), r_imag(complex *);
void r_cnjg(complex *, complex *);
/* Local variables */
integer i__, k;
char job[1];
real scl, dum[1], eps;
complex tmp;
char side[1];
real anrm;
integer ierr, itau, iwrk, nout;
extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
integer *);
integer icond;
extern logical lsame_(char *, char *);
extern doublereal scnrm2_(integer *, complex *, integer *);
extern /* Subroutine */ int cgebak_(char *, char *, integer *, integer *,
integer *, real *, integer *, complex *, integer *, integer *), cgebal_(char *, integer *, complex *, integer *,
integer *, integer *, real *, integer *), slabad_(real *,
real *);
logical scalea;
extern doublereal clange_(char *, integer *, integer *, complex *,
integer *, real *);
real cscale;
extern /* Subroutine */ int cgehrd_(integer *, integer *, integer *,
complex *, integer *, complex *, complex *, integer *, integer *),
clascl_(char *, integer *, integer *, real *, real *, integer *,
integer *, complex *, integer *, integer *);
extern doublereal slamch_(char *);
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
*), clacpy_(char *, integer *, integer *, complex *, integer *,
complex *, 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 /*
|
请发表评论