00001 #ifndef MAGNET_MAGVEC_H 00002 #define MAGNET_MAGVEC_H 00003 00004 00005 00006 00007 00008 class MagVec { 00009 00010 00011 public: 00012 00013 MagVec(int N); 00014 MagVec(); 00015 MagVec(const MagVec& v); 00016 ~MagVec(); 00017 00018 00019 double& operator[](int i); 00020 const double& operator[](int i) const; 00021 00022 00023 MagVec& operator=(const MagVec& v); 00024 // MagVec& operator=(const double& v); 00025 MagVec operator+(const MagVec& v); 00026 MagVec operator+(const MagVec& v) const; 00027 MagVec& operator+=(const MagVec& v); 00028 MagVec operator-(const MagVec& v); 00029 MagVec operator-(const MagVec& v) const; 00030 MagVec& operator-=(const MagVec& v); 00031 double operator*(const MagVec& v); 00032 double operator*(const MagVec& v) const; 00033 MagVec operator*(const double& d); 00034 MagVec& operator*=(const double& d); 00035 00036 void reSize(int Nnew); 00037 int n_elem() const; 00038 00039 00040 private: 00041 00042 00043 00044 int Nele; 00045 00046 double* ptr_data; 00047 00048 00049 }; 00050 00051 00052 00053 #endif // MAGNET_MAGVEC_H