00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #if !defined (octave_FloatComplexQR_h)
00028 #define octave_FloatComplexQR_h 1
00029
00030 #include <iosfwd>
00031
00032 #include "fCMatrix.h"
00033 #include "fCColVector.h"
00034 #include "fCRowVector.h"
00035 #include "base-qr.h"
00036
00037 class
00038 OCTAVE_API
00039 FloatComplexQR : public base_qr<FloatComplexMatrix>
00040 {
00041 public:
00042
00043 FloatComplexQR (void) : base_qr<FloatComplexMatrix> () { }
00044
00045 FloatComplexQR (const FloatComplexMatrix&, qr_type_t = qr_type_std);
00046
00047 FloatComplexQR (const FloatComplexMatrix& qx, const FloatComplexMatrix& rx)
00048 : base_qr<FloatComplexMatrix> (qx, rx) { }
00049
00050 FloatComplexQR (const FloatComplexQR& a) : base_qr<FloatComplexMatrix> (a) { }
00051
00052 void init (const FloatComplexMatrix&, qr_type_t = qr_type_std);
00053
00054 void update (const FloatComplexColumnVector& u, const FloatComplexColumnVector& v);
00055
00056 void update (const FloatComplexMatrix& u, const FloatComplexMatrix& v);
00057
00058 void insert_col (const FloatComplexColumnVector& u, octave_idx_type j);
00059
00060 void insert_col (const FloatComplexMatrix& u, const Array<octave_idx_type>& j);
00061
00062 void delete_col (octave_idx_type j);
00063
00064 void delete_col (const Array<octave_idx_type>& j);
00065
00066 void insert_row (const FloatComplexRowVector& u, octave_idx_type j);
00067
00068 void delete_row (octave_idx_type j);
00069
00070 void shift_cols (octave_idx_type i, octave_idx_type j);
00071
00072 protected:
00073
00074 void form (octave_idx_type n, FloatComplexMatrix& afact,
00075 FloatComplex *tau, qr_type_t qr_type);
00076 };
00077
00078 #endif
00079
00080
00081
00082
00083
00084