00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined (octave_ComplexColumnVector_h)
00024 #define octave_ComplexColumnVector_h 1
00025
00026 #if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)
00027 #pragma interface
00028 #endif
00029
00030 #include "MArray.h"
00031
00032 #include "mx-defs.h"
00033
00034 class
00035 ComplexColumnVector : public MArray<Complex>
00036 {
00037 friend class ComplexMatrix;
00038 friend class ComplexRowVector;
00039
00040 public:
00041
00042 ComplexColumnVector (void) : MArray<Complex> () { }
00043
00044 explicit ComplexColumnVector (int n) : MArray<Complex> (n) { }
00045
00046 ComplexColumnVector (int n, const Complex& val)
00047 : MArray<Complex> (n, val) { }
00048
00049 ComplexColumnVector (const ComplexColumnVector& a) : MArray<Complex> (a) { }
00050
00051 ComplexColumnVector (const MArray<Complex>& a) : MArray<Complex> (a) { }
00052
00053 explicit ComplexColumnVector (const ColumnVector& a);
00054
00055 ComplexColumnVector& operator = (const ComplexColumnVector& a)
00056 {
00057 MArray<Complex>::operator = (a);
00058 return *this;
00059 }
00060
00061 bool operator == (const ComplexColumnVector& a) const;
00062 bool operator != (const ComplexColumnVector& a) const;
00063
00064
00065
00066 ComplexColumnVector& insert (const ColumnVector& a, int r);
00067 ComplexColumnVector& insert (const ComplexColumnVector& a, int r);
00068
00069 ComplexColumnVector& fill (double val);
00070 ComplexColumnVector& fill (const Complex& val);
00071 ComplexColumnVector& fill (double val, int r1, int r2);
00072 ComplexColumnVector& fill (const Complex& val, int r1, int r2);
00073
00074 ComplexColumnVector stack (const ColumnVector& a) const;
00075 ComplexColumnVector stack (const ComplexColumnVector& a) const;
00076
00077 ComplexRowVector hermitian (void) const;
00078 ComplexRowVector transpose (void) const;
00079
00080 friend ComplexColumnVector conj (const ComplexColumnVector& a);
00081
00082
00083
00084 ComplexColumnVector extract (int r1, int r2) const;
00085
00086 ComplexColumnVector extract_n (int r1, int n) const;
00087
00088
00089
00090 ComplexColumnVector& operator += (const ColumnVector& a);
00091 ComplexColumnVector& operator -= (const ColumnVector& a);
00092
00093
00094
00095 friend ComplexColumnVector operator * (const ComplexMatrix& a,
00096 const ColumnVector& b);
00097
00098 friend ComplexColumnVector operator * (const ComplexMatrix& a,
00099 const ComplexColumnVector& b);
00100
00101
00102
00103 friend ComplexColumnVector operator * (const Matrix& a,
00104 const ComplexColumnVector& b);
00105
00106
00107
00108 friend ComplexColumnVector operator * (const DiagMatrix& a,
00109 const ComplexColumnVector& b);
00110
00111 friend ComplexColumnVector operator * (const ComplexDiagMatrix& a,
00112 const ColumnVector& b);
00113
00114 friend ComplexColumnVector operator * (const ComplexDiagMatrix& a,
00115 const ComplexColumnVector& b);
00116
00117
00118
00119 ComplexColumnVector map (c_c_Mapper f) const;
00120 ColumnVector map (d_c_Mapper f) const;
00121
00122 ComplexColumnVector& apply (c_c_Mapper f);
00123
00124 Complex min (void) const;
00125 Complex max (void) const;
00126
00127
00128
00129 friend std::ostream& operator << (std::ostream& os, const ComplexColumnVector& a);
00130 friend std::istream& operator >> (std::istream& is, ComplexColumnVector& a);
00131
00132 private:
00133
00134 ComplexColumnVector (Complex *d, int l) : MArray<Complex> (d, l) { }
00135 };
00136
00137 MARRAY_FORWARD_DEFS (MArray, ComplexColumnVector, Complex)
00138
00139 #endif
00140
00141
00142
00143
00144
00145