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

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

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

revision 2005 by jfenwick, Mon Nov 10 01:21:39 2008 UTC revision 2037 by jfenwick, Thu Nov 13 06:17:12 2008 UTC
# Line 1585  Data::infWorker() const Line 1585  Data::infWorker() const
1585  Data  Data
1586  Data::maxval() const  Data::maxval() const
1587  {  {
1588      if (isLazy())
1589      {
1590        Data temp(*this);   // to get around the fact that you can't resolve a const Data
1591        temp.resolve();
1592        return temp.maxval();
1593      }
1594    //    //
1595    // set the initial maximum value to min possible double    // set the initial maximum value to min possible double
1596    FMax fmax_func;    FMax fmax_func;
# Line 1594  Data::maxval() const Line 1600  Data::maxval() const
1600  Data  Data
1601  Data::minval() const  Data::minval() const
1602  {  {
1603      if (isLazy())
1604      {
1605        Data temp(*this);   // to get around the fact that you can't resolve a const Data
1606        temp.resolve();
1607        return temp.minval();
1608      }
1609    //    //
1610    // set the initial minimum value to max possible double    // set the initial minimum value to max possible double
1611    FMin fmin_func;    FMin fmin_func;
# Line 1662  Data::symmetric() const Line 1674  Data::symmetric() const
1674       }       }
1675       if (isLazy())       if (isLazy())
1676       {       {
1677      Data temp(*this);   // to get around the fact that you can't resolve a const Data      DataLazy* c=new DataLazy(borrowDataPtr(),SYM);
1678      temp.resolve();      return Data(c);
     return temp.symmetric();  
1679       }       }
1680       Data ev(0.,getDataPointShape(),getFunctionSpace());       Data ev(0.,getDataPointShape(),getFunctionSpace());
1681       ev.typeMatchRight(*this);       ev.typeMatchRight(*this);
# Line 1677  Data::nonsymmetric() const Line 1688  Data::nonsymmetric() const
1688  {  {
1689       if (isLazy())       if (isLazy())
1690       {       {
1691      Data temp(*this);   // to get around the fact that you can't resolve a const Data      DataLazy* c=new DataLazy(borrowDataPtr(),NSYM);
1692      temp.resolve();      return Data(c);
     return temp.nonsymmetric();  
1693       }       }
1694       // check input       // check input
1695       DataTypes::ShapeType s=getDataPointShape();       DataTypes::ShapeType s=getDataPointShape();
# Line 1712  Data::nonsymmetric() const Line 1722  Data::nonsymmetric() const
1722       }       }
1723  }  }
1724    
1725    
1726    // Doing a lazy version of this would require some thought.
1727    // First it needs a parameter (which DataLazy doesn't support at the moment).
1728    // (secondly although it does not apply to trace) we can't handle operations which return
1729    // multiple results (like eigenvectors_values) or return values of different shapes to their input
1730    // (like eigenvalues).
1731  Data  Data
1732  Data::trace(int axis_offset) const  Data::trace(int axis_offset) const
1733  {  {

Legend:
Removed from v.2005  
changed lines
  Added in v.2037

  ViewVC Help
Powered by ViewVC 1.1.26