Data.cpp File Reference
`#include "Data.h"`
`#include "AbstractContinuousDomain.h"`
`#include "DataConstant.h"`
`#include "DataEmpty.h"`
`#include "DataExpanded.h"`
`#include "DataLazy.h"`
`#include "DataTagged.h"`
`#include "EscriptParams.h"`
`#include "FunctionSpaceException.h"`
`#include "FunctionSpaceFactory.h"`
`#include "BinaryDataReadyOps.h"`
`#include <algorithm>`
`#include <fstream>`
`#include <functional>`
`#include <sstream>`
`#include <vector>`
`#include <iostream>`
`#include <boost/python/dict.hpp>`
`#include <boost/python/extract.hpp>`
`#include <boost/python/long.hpp>`
`#include "WrappedArray.h"`

## Macros

#define | THROWONCOMPLEX if (m_data->isComplex()){throw DataException("Operation does not support complex objects");}
#define | THROWONCOMPLEXA(Z) if (Z.isComplex()){throw DataException("Operation does not support complex objects");}
#define | AUTOLAZYON escriptParams.getAutoLazy()
#define | MAKELAZYOP(X)
#define | MAKELAZYOPOFF(X, Y)
#define | MAKELAZYOP2(X, Y, Z)
#define | MAKELAZYBINSELF(R, X)
#define | MAKELAZYBIN(R, X)
#define | MAKELAZYBIN2(L, R, X)
#define | CHECK_DO_CRES escriptParams.getResolveCollective()

## Macro Definition Documentation

## AUTOLAZYON

#define AUTOLAZYON escriptParams.getAutoLazy()

## CHECK_DO_CRES

#define CHECK_DO_CRES escriptParams.getResolveCollective()

## MAKELAZYBIN

#define MAKELAZYBIN | ( |  | R,
|  |  | X
| ) |  |

Value:
do {\
if (isLazy() || R.isLazy() || (AUTOLAZYON && (isExpanded() || R.isExpanded()))) \
{\
DataLazy* c=new DataLazy(m_data,R.borrowDataPtr(),X);\
return Data(c);\
}\
}while(0)
AUTOLAZYON
#define AUTOLAZYON
Definition: Data.cpp:62
escript::DataLazy
Wraps an expression tree of other DataObjects. The data will be evaluated when required.
Definition: DataLazy.h:49
escript::Data
Data represents a collection of datapoints.
Definition: Data.h:64

## MAKELAZYBIN2

#define MAKELAZYBIN2 | ( |  | L,
|  |  | R,
|  |  | X
| ) |  |

Value:
do {\
if (L.isLazy() || R.isLazy() || (AUTOLAZYON && (L.isExpanded() || R.isExpanded()))) \
{\
/* if (L.isComplex() || R.isComplex()) \
{\
throw DataException("Lazy operations on complex not supported yet");\
}\
*/ DataLazy* c=new DataLazy(L.borrowDataPtr(),R.borrowDataPtr(),X);\
return Data(c);\
}\
}while(0)

## MAKELAZYBINSELF

#define MAKELAZYBINSELF | ( |  | R,
|  |  | X
| ) |  |

Value:
do {\
if (isLazy() || R.isLazy() || (AUTOLAZYON && (isExpanded() || R.isExpanded()))) \
{\
DataLazy* c=new DataLazy(m_data,R.borrowDataPtr(),X);\
/* m_data=c->getPtr();*/ set_m_data(c->getPtr());\
return (*this);\
}\
}while(0)

## MAKELAZYOP

#define MAKELAZYOP | ( |  | X | ) |

Value:
do {\
if (isLazy() || (AUTOLAZYON && m_data->isExpanded())) \
{\
DataLazy* c=new DataLazy(borrowDataPtr(),X);\
return Data(c);\
}\
}while(0)

## MAKELAZYOP2

#define MAKELAZYOP2 | ( |  | X,
|  |  | Y,
|  |  | Z
| ) |  |

Value:
do {\
if (isLazy() || (AUTOLAZYON && m_data->isExpanded())) \
{\
DataLazy* c=new DataLazy(borrowDataPtr(),X,Y,Z);\
return Data(c);\
}\
}while(0)

## MAKELAZYOPOFF

#define MAKELAZYOPOFF | ( |  | X,
|  |  | Y
| ) |  |

Value:
do {\
if (isLazy() || (AUTOLAZYON && m_data->isExpanded())) \
{\
DataLazy* c=new DataLazy(borrowDataPtr(),X,Y);\
return Data(c);\
}\
}while(0)

## THROWONCOMPLEX

#define THROWONCOMPLEX if (m_data->isComplex()){throw DataException("Operation does not support complex objects");}

## THROWONCOMPLEXA

#define THROWONCOMPLEXA | ( |  | Z | ) | if (Z.isComplex()){throw DataException("Operation does not support complex objects");}