00001 00011 #ifndef __QVECTORC_HH_ 00012 #define __QVECTORC_HH_ 00013 00014 #include "QObject.hh" 00015 #include "QVector.hh" 00016 #include <iostream> 00017 00018 Q_BEGIN_NAMESPACE 00019 00020 class QVectorC : public QObject { 00021 public: 00025 QVectorC(); 00026 00032 QVectorC(const QVector& re, const QVector& im); 00037 QVectorC(const QVectorC& orig); 00045 QVectorC(const QVector& vec); 00046 00047 virtual ~QVectorC(){} 00048 00049 void SetArray(const double* re, const double* im, size_t size); 00053 double Re(size_t i) const {return fRe[i];} 00057 double Im(size_t i) const {return fIm[i];} 00061 QVector Re(){return fRe;} 00065 QVector Im(){return fIm;} 00069 const QVector& Re() const {return fRe;} 00073 const QVector& Im() const {return fIm;} 00077 QVector SingleVector() const; 00081 void SetRe(const QVector& Re) {fRe = Re;} 00085 void SetIm(const QVector& Im) {fIm = Im;} 00089 QVector GetModulus() const ; 00093 QVector GetPhase() const ; 00094 QVectorC operator*(const QVectorC&) const; 00098 size_t Size() const{ return fRe.Size();} 00102 void Clear(){ fRe.Clear(); fIm.Clear(); } 00103 00104 00105 private: 00106 QVector fRe; 00107 QVector fIm; 00108 }; 00109 00110 Q_END_NAMESPACE 00111 00112 #endif