00001 #include "arrayofvecdouble.h" 00002 00003 00015 void ArrayOfVecDouble::getVecValues(unsigned i,VecDoubleRef *v) 00016 { 00017 assert(!v->is_owner()); 00018 assert(v->size() == m_M.n()); 00019 v->setData(&(m_M(i,0))); 00020 } 00021 00022 void ArrayOfVecDouble::copyVecValues(unsigned i,VecDouble *v) const 00023 { 00024 unsigned vec_size = vecs_size(); 00025 assert(v->size() == vec_size); 00026 for (unsigned j=0;j<vec_size;j++) 00027 { 00028 (*v)(j) = m_M(i,j); 00029 } 00030 } 00031 00032 VecDouble ArrayOfVecDouble::operator[](Index i) const 00033 { 00034 VecDoubleRef ref(vecs_size()); 00035 const_cast<ArrayOfVecDouble*>(this)->getVecValues(i,&ref); 00036 return ref; 00037 } 00038 00039 00040 00049 void ArrayOfVecDouble::getComponent(VecDouble &v,unsigned cmp) 00050 { 00051 assert(v.size() == this->size()); 00052 for (unsigned i=0;i<v.size();i++) 00053 { 00054 v(i) = m_M(i,cmp); 00055 } 00056 00057 }