00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if !defined (octave_ComplexColumnVector_h)
00025 #define octave_ComplexColumnVector_h 1
00026
00027 #include "MArray.h"
00028
00029 #include "mx-defs.h"
00030
00031 class
00032 OCTAVE_API
00033 ComplexColumnVector : public MArray<Complex>
00034 {
00035 friend class ComplexMatrix;
00036 friend class ComplexRowVector;
00037
00038 public:
00039
00040 ComplexColumnVector (void) : MArray<Complex> () { }
00041
00042 explicit ComplexColumnVector (octave_idx_type n) : MArray<Complex> (n) { }
00043
00044 explicit ComplexColumnVector (const dim_vector& dv) : MArray<Complex> (dv) { }
00045
00046 ComplexColumnVector (octave_idx_type 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, octave_idx_type r);
00067 ComplexColumnVector& insert (const ComplexColumnVector& a, octave_idx_type r);
00068
00069 ComplexColumnVector& fill (double val);
00070 ComplexColumnVector& fill (const Complex& val);
00071 ComplexColumnVector& fill (double val, octave_idx_type r1, octave_idx_type r2);
00072 ComplexColumnVector& fill (const Complex& val, octave_idx_type r1, octave_idx_type 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 OCTAVE_API ComplexColumnVector conj (const ComplexColumnVector& a);
00081
00082
00083
00084 ComplexColumnVector extract (octave_idx_type r1, octave_idx_type r2) const;
00085
00086 ComplexColumnVector extract_n (octave_idx_type r1, octave_idx_type n) const;
00087
00088
00089
00090 ComplexColumnVector& operator += (const ColumnVector& a);
00091 ComplexColumnVector& operator -= (const ColumnVector& a);
00092
00093
00094
00095 friend OCTAVE_API ComplexColumnVector operator * (const ComplexMatrix& a,
00096 const ColumnVector& b);
00097
00098 friend OCTAVE_API ComplexColumnVector operator * (const ComplexMatrix& a,
00099 const ComplexColumnVector& b);
00100
00101
00102
00103 friend OCTAVE_API ComplexColumnVector operator * (const Matrix& a,
00104 const ComplexColumnVector& b);
00105
00106
00107
00108 friend OCTAVE_API ComplexColumnVector operator * (const DiagMatrix& a,
00109 const ComplexColumnVector& b);
00110
00111 friend OCTAVE_API ComplexColumnVector operator * (const ComplexDiagMatrix& a,
00112 const ColumnVector& b);
00113
00114 friend OCTAVE_API ComplexColumnVector operator * (const ComplexDiagMatrix& a,
00115 const ComplexColumnVector& b);
00116
00117
00118
00119 typedef double (*dmapper) (const Complex&);
00120 typedef Complex (*cmapper) (const Complex&);
00121
00122 ColumnVector map (dmapper fcn) const;
00123 ComplexColumnVector map (cmapper fcn) const;
00124
00125 Complex min (void) const;
00126 Complex max (void) const;
00127
00128
00129
00130 friend OCTAVE_API std::ostream& operator << (std::ostream& os, const ComplexColumnVector& a);
00131 friend OCTAVE_API std::istream& operator >> (std::istream& is, ComplexColumnVector& a);
00132
00133 private:
00134
00135 ComplexColumnVector (Complex *d, octave_idx_type l) : MArray<Complex> (d, l) { }
00136 };
00137
00138 MARRAY_FORWARD_DEFS (MArray, ComplexColumnVector, Complex)
00139
00140 #endif
00141
00142
00143
00144
00145
00146