ptv.cpp

Go to the documentation of this file.
00001 #include <ptv.h>
00002 
00003 
00004 double ptv::tol = 10e-6;  
00005 
00006 ptv::ptv() { 
00007   dim = 0; 
00008   v = 0; 
00009 }
00010 
00011 
00012 ptv::ptv(int size_, double* v_) {
00013   dim = size_; 
00014   v = new double[dim]; 
00015   for (int i=0; i< dim; i++) { 
00016     v[i] = v_[i];
00017   }
00018 }
00019 
00020 ptv::ptv(const ptv& p){
00021   dim = p.size(); 
00022   v = new double[dim]; 
00023   for (int i=0; i< dim; i++) { 
00024     v[i] = p[i]; 
00025   }
00026 
00027 }
00028 
00029 ptv::~ptv() { 
00030   if (dim > 0) delete [] v; 
00031 }
00032 
00033 const int ptv::size() const { return dim;}
00034 
00035 const double& ptv::operator [] (int i) const { 
00036   return v[i];   
00037 }
00038 
00039 double& ptv::operator [] (int i) { 
00040   return v[i];   
00041 }
00042 
00043 ptv& ptv::operator = (const ptv& p) { 
00044   dim = p.size(); 
00045   v = new double[dim]; 
00046   for (int i=0; i< dim; i++) { 
00047     v[i] = p[i]; 
00048   }
00049   return *this; 
00050 }
00051 
00052 
00053 
00054 bool ptv::is_less(const ptv& p) const {
00055 //  cout <<"inside is_less "<<endl; 
00056   double tmp = 0; 
00057   double tol = 0.0001; 
00058 
00059   if ( dim <  p.size() ) return true ; 
00060   if ( dim >  p.size() ) return false; 
00061 
00062 
00063   for (int i=0; i< dim; i++) {
00064     if ( v[i] + tol >= p[i] && v[i] - tol <= p[i] ) {   
00065     } else if ( v[i] - tol < p[i] ) { 
00066         return true; 
00067     } else if ( v[i] + tol > p[i] ) { 
00068         return false ; 
00069     }
00070   }
00071   return false; 
00072 }
00073   
00074 
00075 
00076 
00077 std::ostream & operator<< ( std::ostream& os, const ptv& p) { 
00078   if (p.size() >= 1) {
00079     os <<"["; 
00080     for (int i=0; i< p.size()-1; i++) { 
00081       os <<p[i]<<","; 
00082     }
00083     os <<p[p.size()-1]<<"]"; 
00084   } else {
00085     os <<"ptv not created properly"<<endl; 
00086   }
00087 }
00088 
00089 
00090 
00091 
00092 

Generated on Thu Mar 9 00:05:52 2006 for SyFi by  doxygen 1.4.4