/[escript]/branches/arrayview_from_1695_trunk/escript/src/DataVector.cpp
ViewVC logotype

Diff of /branches/arrayview_from_1695_trunk/escript/src/DataVector.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1772 by jfenwick, Fri Aug 22 00:39:32 2008 UTC revision 1773 by jfenwick, Tue Sep 9 02:52:26 2008 UTC
# Line 226  DataVector::copyFromNumArray(const boost Line 226  DataVector::copyFromNumArray(const boost
226    
227    m_array_data = arrayManager.new_array(1,value.nelements());    m_array_data = arrayManager.new_array(1,value.nelements());
228    
229        int si=0,sj=0,sk=0,sl=0;      // bounds for each dimension of the shape    int si=0,sj=0,sk=0,sl=0;      // bounds for each dimension of the shape
230        DataTypes::ShapeType tempShape;        DataTypes::ShapeType tempShape;    
231        for (int i=0; i<value.getrank(); i++) {    for (int i=0; i<value.getrank(); i++) {
232           tempShape.push_back(extract<int>(value.getshape()[i]));       tempShape.push_back(extract<int>(value.getshape()[i]));
233        }    }
234    
235        if (value.getrank()==0) {    if (value.getrank()==0) {
236      m_array_data[0]=extract<double>(value[value.getshape()]);       m_array_data[0]=extract<double>(value[value.getshape()]);
237        } else if (value.getrank()==1) {    } else if (value.getrank()==1) {
238       si=tempShape[0];       si=tempShape[0];
239           for (ValueType::size_type i=0;i<si;i++) {       for (ValueType::size_type i=0;i<si;i++) {
240              m_array_data[i]=extract<double>(value[i]);          m_array_data[i]=extract<double>(value[i]);
241           }       }
242        } else if (value.getrank()==2) {    } else if (value.getrank()==2) {
243       si=tempShape[0];      si=tempShape[0];
244       sj=tempShape[1];      sj=tempShape[1];
245           for (ValueType::size_type i=0;i<si;i++) {          for (ValueType::size_type i=0;i<si;i++) {
246              for (ValueType::size_type j=0;j<sj;j++) {             for (ValueType::size_type j=0;j<sj;j++) {
247                 m_array_data[DataTypes::getRelIndex(tempShape,i,j)]=extract<double>(value[i][j]);                m_array_data[DataTypes::getRelIndex(tempShape,i,j)]=extract<double>(value[i][j]);
248              }             }
249           }          }
250        } else if (value.getrank()==3) {    } else if (value.getrank()==3) {
251       si=tempShape[0];      si=tempShape[0];
252       sj=tempShape[1];      sj=tempShape[1];
253       sk=tempShape[2];      sk=tempShape[2];
254           for (ValueType::size_type i=0;i<si;i++) {          for (ValueType::size_type i=0;i<si;i++) {
255              for (ValueType::size_type j=0;j<sj;j++) {             for (ValueType::size_type j=0;j<sj;j++) {
256                 for (ValueType::size_type k=0;k<sk;k++) {                for (ValueType::size_type k=0;k<sk;k++) {
257                    m_array_data[DataTypes::getRelIndex(tempShape,i,j,k)]=extract<double>(value[i][j][k]);                   m_array_data[DataTypes::getRelIndex(tempShape,i,j,k)]=extract<double>(value[i][j][k]);
258                 }                }
259              }             }
260           }          }
261        } else if (value.getrank()==4) {    } else if (value.getrank()==4) {
262       si=tempShape[0];      si=tempShape[0];
263       sj=tempShape[1];      sj=tempShape[1];
264       sk=tempShape[2];      sk=tempShape[2];
265       sl=tempShape[3];      sl=tempShape[3];
266           for (ValueType::size_type i=0;i<si;i++) {          for (ValueType::size_type i=0;i<si;i++) {
267              for (ValueType::size_type j=0;j<sj;j++) {             for (ValueType::size_type j=0;j<sj;j++) {
268                 for (ValueType::size_type k=0;k<sk;k++) {                for (ValueType::size_type k=0;k<sk;k++) {
269                    for (ValueType::size_type l=0;l<sl;l++) {                   for (ValueType::size_type l=0;l<sl;l++) {
270                       m_array_data[DataTypes::getRelIndex(tempShape,i,j,k,l)]=extract<double>(value[i][j][k][l]);                      m_array_data[DataTypes::getRelIndex(tempShape,i,j,k,l)]=extract<double>(value[i][j][k][l]);
271                    }                   }
272                 }                }
273              }             }
274           }          }
       }  
275     }     }
276       m_size=value.nelements();    // total amount of elements
277       m_dim=m_size;        // elements per sample
278       m_N=1;           // number of samples
279    }
280    
281    
282    

Legend:
Removed from v.1772  
changed lines
  Added in v.1773

  ViewVC Help
Powered by ViewVC 1.1.26