tms.h
Upload User: hkdiguang
Upload Date: 2013-05-12
Package Size: 105k
Code Size: 2k
Development Platform:

Unix_Linux

  1. // File: tms.h -*- c++ -*-
  2. // Author: Suvrit Sra
  3. // Date: 15 Nov, 2003
  4. #ifndef _S_TMS_BASE_H
  5. #define _S_TMS_BASE_H
  6. #include "svdpack.h"
  7. namespace ssvd {
  8. class tms : public svdpack {
  9. protected:
  10.   double  *z, 
  11.           *v2,
  12.           *r,
  13.           *r2,
  14.           *pp,
  15.           *z2,
  16.           *zz; /* temporary variables  */
  17.   double  epslon(double x);
  18.   long    ierr;           /* error flag                         */
  19.   double  alpha,          /* 1-norm of the matrix A             */
  20.           tol,
  21.           eps;            /* positive machine epsilon           */
  22.   long    *iw,**iwork,*lwork;
  23.   double  *w1,*w2,*w3,*w4,*w5,*yy;
  24.   double  **work1, **work2, **work3, **work4, **work5, **y;
  25.   
  26.   void cgt (long n, long left, double *w, double **v, long *cgiter, 
  27.     double sig, double sigmax, long *kount, double eps);
  28.   void cgts(long n, long left, double *w, double **v, long *cgiter,
  29.     double sig, double sigold, double sigmax, double shift,
  30.     long *kount, double eps);
  31.   void clus(long i, long size, double *resid, double tol, long *init,
  32.     double *ireso, double *creso, double *tmp, long s);
  33.   
  34.   void disk  (long n, double *sig, double *rad, long *csize,
  35.       long *clus);
  36.   void dtrsm (char side, char uplo, long transa, char diag, long m,
  37.       long n, double alpha, double **a, double **b);
  38.   void isol  (long i, double resid, double tol, long *init, double *,
  39.       double *creso, long s);
  40.   void porth (long p, long f, long n, double **x, double *tmp,
  41.      double *tmp1, double *tmp2, double *tmp3,
  42.      double *tmp4, double e, long degree, double alpha);
  43.   void pmul  (long, double *, double *, double *, double *,
  44.       double *, double, long, double);
  45.   void myopb(long n, double *x, double *y, double shift);
  46. public:
  47.   tms() : svdpack() {}
  48.   tms(long nm, long nz, long sd) : svdpack(nm, nz, sd) {}
  49. };
  50. }
  51. #endif