fCmplxQR.h

Go to the documentation of this file.
00001 /*
00002 
00003 Copyright (C) 1994-2012 John W. Eaton
00004 Copyright (C) 2008-2009 Jaroslav Hajek
00005 
00006 This file is part of Octave.
00007 
00008 Octave is free software; you can redistribute it and/or modify it
00009 under the terms of the GNU General Public License as published by the
00010 Free Software Foundation; either version 3 of the License, or (at your
00011 option) any later version.
00012 
00013 Octave is distributed in the hope that it will be useful, but WITHOUT
00014 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00015 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00016 for more details.
00017 
00018 You should have received a copy of the GNU General Public License
00019 along with Octave; see the file COPYING.  If not, see
00020 <http://www.gnu.org/licenses/>.
00021 
00022 */
00023 
00024 // updating/downdating by Jaroslav Hajek 2008
00025 
00026 #if !defined (octave_FloatComplexQR_h)
00027 #define octave_FloatComplexQR_h 1
00028 
00029 #include <iosfwd>
00030 
00031 #include "fCMatrix.h"
00032 #include "fCColVector.h"
00033 #include "fCRowVector.h"
00034 #include "base-qr.h"
00035 
00036 class
00037 OCTAVE_API
00038 FloatComplexQR : public base_qr<FloatComplexMatrix>
00039 {
00040 public:
00041 
00042   FloatComplexQR (void) : base_qr<FloatComplexMatrix> () { }
00043 
00044   FloatComplexQR (const FloatComplexMatrix&, qr_type_t = qr_type_std);
00045 
00046   FloatComplexQR (const FloatComplexMatrix& qx, const FloatComplexMatrix& rx)
00047     : base_qr<FloatComplexMatrix> (qx, rx) { }
00048 
00049   FloatComplexQR (const FloatComplexQR& a) : base_qr<FloatComplexMatrix> (a) { }
00050 
00051   void init (const FloatComplexMatrix&, qr_type_t = qr_type_std);
00052 
00053   void update (const FloatComplexColumnVector& u, const FloatComplexColumnVector& v);
00054 
00055   void update (const FloatComplexMatrix& u, const FloatComplexMatrix& v);
00056 
00057   void insert_col (const FloatComplexColumnVector& u, octave_idx_type j);
00058 
00059   void insert_col (const FloatComplexMatrix& u, const Array<octave_idx_type>& j);
00060 
00061   void delete_col (octave_idx_type j);
00062 
00063   void delete_col (const Array<octave_idx_type>& j);
00064 
00065   void insert_row (const FloatComplexRowVector& u, octave_idx_type j);
00066 
00067   void delete_row (octave_idx_type j);
00068 
00069   void shift_cols (octave_idx_type i, octave_idx_type j);
00070 
00071 protected:
00072 
00073   void form (octave_idx_type n, FloatComplexMatrix& afact,
00074              FloatComplex *tau, qr_type_t qr_type);
00075 };
00076 
00077 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines