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_FloatLU_h) 00024 #define octave_FloatLU_h 1 00025 00026 #include "base-lu.h" 00027 #include "dMatrix.h" 00028 #include "fMatrix.h" 00029 00030 class 00031 OCTAVE_API 00032 FloatLU : public base_lu <FloatMatrix> 00033 { 00034 public: 00035 00036 FloatLU (void) : base_lu <FloatMatrix> () { } 00037 00038 FloatLU (const FloatMatrix& a); 00039 00040 FloatLU (const FloatLU& a) : base_lu <FloatMatrix> (a) { } 00041 00042 FloatLU (const FloatMatrix& l, const FloatMatrix& u, 00043 const PermMatrix& p) 00044 : base_lu <FloatMatrix> (l, u, p) { } 00045 00046 FloatLU& operator = (const FloatLU& a) 00047 { 00048 if (this != &a) 00049 base_lu <FloatMatrix> :: operator = (a); 00050 00051 return *this; 00052 } 00053 00054 ~FloatLU (void) { } 00055 00056 void update (const FloatColumnVector& u, const FloatColumnVector& v); 00057 00058 void update (const FloatMatrix& u, const FloatMatrix& v); 00059 00060 void update_piv (const FloatColumnVector& u, const FloatColumnVector& v); 00061 00062 void update_piv (const FloatMatrix& u, const FloatMatrix& v); 00063 }; 00064 00065 #endif