/[escript]/trunk/escript/src/DataTypes.cpp
ViewVC logotype

Diff of /trunk/escript/src/DataTypes.cpp

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

revision 2548 by jfenwick, Mon Jul 20 06:20:06 2009 UTC revision 2635 by jfenwick, Thu Aug 27 04:54:41 2009 UTC
# Line 468  namespace DataTypes Line 468  namespace DataTypes
468    
469     }     }
470    
471    
472       void
473       pointToStream(std::ostream& os, const ValueType::ElementType* data,const ShapeType& shape, int offset, bool needsep, const std::string& sep)
474       {
475          using namespace std;
476          EsysAssert(data!=0, "Error - data is null");
477    //      EsysAssert(data.size()>0,"Error - Data object is empty.");
478          switch (getRank(shape)) {
479          case 0:
480         if (needsep)
481         {
482            os << sep;
483         }
484         else
485         {
486            needsep=true;
487         }
488             os << data[offset];
489             break;
490          case 1:
491             for (int i=0;i<shape[0];i++) {
492            if (needsep)
493            {
494            os << sep;
495            }
496            else
497            {
498            needsep=true;
499            }
500            os << data[i+offset];
501             }
502             break;
503          case 2:
504             for (int i=0;i<shape[0];i++) {
505                for (int j=0;j<shape[1];j++) {
506            if (needsep)
507            {
508                os << sep;
509            }
510            else
511            {
512                needsep=true;
513            }
514                    os << data[offset+getRelIndex(shape,i,j)];
515                }
516             }
517             break;
518          case 3:
519             for (int i=0;i<shape[0];i++) {
520                for (int j=0;j<shape[1];j++) {
521                   for (int k=0;k<shape[2];k++) {
522               if (needsep)
523               {
524                os << sep;
525               }
526               else
527               {
528                needsep=true;
529               }
530                       os << data[offset+getRelIndex(shape,i,j,k)];
531                   }
532                }
533             }
534             break;
535          case 4:
536             for (int i=0;i<shape[0];i++) {
537                for (int j=0;j<shape[1];j++) {
538                   for (int k=0;k<shape[2];k++) {
539                      for (int l=0;l<shape[3];l++) {
540                if (needsep)
541                {
542                    os << sep;
543                }
544                else
545                {
546                    needsep=true;
547                }
548                os << data[offset+getRelIndex(shape,i,j,k,l)];
549                      }
550                   }
551                }
552             }
553             break;
554          default:
555             stringstream mess;
556             os << mess << "Error - (pointToStream) Invalid rank: " << getRank(shape);
557             throw DataException(mess.str());
558          }
559       }
560    
561    
562     std::string     std::string
563     pointToString(const ValueType& data,const ShapeType& shape, int offset, const std::string& prefix)     pointToString(const ValueType& data,const ShapeType& shape, int offset, const std::string& prefix)
564     {     {

Legend:
Removed from v.2548  
changed lines
  Added in v.2635

  ViewVC Help
Powered by ViewVC 1.1.26