00001 /* 00002 00003 Copyright (C) 1994-2012 John W. Eaton 00004 00005 This file is part of Octave. 00006 00007 Octave is free software; you can redistribute it and/or modify it 00008 under the terms of the GNU General Public License as published by the 00009 Free Software Foundation; either version 3 of the License, or (at your 00010 option) any later version. 00011 00012 Octave is distributed in the hope that it will be useful, but WITHOUT 00013 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00015 for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with Octave; see the file COPYING. If not, see 00019 <http://www.gnu.org/licenses/>. 00020 00021 */ 00022 00023 #if !defined (octave_LU_h) 00024 #define octave_LU_h 1 00025 00026 #include "base-lu.h" 00027 #include "dMatrix.h" 00028 00029 class 00030 OCTAVE_API 00031 LU : public base_lu <Matrix> 00032 { 00033 public: 00034 00035 LU (void) : base_lu <Matrix> () { } 00036 00037 LU (const Matrix& a); 00038 00039 LU (const LU& a) : base_lu <Matrix> (a) { } 00040 00041 LU (const Matrix& l, const Matrix& u, const PermMatrix& p) 00042 : base_lu <Matrix> (l, u, p) { } 00043 00044 LU& operator = (const LU& a) 00045 { 00046 if (this != &a) 00047 base_lu <Matrix> :: operator = (a); 00048 00049 return *this; 00050 } 00051 00052 ~LU (void) { } 00053 00054 void update (const ColumnVector& u, const ColumnVector& v); 00055 00056 void update (const Matrix& u, const Matrix& v); 00057 00058 void update_piv (const ColumnVector& u, const ColumnVector& v); 00059 00060 void update_piv (const Matrix& u, const Matrix& v); 00061 }; 00062 00063 #endif