/[escript]/branches/clazy/escriptcore/src/DataLazy.cpp
ViewVC logotype

Diff of /branches/clazy/escriptcore/src/DataLazy.cpp

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

revision 6056 by jfenwick, Thu Mar 10 04:29:53 2016 UTC revision 6057 by jfenwick, Thu Mar 10 06:00:58 2016 UTC
# Line 991  DataLazy::collapse() const Line 991  DataLazy::collapse() const
991    m_op=IDENTITY;    m_op=IDENTITY;
992  }  }
993    
   
   
   
   
   
 #define PROC_OP(TYPE,X)                               \  
         for (int j=0;j<onumsteps;++j)\  
         {\  
           for (int i=0;i<numsteps;++i,resultp+=resultStep) \  
           { \  
 LAZYDEBUG(cout << "[left,right]=[" << lroffset << "," << rroffset << "]" << endl;)\  
 LAZYDEBUG(cout << "{left,right}={" << (*left)[lroffset] << "," << (*right)[rroffset] << "}\n";)\  
              tensor_binary_operation< TYPE >(chunksize, &((*left)[lroffset]), &((*right)[rroffset]), resultp, X); \  
 LAZYDEBUG(cout << " result=      " << resultp[0] << endl;) \  
              lroffset+=leftstep; \  
              rroffset+=rightstep; \  
           }\  
           lroffset+=oleftstep;\  
           rroffset+=orightstep;\  
         }  
   
   
994  // The result will be stored in m_samples  // The result will be stored in m_samples
995  // The return value is a pointer to the DataVector, offset is the offset within the return value  // The return value is a pointer to the DataVector, offset is the offset within the return value
996  const DataTypes::RealVectorType*  const DataTypes::RealVectorType*
# Line 1570  LAZYDEBUG(cout << "Right res["<< rroffse Line 1548  LAZYDEBUG(cout << "Right res["<< rroffse
1548               escript::ESFunction::PLUSF);                 escript::ESFunction::PLUSF);  
1549          break;          break;
1550      case SUB:      case SUB:
1551          PROC_OP(NO_ARG,minus<double>());        DataMaths::binaryOpVectorLazyHelper<real_t, real_t, real_t>(resultp,
1552                 &(*left)[0],
1553                 &(*right)[0],
1554                 chunksize,
1555                 onumsteps,
1556                 numsteps,
1557                 resultStep,
1558                 leftstep,
1559                 rightstep,
1560                 oleftstep,
1561                 orightstep,
1562                 lroffset,
1563                 rroffset,
1564                 escript::ESFunction::MINUSF);        
1565            //PROC_OP(NO_ARG,minus<double>());
1566          break;          break;
1567      case MUL:      case MUL:
1568          PROC_OP(NO_ARG,multiplies<double>());          //PROC_OP(NO_ARG,multiplies<double>());
1569          DataMaths::binaryOpVectorLazyHelper<real_t, real_t, real_t>(resultp,
1570                 &(*left)[0],
1571                 &(*right)[0],
1572                 chunksize,
1573                 onumsteps,
1574                 numsteps,
1575                 resultStep,
1576                 leftstep,
1577                 rightstep,
1578                 oleftstep,
1579                 orightstep,
1580                 lroffset,
1581                 rroffset,
1582                 escript::ESFunction::MULTIPLIESF);      
1583          break;          break;
1584      case DIV:      case DIV:
1585          PROC_OP(NO_ARG,divides<double>());          //PROC_OP(NO_ARG,divides<double>());
1586          DataMaths::binaryOpVectorLazyHelper<real_t, real_t, real_t>(resultp,
1587                 &(*left)[0],
1588                 &(*right)[0],
1589                 chunksize,
1590                 onumsteps,
1591                 numsteps,
1592                 resultStep,
1593                 leftstep,
1594                 rightstep,
1595                 oleftstep,
1596                 orightstep,
1597                 lroffset,
1598                 rroffset,
1599                 escript::ESFunction::DIVIDESF);          
1600          break;          break;
1601      case POW:      case POW:
1602         PROC_OP(double (double,double),::pow);         //PROC_OP(double (double,double),::pow);
1603          DataMaths::binaryOpVectorLazyHelper<real_t, real_t, real_t>(resultp,
1604                 &(*left)[0],
1605                 &(*right)[0],
1606                 chunksize,
1607                 onumsteps,
1608                 numsteps,
1609                 resultStep,
1610                 leftstep,
1611                 rightstep,
1612                 oleftstep,
1613                 orightstep,
1614                 lroffset,
1615                 rroffset,
1616                 escript::ESFunction::POWF);          
1617          break;          break;
1618      default:      default:
1619          throw DataException("Programmer error - resolveBinary can not resolve operator "+opToString(m_op)+".");          throw DataException("Programmer error - resolveBinary can not resolve operator "+opToString(m_op)+".");

Legend:
Removed from v.6056  
changed lines
  Added in v.6057

  ViewVC Help
Powered by ViewVC 1.1.26