📄 itpack.h
字号:
*/
extern doublereal ddot_(integer *n, doublereal *dx, integer *incx, doublereal *dy, integer *incy);
/**
* Subroutine that computes the determinant of a symmetric tridiagonal matrix
* given by tri. det(tri - xlmda*i) = 0
* \param n order of tridiagonal system
* \param tri symmetric tridiagonal matrix of order n
* \param xlmda argument for characteristic equation
*/
extern doublereal determ_(integer *n, doublereal *tri, doublereal *xlmda);
/**
* Obtain default parameters
* \param iparm array of 12 integer parameters
* \param rparm array of 12 double parameters
*/
extern int dfault_(integer *iparm, doublereal *rparm);
/**
* This routine initializes the itpack common blocks from the information
* contained in IPARM and RPARM. echall_ also prints the values of all the
* parameters in IPARM and RPARM
* \param nn Order of linear system
* \param ia array of row offsets
* \param ja array of column indices
* \param a array of matrix values
* \param rhs array of right hand side of system
* \param iparm integer array of parameters
* \param rparm doublereal array of parameters
* \param icall indicator of which parameters are being printed
* \note in this implementation...all printing is disabled
*/
extern int echall_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *rhs, integer *iparm, doublereal *rparm, integer *icall);
/**
* This routine initiazes the itpack common blocks from IPARM and RPARM
* \param iparm integer array of parameters
* \param rparm doublereal array of parameters
* \param imthd indicator of method
* 1 = jcg
* 2 = jsi
* 3 = sor
* 4 = ssorcg
* 5 = ssorsi
* 6 = rscg
* 7 = rssi
*/
extern int echout_(integer *iparm, doublereal *rparm, integer *imthd);
/**
* Computes the largest eigenvalue of symmetric tridiagnoncal matrix
* for conjugate gradient acceleration
* \param n order of tridiagonal system
* \param tri symmetric tridiagonal matrix of order n
* \param d__ array of eqrt1s (negative diagonal elements)
* \param e2 array of eqrt1s (super diagonal elements)
* \param ier error flag (0 = success)
*/
extern doublereal eigvns_(integer *n, doublereal *tri, doublereal *d__, doublereal *e2, integer *ier);
/**
* Computes the largest eigenvalue of a symmetric tridiagonal matrix for conjugate gradient acceleration
* modified imsl routine zbrent is used
* \param n order of tridiagonal system
* \param tri symmetric tridiagonal matrix of order n
* \param start initial lower bound of interval containing root
* \param zeta stopping criteria
* \param itmax maximum number of iterations
* \param ier error flag (0 = success)
*/
extern doublereal eigvss_(integer *n, doublereal *tri, doublereal *start, doublereal *zeta, integer *itmax, integer *ier);
/**
* Smallest or largest m eigenvalue of a symmetric tridiagonal matrix
* \param d__ input vector of length n, contains diagonal elements of matrix
* the computed eigenvalues replace the first m components
* \param e2 input vector of length n containing the squares of the off-diagonal elements of the matrix
* \param nn order of the matrix
* \param m number of smallest eigenvalues desired
* \param isw positive definite flag (0 = not pd, 1 = pd)
* \param ierr error flag (601 = interates not monotone increasing, 602 = not really pd)
*/
extern int eqrt1s_(doublereal *d__, doublereal *e2, integer *nn, integer *m, integer *isw, integer *ierr);
/**
* Finds the smallest integer, ipstr, greater than 5 such that
* ipstr * (omega-1)**(ipstr-1) <= 0.5
* \param omega relaxation factor for sor method
*/
extern integer ipstr_(doublereal *omega);
/**
* This routine produces teh iteration summary line at the end of each iteration
* if level = 5, the latest approx to the solution is printed
* \param nn order of system
* \param a iteration matrix
* \param u solution estimate
* \param wk work array of length nn
* \param imthdd indicator of method
* 1 = jcg
* 2 = jsi
* 3 = sor
* 4 = ssorcg
* 5 = ssorsi
* 6 = rscg
* 7 = rssi
*/
extern int iterm_(integer *nn, doublereal *a, doublereal *u, doublereal *wk, integer *imthdd);
/**
* Fill integer array with a value
* \param n number of elements in array
* \param iv pointer to integer array
* \param ival value to fill array with
*/
extern int ivfill_(integer *n, integer *iv, integer *ival);
/*
* FIXME: add doc
*/
extern int omeg_(doublereal *dnrm, integer *iflag);
/*
* FIXME: add doc
*/
extern logical omgchg_(integer *ndummy);
/*
* FIXME: add doc
*/
extern logical omgstr_(integer *ndummy);
/*
* FIXME: add doc
*/
extern int parcon_(doublereal *dtnrm, doublereal *c1, doublereal *c2, doublereal *c3, doublereal *c4, doublereal *gamold, doublereal *rhotmp, integer *ibmth);
/*
* FIXME: add doc
*/
extern int parsi_(doublereal *c1, doublereal *c2, doublereal *c3, integer *ibmth);
/*
* FIXME: add doc
*/
extern doublereal pbeta_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *v, doublereal *w1, doublereal *w2);
/*
* FIXME: add doc
*/
extern int pbsor_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *u, doublereal *rhs);
/*
* FIXME: add doc
*/
extern int permat_(integer *nn, integer *ia, integer *ja, doublereal *a, integer *p, integer *newia, integer *isym, integer *level, integer *nout, integer *ierr);
/*
* FIXME: add doc
*/
extern int perror_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *rhs, doublereal *u, doublereal *w, doublereal *digtt1, doublereal *digtt2, integer *idgtts);
/*
* FIXME: add doc
*/
extern int pervec_(integer *n, doublereal *v, integer *p);
/*
* FIXME: add doc
*/
extern int pfsor_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *u, doublereal *rhs);
/*
* FIXME: add doc
*/
extern int pfsor1_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *u, doublereal *rhs);
/*
* FIXME: add doc
*/
extern int pjac_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *u, doublereal *rhs);
/*
* FIXME: add doc
*/
extern int pmult_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *u, doublereal *w);
/*
* FIXME: add doc
*/
extern int prbndx_(integer *nn, integer *nblack, integer *ia, integer *ja, integer *p, integer *ip, integer *level, integer *nout, integer *ier);
/*
* FIXME: add doc
*/
extern int prsblk_(integer *nnb, integer *nnr, integer *ia, integer *ja, doublereal *a, doublereal *ur, doublereal *vb);
/*
* FIXME: add doc
*/
extern int prsred_(integer *nnb, integer *nnr, integer *ia, integer *ja, doublereal *a, doublereal *ub, doublereal *vr);
/*
* FIXME: add doc
*/
extern int pssor1_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *u, doublereal *rhs, doublereal *fr, doublereal *br);
/*
* FIXME: add doc
*/
extern int pstop_(integer *n, doublereal *u, doublereal *dnrm, doublereal *ccon, integer *iflag, logical *q1);
/*
* FIXME: add doc
*/
extern doublereal pvtbv_(integer *n, integer *ia, integer *ja, doublereal *a, doublereal *v);
/*
* FIXME: add doc
*/
extern int qsort_(integer *nn, integer *key, doublereal *data, integer *error);
/**
* Convert compressed row matrix back to linked-list representation used for adding entires
*/
extern int sbagn_(integer *n, integer *nz, integer *ia, integer *ja, doublereal *a, integer *iwork, integer *levell, integer *noutt, integer *ierr);
/*
* FIXME: add doc
*/
extern int sbelm_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *rhs, integer *iw, doublereal *rw, doublereal *tol, integer *isym, integer *level, integer *nout, integer *ier);
/**
* Finalize matrix storage format
* \param nn order of matrix
* \param nz maximum number of non-zero values
* \param ia array of row offsets
* \param ja array of column indices
* \param a array of matrix values
* \param iwork workspace array used by itpack
*/
extern int sbend_(integer *nn, integer *nz, integer *ia, integer *ja, doublereal *a, integer *iwork);
/**
* Initialize sparse matrix storage
* \param nn order of matrix
* \param nz maximum number of non-zero values
* \param ia array of row offsets
* \param ja array of column indices
* \param a array of matrix values
* \param iwork workspace array used by itpack
*/
extern int sbini_(integer *nn, integer *nz, integer *ia, integer *ja, doublereal *a, integer *iwork);
/**
* Insert entry into sparse matrix
* \param nn order of matrix
* \param nz maximum number of non-zero values
* \param ia array of row offsets
* \param ja array of column indices
* \param a array of matrix values
* \param iwork workspace array used by itpack
* \param ii row index of value to add
* \param jj column index of value to add
* \param vall value to add
* \param mode flag for type of adding to be done
* \param levell specifier for level of output
* \param noutt specifier for output
* \param ierr holds error flag on return
*/
extern int sbsij_(integer *nn, integer *nz, integer *ia, integer *ja, doublereal *a, integer *iwork, integer *ii, integer *jj, doublereal *vall, integer *mode, integer *levell, integer *noutt, integer *ierr);
/*
* FIXME: add doc
*/
extern int scal_(integer *nn, integer *ia, integer *ja, doublereal *a, doublereal *rhs, doublereal *u, doublereal *d__, integer *level, integer *nout, integer *ier);
/*
* FIXME: add doc
*/
extern int sum3_(integer *n, doublereal *c1, doublereal *x1, doublereal *c2, doublereal *x2, doublereal *c3, doublereal *x3);
/*
* FIXME: add doc
*/
extern doublereal tau_(integer *ii);
/*
* FIXME: add doc
*/
extern E_f timer_(v3p_netlib_real *timdmy);
/*
* FIXME: add doc
*/
extern logical tstchg_(integer *ibmth);
/*
* FIXME: add doc
*/
extern int unscal_(integer *n, integer *ia, integer *ja, doublereal *a, doublereal *rhs, doublereal *u, doublereal *d__);
/*
* FIXME: add doc
*/
extern int vevmw_(integer *n, doublereal *v, doublereal *w);
/*
* FIXME: add doc
*/
extern int vevpw_(integer *n, doublereal *v, doublereal *w);
/**
* Fill all entires of nn-sized array u with value
* \param n size of array
* \param v array
* \param val value to fill array with
*/
extern int vfill_(integer *n, doublereal *v, doublereal *val);
/*
* FIXME: add doc
*/
extern int vout_(integer *n, doublereal *v, integer *iswt, integer *noutt);
/*
* FIXME: add doc
*/
extern int wevmw_(integer *n, doublereal *v, doublereal *w);
/*
* FIXME: add doc
*/
extern int zbrent_(integer *n, doublereal *tri, doublereal *eps, integer *nsig, doublereal *aa, doublereal *bb, integer *maxfnn, integer *ier);
}
#include "v3p_f2c_unmangle.h"
#endif // #ifndef __itpack_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -