00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _CONSTRAINEDLS_H_
00012 #define _CONSTRAINEDLS_H_
00013
00014 #include "Vector.H"
00015 #include "REAL.H"
00016 #include "RealVect.H"
00017 #include "NamespaceHeader.H"
00018
00019 class ConstrainedLS
00020 {
00021 public:
00022 void LeastSquares(Real**A,
00023 Vector<Real>&x,
00024 const Vector<Real>&rhs,
00025 Real**constraintMat,
00026 Real*constraintVec,
00027 int nInequality);
00028
00029
00030 void LeastSquares(Real** A,
00031 Vector<Real>&x,
00032 const Vector<Real>&rhs);
00033
00034
00035 void transpose(Real** a_A,
00036 Real ** a_Atrans,
00037 const int& a_numRows,
00038 const int& a_numCols);
00039
00040 void matMul(Real** a_A,
00041 Real** a_B,
00042 Real** a_C,
00043 const int& a_numRowsA,
00044 const int& a_numColsA,
00045 const int& a_numColsB);
00046
00047
00048 void AtimesX(Real** A,
00049 const Vector<Real>&x,
00050 const int& numRowsA,
00051 Vector<Real>& Ax);
00052
00053 void allocArray(const int& rows,
00054 const int& cols,
00055 Real**& A);
00056
00057 void freeArray(const int& rows,
00058 const int& cols,
00059 Real**& A);
00060
00061 void output(const int& rows,
00062 const int& cols,
00063 Real**& A,
00064 char* name);
00065 };
00066
00067 #include "NamespaceFooter.H"
00068 #endif