Virtual U.org
Get Personal Training on VU Today
    
Top shadow
 
 register/help
User Name:

Password:

NEWMATAP.H Source File
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

NEWMATAP.H

Go to the documentation of this file.
00001 //Owner: Fred
00002 //$$ newmatap.h           definition file for matrix package applications
00003 
00004 // Copyright (C) 1991,2,3,4: R B Davies
00005 
00006 #ifndef NEWMATAP_LIB
00007 #define NEWMATAP_LIB 0
00008 
00009 #include "newmat.h"
00010 
00011 #ifdef use_namespace
00012 namespace NEWMAT {
00013 #endif
00014 
00015     /**************************** applications *****************************/
00016 
00017     void QRZT(Matrix&, LowerTriangularMatrix&);
00018 
00019     void QRZT(const Matrix&, Matrix&, Matrix&);
00020 
00021     void QRZ(Matrix&, UpperTriangularMatrix&);
00022 
00023     void QRZ(const Matrix&, Matrix&, Matrix&);
00024 
00025     inline void HHDecompose(Matrix& X, LowerTriangularMatrix& L)
00026     { QRZT(X,L); }
00027 
00028     inline void HHDecompose(const Matrix& X, Matrix& Y, Matrix& M)
00029     { QRZT(X, Y, M); }
00030 
00031     ReturnMatrix Cholesky(const SymmetricMatrix&);
00032 
00033     ReturnMatrix Cholesky(const SymmetricBandMatrix&);
00034 
00035     void SVD(const Matrix&, DiagonalMatrix&, Matrix&, Matrix&,
00036              bool=true, bool=true);
00037 
00038     void SVD(const Matrix&, DiagonalMatrix&);
00039 
00040     inline void SVD(const Matrix& A, DiagonalMatrix& D, Matrix& U,
00041                     bool withU = true) { SVD(A, D, U, U, withU, false); }
00042 
00043     void Jacobi(const SymmetricMatrix&, DiagonalMatrix&);
00044 
00045     void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&);
00046 
00047     void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, Matrix&);
00048 
00049     void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&,
00050                 Matrix&, bool=true);
00051 
00052     void EigenValues(const SymmetricMatrix&, DiagonalMatrix&);
00053 
00054     void EigenValues(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&);
00055 
00056     void EigenValues(const SymmetricMatrix&, DiagonalMatrix&, Matrix&);
00057 
00059     class SymmetricEigenAnalysis {
00060         // not implemented yet
00061     public:
00062         SymmetricEigenAnalysis(const SymmetricMatrix&);
00063     private:
00064         DiagonalMatrix diag;
00065         DiagonalMatrix offdiag;
00066         SymmetricMatrix backtransform;
00067         FREE_CHECK(SymmetricEigenAnalysis)
00068             };
00069 
00070     void SortAscending(GeneralMatrix&);
00071 
00072     void SortDescending(GeneralMatrix&);
00073 
00074     void FFT(const ColumnVector&, const ColumnVector&,
00075              ColumnVector&, ColumnVector&);
00076 
00077     void FFTI(const ColumnVector&, const ColumnVector&,
00078               ColumnVector&, ColumnVector&);
00079 
00080     void RealFFT(const ColumnVector&, ColumnVector&, ColumnVector&);
00081 
00082     void RealFFTI(const ColumnVector&, const ColumnVector&, ColumnVector&);
00083 
00084     void DCT_II(const ColumnVector&, ColumnVector&);
00085 
00086     void DCT_II_inverse(const ColumnVector&, ColumnVector&);
00087 
00088     void DST_II(const ColumnVector&, ColumnVector&);
00089 
00090     void DST_II_inverse(const ColumnVector&, ColumnVector&);
00091 
00092     void DCT(const ColumnVector&, ColumnVector&);
00093 
00094     void DCT_inverse(const ColumnVector&, ColumnVector&);
00095 
00096     void DST(const ColumnVector&, ColumnVector&);
00097 
00098     void DST_inverse(const ColumnVector&, ColumnVector&);
00099 
00100     /********************** linear equation solving ****************************/
00101 
00103     class LinearEquationSolver : public BaseMatrix {
00104         GeneralMatrix* gm;
00105         int search(const BaseMatrix*) const { return 0; }
00106         friend class BaseMatrix;
00107     public:
00108         LinearEquationSolver(const BaseMatrix& bm);
00109         ~LinearEquationSolver() { delete gm; }
00110         void CleanUp() { delete gm; }
00111         GeneralMatrix* Evaluate(MatrixType) { return gm; }
00112         // probably should have an error message if MatrixType != UnSp
00113         NEW_DELETE(LinearEquationSolver)
00114             };
00115 
00116 #ifdef use_namespace
00117 }
00118 #endif
00119 #endif

Generated on Fri Aug 23 01:37:10 2002 for VirtualU by doxygen1.2.17