Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

matrixFD.h

Go to the documentation of this file.
00001 #ifndef MATRIXFD_H
00002 #define MATRIXFD_H
00003 /*------------------------------------------------------------------------------
00004  * matrixFD.h   A simple, easy to use and efficient Matrix library.
00005  *              Definition and partial implementation of class MatrixFD.
00006  *              
00007  *              Copyright 1997,1998,1999,2000 Roland Krause
00008  * -----------------------------------------------------------------------------
00009  * RCS/CVS history of changes
00010  *  
00011  * $Log: matrixFD.h,v $
00012  * Revision 1.3  2000/11/09 18:41:31  rokrau
00013  * The first commit to the sourceforge repostory. Update of all
00014  * intermediate changes makes this the official repository from now on.
00015  *
00016  * Revision 1.3  2000/11/09 17:49:58  rokrau
00017  * "virtual" constructors for VectorD from columns and rows of a
00018  * MatrixFD.
00019  *
00020  * Revision 1.2  2000/10/27 17:08:09  rokrau
00021  * some fixes for integer matrices
00022  *
00023  * Revision 1.1  2000/10/24 06:03:04  rokrau
00024  * Split header files, made Ref constructor private w/ some drastic consequences for
00025  * Ref operators. A lot of minor changes.
00026  *
00027  * -----------------------------------------------------------------------------
00028  * $Date: 2000/11/09 18:41:31 $
00029  * $Revision: 1.3 $
00030  * $Author: rokrau $
00031  * $State: Exp $
00032  * -----------------------------------------------------------------------------
00033  */
00034 // standard includes
00035 // project includes
00036 #include    "matrix.h"
00037 #include    "vectorD.h"
00038 //  namespaces
00039 //using namespace std;
00040 #ifdef USE_NAMESPACE_LINAL
00041 namespace LinAl {
00042 #endif
00043 
00054 class MatrixFD:public MatrixC<double>
00055 {
00056 public:
00058 
00059 
00060     explicit MatrixFD() : MatrixC<double>() {}
00062     explicit MatrixFD(const int nr, const int nc=1, const double value=0.0) :
00063         MatrixC<double>(nr,nc,value) {}
00065     MatrixFD(const MatrixC<double>& B) : MatrixC<double>(B) {}
00067     ~MatrixFD() {}
00069     MatrixFD& operator= (const double value) {this->MatrixC<double>::operator=(value);return *this;}
00071 
00075 
00076     VectorD column(const int j) const ;
00078     VectorD row(const int i) const ;
00080 
00085 
00086     MatrixFD transpose() const ;
00088     void multiply(const MatrixFD& A, const MatrixFD& B,
00089                   const char TRANSA='N', const char TRANSB='N',
00090                   const double ALPHA=1.0, const double BETA=0.0);
00092     void multiply(const double value);
00094     void multiply(const MatrixSD& A, const MatrixFD& B,
00095                     const double ALPHA=1.0, const double BETA=0.0);
00097     void multiply(const MatrixBD& A, const MatrixFD& B,
00098                   const double ALPHA=1.0, const double BETA=0.0);
00100     void multiply(const VectorD& x, VectorD& y, const char TRANS='N',
00101                   const double ALPHA=1.0, const double BETA=0.0) const;
00108     void LUdecompose(int* IPIV) ;
00117     void LUsubstitute(MatrixC<double>& B, int* IPIV) ;
00119     void LUsolve(MatrixC<double>& B) ;
00121     void LUinvert() ;
00123     void CHdecompose() ;
00125     void CHsubstitute(MatrixC<double>& B) ;
00127     void CHsolve(MatrixC<double>& B) ;
00129     void CHinvert() ;
00131 };
00132 #ifdef USE_NAMESPACE_LINAL
00133 } // namespace LinAl
00134 #endif
00135 #endif // #ifndef MATRIXFD_H

Generated at Wed Nov 22 08:38:28 2000 for LinAl - a simple and efficient Matrix library - by doxygen1.2.1 written by Dimitri van Heesch, © 1997-2000