home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 21 / IOPROG_21.ISO / SOFT / LIBMAT.ZIP / MATOLS.HPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-16  |  3.1 KB  |  101 lines

  1. /**************************************************/
  2. /*    matols.hpp header for matOls family         */
  3. /**************************************************/
  4.  
  5.  
  6. /**************************************************/
  7. /*            MatClass Source File                */
  8. /*       Copyright of C. R. Birchenhall           */
  9. /*       University of Manchester, UK.            */
  10. /*   MatClass is freeware. This file should be    */
  11. /* made freely available to users of any software */
  12. /* whose creation is wholly or partly dependent   */
  13. /*                on this file.                   */
  14. /**************************************************/
  15.  
  16. #ifndef MATRIX_H
  17. #include "matrix.hpp"
  18. #endif
  19.  
  20. #ifndef MATOLS_H
  21.  
  22. #define MATOLS_H
  23.  
  24.  
  25. class matOls : public matObject
  26. {
  27.  
  28.    protected :
  29.  
  30.       enum olsStatus {
  31.            ASSIGNED    = 1,
  32.            DECOMPOSED  = 2,
  33.            RESIDUALS   = 4,
  34.            VMATRIX     = 8,
  35.            CONDITIONED = 16,
  36.            SINGULAR    = 128
  37.       } ;
  38.  
  39.       INDEX       status, constant, nObs, nVars, nDep, dof ;
  40.       matrix      Y, X, R, Rinv, beta, resid, V, VSqrt ;
  41.       matrix      TSS, RSS, YMean, SE ;
  42.       REAL        tol, condition;
  43.       charArray   nm ;
  44.  
  45.       virtual void setNames( void ) ;
  46.       virtual void initial( void ) ;
  47.  
  48.    public :
  49.  
  50.       matOls( void ) ;
  51.       matOls( const matrix& y, const matrix& x ) ;
  52.       matOls( matOls& ols ) ;
  53.       virtual ~matOls( void ) ;
  54.       void operator = ( matOls& ols ) ;
  55.  
  56.       virtual void assign( const matrix& y,
  57.                const matrix& x ) ;
  58.       virtual void capture( matrix& y, matrix& x ) ;
  59.       virtual void clear( void ) ;
  60.       virtual REAL setTol( REAL newTol = -1.0 ) ;
  61.  
  62.       virtual outFile& info( outFile& f = out ) M_CONST ;
  63.       virtual outFile& olsInfo( outFile& f , char* cName ) M_CONST  ;
  64.       virtual outFile& put( outFile& f = out )  M_CONST ;
  65.       virtual inFile& get( inFile& f = in ) ;
  66.  
  67.       friend outFile& operator << ( outFile& f, matOls& qr )
  68.          { return qr.put(f) ; }
  69.       friend inFile& operator >> ( inFile& f, matOls& qr )
  70.          { return qr.get(f) ; }
  71.  
  72.       charArray& name( char *newName ) ;
  73.       char* nameStr( void ) M_CONST ;
  74.       INDEX ok( void ) ;
  75.       INDEX ok( char *mName ) ;
  76.  
  77.       virtual void decompose( void ) ;
  78.       virtual void formResid( void ) ;
  79.       virtual void formV( void ) ;
  80.  
  81.       virtual matrix& coeff( matrix& b ) ;
  82.       virtual matrix& stdErr( matrix& std ) ;
  83.       virtual matrix& residuals( matrix& res ) ;
  84.       virtual matrix& fitted( matrix& fit ) ;
  85.       virtual matrix& cov( matrix& cv, INDEX i = 1 ) ;
  86.       virtual REAL se( INDEX i = 1 ) ;
  87.       virtual REAL rss( INDEX i = 1 ) ;
  88.       virtual REAL tss( INDEX i = 1 ) ;
  89.       virtual REAL rsq( INDEX i = 1 ) ;
  90.       virtual REAL rBarSq( INDEX i = 1 ) ;
  91.       virtual REAL dw( INDEX i = 1 ) ;
  92.       virtual REAL cond( void ) ;
  93.       virtual REAL tTest( const matrix& w, REAL r, INDEX n = 1 ) ;
  94.       virtual REAL FTest( const matrix& H, const matrix& a,
  95.                           INDEX n = 1 ) ;
  96.       virtual REAL varAdd( const matrix& z, INDEX n = 1 ) ;
  97.  
  98. } ; // class matOls
  99.  
  100. #endif
  101.