org.netlib.arpack
Class Dsapps

java.lang.Object
  extended by org.netlib.arpack.Dsapps

public class Dsapps
extends java.lang.Object

Following is the description from the original
Fortran source.  For each array argument, the Java
version will include an integer offset parameter, so
the arguments may not match the description exactly.
Contact seymour@cs.utk.edu with any questions.

*----------------------------------------------------------------------- \BeginDoc \Name: dsapps \Description: Given the Arnoldi factorization A*V_{k} - V_{k}*H_{k} = r_{k+p}*e_{k+p}^T, apply NP shifts implicitly resulting in A*(V_{k}*Q) - (V_{k}*Q)*(Q^T* H_{k}*Q) = r_{k+p}*e_{k+p}^T * Q where Q is an orthogonal matrix of order KEV+NP. Q is the product of rotations resulting from the NP bulge chasing sweeps. The updated Arnoldi factorization becomes: A*VNEW_{k} - VNEW_{k}*HNEW_{k} = rnew_{k}*e_{k}^T. \Usage: call dsapps ( N, KEV, NP, SHIFT, V, LDV, H, LDH, RESID, Q, LDQ, WORKD ) \Arguments N Integer. (INPUT) Problem size, i.e. dimension of matrix A. KEV Integer. (INPUT) INPUT: KEV+NP is the size of the input matrix H. OUTPUT: KEV is the size of the updated matrix HNEW. NP Integer. (INPUT) Number of implicit shifts to be applied. SHIFT Double precision array of length NP. (INPUT) The shifts to be applied. V Double precision N by (KEV+NP) array. (INPUT/OUTPUT) INPUT: V contains the current KEV+NP Arnoldi vectors. OUTPUT: VNEW = V(1:n,1:KEV); the updated Arnoldi vectors are in the first KEV columns of V. LDV Integer. (INPUT) Leading dimension of V exactly as declared in the calling program. H Double precision (KEV+NP) by 2 array. (INPUT/OUTPUT) INPUT: H contains the symmetric tridiagonal matrix of the Arnoldi factorization with the subdiagonal in the 1st column starting at H(2,1) and the main diagonal in the 2nd column. OUTPUT: H contains the updated tridiagonal matrix in the KEV leading submatrix. LDH Integer. (INPUT) Leading dimension of H exactly as declared in the calling program. RESID Double precision array of length (N). (INPUT/OUTPUT) INPUT: RESID contains the the residual vector r_{k+p}. OUTPUT: RESID is the updated residual vector rnew_{k}. Q Double precision KEV+NP by KEV+NP work array. (WORKSPACE) Work array used to accumulate the rotations during the bulge chase sweep. LDQ Integer. (INPUT) Leading dimension of Q exactly as declared in the calling program. WORKD Double precision work array of length 2*N. (WORKSPACE) Distributed array used in the application of the accumulated orthogonal matrix Q. \EndDoc ----------------------------------------------------------------------- \BeginLib \Local variables: xxxxxx real \References: 1. D.C. Sorensen, "Implicit Application of Polynomial Filters in a k-Step Arnoldi Method", SIAM J. Matr. Anal. Apps., 13 (1992), pp 357-385. 2. R.B. Lehoucq, "Analysis and Implementation of an Implicitly Restarted Arnoldi Iteration", Rice University Technical Report TR95-13, Department of Computational and Applied Mathematics. \Routines called: ivout ARPACK utility routine that prints integers. second ARPACK utility routine for timing. dvout ARPACK utility routine that prints vectors. dlamch LAPACK routine that determines machine constants. dlartg LAPACK Givens rotation construction routine. dlacpy LAPACK matrix copy routine. dlaset LAPACK matrix initialization routine. dgemv Level 2 BLAS routine for matrix vector multiplication. daxpy Level 1 BLAS that computes a vector triad. dcopy Level 1 BLAS that copies one vector to another. dscal Level 1 BLAS that scales a vector. \Author Danny Sorensen Phuong Vu Richard Lehoucq CRPC / Rice University Dept. of Computational & Houston, Texas Applied Mathematics Rice University Houston, Texas \Revision history: 12/16/93: Version ' 2.4' \SCCS Information: @(#) FILE: sapps.F SID: 2.6 DATE OF SID: 3/28/97 RELEASE: 2 \Remarks 1. In this version, each shift is applied to all the subblocks of the tridiagonal matrix H and not just to the submatrix that it comes from. This routine assumes that the subdiagonal elements of H that are stored in h(1:kev+np,1) are nonegative upon input and enforce this condition upon output. This version incorporates deflation. See code for documentation. \EndLib -----------------------------------------------------------------------


Field Summary
static double epsmch
           
static boolean first
           
static org.netlib.util.floatW t0
           
static org.netlib.util.floatW t1
           
static float t2
           
static float t3
           
static float t4
           
static float t5
           
 
Constructor Summary
Dsapps()
           
 
Method Summary
static void dsapps(int n, int kev, int np, double[] shift, int _shift_offset, double[] v, int _v_offset, int ldv, double[] h, int _h_offset, int ldh, double[] resid, int _resid_offset, double[] q, int _q_offset, int ldq, double[] workd, int _workd_offset)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

t0

public static org.netlib.util.floatW t0

t1

public static org.netlib.util.floatW t1

t2

public static float t2

t3

public static float t3

t4

public static float t4

t5

public static float t5

epsmch

public static double epsmch

first

public static boolean first
Constructor Detail

Dsapps

public Dsapps()
Method Detail

dsapps

public static void dsapps(int n,
                          int kev,
                          int np,
                          double[] shift,
                          int _shift_offset,
                          double[] v,
                          int _v_offset,
                          int ldv,
                          double[] h,
                          int _h_offset,
                          int ldh,
                          double[] resid,
                          int _resid_offset,
                          double[] q,
                          int _q_offset,
                          int ldq,
                          double[] workd,
                          int _workd_offset)