/[escript]/branches/split/weipa/src/DataVar.cpp
ViewVC logotype

Diff of /branches/split/weipa/src/DataVar.cpp

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

revision 3037 by caltinay, Mon Jun 14 00:59:30 2010 UTC revision 3092 by caltinay, Fri Aug 13 07:55:03 2010 UTC
# Line 27  Line 27 
27  #include <silo.h>  #include <silo.h>
28  #endif  #endif
29    
30    #include <numeric> // for accumulate
31    
32  using namespace std;  using namespace std;
33    
34  namespace weipa {  namespace weipa {
# Line 471  bool DataVar::reorderSamples() Line 473  bool DataVar::reorderSamples()
473  }  }
474    
475  //  //
476    //
477    //
478    int DataVar::getNumberOfComponents() const
479    {
480        return (rank == 0 ? 1 : accumulate(shape.begin(), shape.end(), 0));
481    }
482    
483    //
484    //
485    //
486    float* DataVar::getDataFlat() const
487    {
488        int totalSize = numSamples * getNumberOfComponents();
489        float* res = new float[totalSize];
490        if (rank == 0) {
491            copy(dataArray[0], dataArray[0]+numSamples, res);
492        } else if (rank == 1) {
493            float *dest = res;
494            for (size_t c=0; c<numSamples; c++) {
495                for (size_t i=0; i<shape[0]; i++) {
496                    *dest++ = dataArray[i][c];
497                }
498            }
499        } else if (rank == 2) {
500            float *dest = res;
501            for (size_t c=0; c<numSamples; c++) {
502                for (int i=0; i<shape[1]; i++) {
503                    for (int j=0; j<shape[0]; j++) {
504                        *dest++ = dataArray[i*shape[0]+j][c];
505                    }
506                }
507            }
508        }
509    
510        return res;
511    }
512    
513    //
514  //  //
515  //  //
516  void DataVar::sampleToStream(ostream& os, int index)  void DataVar::sampleToStream(ostream& os, int index)

Legend:
Removed from v.3037  
changed lines
  Added in v.3092

  ViewVC Help
Powered by ViewVC 1.1.26