escript
Revision_
|
Wraps an expression tree of other DataObjects. The data will be evaluated when required. More...
#include <DataLazy.h>
Public Member Functions | |
DataLazy (DataAbstract_ptr p) | |
Create an IDENTITY DataLazy for the given DataAbstract. More... | |
DataLazy (DataAbstract_ptr left, ES_optype op) | |
Produce a DataLazy for a unary operation. More... | |
DataLazy (DataAbstract_ptr left, ES_optype op, double tol) | |
Produce a DataLazy for a unary operation. More... | |
DataLazy (DataAbstract_ptr left, ES_optype op, int axis_offset) | |
Produce a DataLazy for a unary operation which requires a parameter. More... | |
DataLazy (DataAbstract_ptr left, DataAbstract_ptr right, ES_optype op) | |
Produce a DataLazy for a binary operation. More... | |
DataLazy (DataAbstract_ptr left, DataAbstract_ptr right, ES_optype op, int axis_offset, int transpose) | |
Produce a DataLazy for a binary operation with additional paramters. More... | |
DataLazy (DataAbstract_ptr left, ES_optype op, const int axis0, const int axis1) | |
Produce a DataLazy for a unary operation which requires two integer parameters. More... | |
DataLazy (DataAbstract_ptr mask, DataAbstract_ptr left, DataAbstract_ptr right) | |
Produce a DataLazy for a unary operation which requires two integer parameters. More... | |
~DataLazy () | |
DataReady_ptr | resolve () |
Evaluate the lazy expression. More... | |
std::string | toString () const |
Write the data as a string. More... | |
DataAbstract * | deepCopy () const |
Return a deep copy of the current object. More... | |
DataTypes::RealVectorType::size_type | getLength () const |
This method throws an exception. It does not really make sense to ask this question of lazy data. More... | |
DataAbstract * | getSlice (const DataTypes::RegionType ®ion) const |
Return the given slice from this object. More... | |
DataTypes::RealVectorType::size_type | getPointOffset (int sampleNo, int dataPointNo) const |
Return the offset for the given sample. This returns the offset for the given point into the container holding the point data. More... | |
DataTypes::RealVectorType::size_type | getPointOffset (int sampleNo, int dataPointNo) |
size_t | getMaxSampleSize () const |
const DataTypes::RealVectorType * | resolveSample (int sampleNo, size_t &roffset) const |
Compute the value of the expression for the given sample. More... | |
bool | actsExpanded () const |
if resolve() was called would it produce expanded data. More... | |
virtual void | setToZero () |
Produces an IDENTITY DataLazy containing zero. The result will have the same shape and functionspace as before. More... | |
void | resolveGroupWorker (std::vector< DataLazy *> &dats) |
![]() | |
DataAbstract_ptr | getPtr () |
Return shared pointer managing this object. More... | |
const_DataAbstract_ptr | getPtr () const |
DataAbstract (const FunctionSpace &what, const ShapeType &shape, bool isDataEmpty=false, bool isCplx=false) | |
Constructor for DataAbstract. More... | |
virtual | ~DataAbstract () |
Destructor for DataAbstract. More... | |
virtual void | dump (const std::string fileName) const |
dumps the object into a netCDF file More... | |
int | getNumDPPSample () const |
Return the number of data points per sample. More... | |
int | getNumSamples () const |
Return the number of samples. More... | |
bool | hasNoSamples () const |
const DataTypes::ShapeType & | getShape () const |
Return the shape information for the point data. More... | |
unsigned int | getRank () const |
Return the rank information for the point data. More... | |
virtual DataTypes::real_t * | getSampleDataByTag (int tag, DataTypes::real_t dummy=0) |
Return the real sample data for the given tag key. NB: If the data isn't tagged an exception will be thrown. More... | |
virtual DataTypes::cplx_t * | getSampleDataByTag (int tag, DataTypes::cplx_t dummy) |
Return the complex sample data for the given tag key. NB: If the data isn't tagged an exception will be thrown. More... | |
virtual size_t | getTagCount () const |
Return number of tagged values stored in the data object. More... | |
void | operandCheck (const DataAbstract &right) const |
Check this and the given RHS operands are compatible. Throws an exception if they aren't. More... | |
bool | validSamplePointNo (int samplePointNo) const |
Return true if a valid sample point number. More... | |
bool | validSampleNo (int sampleNo) const |
Return true if a valid sample number. More... | |
const FunctionSpace & | getFunctionSpace () const |
Return the function space associated with this Data object. More... | |
virtual void | setTaggedValue (int tagKey, const DataTypes::ShapeType &pointshape, const DataTypes::RealVectorType &value, int dataOffset=0) |
setTaggedValue More... | |
virtual void | setTaggedValue (int tagKey, const DataTypes::ShapeType &pointshape, const DataTypes::CplxVectorType &value, int dataOffset=0) |
virtual void | copyToDataPoint (const int sampleNo, const int dataPointNo, const DataTypes::real_t value) |
Copy a double value to the data point dataPointNo of sample sampleNo in this object. More... | |
virtual void | copyToDataPoint (const int sampleNo, const int dataPointNo, const DataTypes::cplx_t value) |
virtual void | copyToDataPoint (const int sampleNo, const int dataPointNo, const WrappedArray &value) |
Copy the array object to the data point dataPointNo of sample sampleNo in this object. More... | |
virtual int | getTagNumber (int dpno) |
Return the tag number associated with the given data-point number. More... | |
virtual void | symmetric (DataAbstract *ev) |
Computes a symmetric matrix (A + AT) / 2. More... | |
virtual void | antisymmetric (DataAbstract *ev) |
Computes a antisymmetric matrix (A - AT) / 2. More... | |
virtual void | hermitian (DataAbstract *ev) |
Computes a symmetric matrix (A + A*) / 2. More... | |
virtual void | antihermitian (DataAbstract *ev) |
Computes a antisymmetric matrix (A - A*) / 2. More... | |
virtual void | trace (DataAbstract *ev, int axis_offset) |
Computes the trace of a matrix. More... | |
virtual void | transpose (DataAbstract *ev, int axis_offset) |
Transpose each data point of this Data object around the given axis. More... | |
virtual void | swapaxes (DataAbstract *ev, int axis0, int axis1) |
swaps components axis0 and axis1 More... | |
virtual void | eigenvalues (DataAbstract *ev) |
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev More... | |
virtual int | matrixInverse (DataAbstract *out) const |
invert square matricies More... | |
virtual void | eigenvalues_and_eigenvectors (DataAbstract *ev, DataAbstract *V, const double tol=1.e-13) |
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev and eigenvectors V More... | |
virtual void | reorderByReferenceIDs (DataTypes::dim_t *reference_ids) |
reorders data sample ordered by reference_ids to the ordering of the functions space More... | |
unsigned int | getNoValues () const |
Return the number of values in the shape for this object. More... | |
bool | isLazy () const |
virtual bool | isConstant () const |
virtual bool | isExpanded () const |
virtual bool | isTagged () const |
bool | isEmpty () const |
bool | isComplex () const |
true if the components of datapoints are complex More... | |
virtual void | complicate () |
Private Types | |
typedef DataAbstract | parent |
typedef DataTypes::ShapeType | ShapeType |
Private Member Functions | |
void | LazyNodeSetup () |
const DataTypes::RealVectorType * | resolveNodeUnary (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeReduction (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeSample (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeBinary (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeNP1OUT (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeNP1OUT_P (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeTProd (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeNP1OUT_2P (int tid, int sampleNo, size_t &roffset) const |
const DataTypes::RealVectorType * | resolveNodeCondEval (int tid, int sampleNo, size_t &roffset) const |
void | intoString (std::ostringstream &oss) const |
void | intoTreeString (std::ostringstream &oss, std::string indent) const |
void | collapse () const |
Converts the DataLazy into an IDENTITY storing the value of the expression. This method uses the original methods on the Data class to evaluate the expressions. For this reason, it should not be used on DataExpanded instances. (To do so would defeat the purpose of using DataLazy in the first place). More... | |
DataReady_ptr | collapseToReady () const |
Evaluates the expression using methods on Data. This does the work for the collapse method. For reasons of efficiency do not call this method on DataExpanded nodes. More... | |
void | resolveToIdentity () |
resolve the expression can store it in the current node The current node will be converted to an identity node. More... | |
void | makeIdentity (const DataReady_ptr &p) |
helper method for resolveToIdentity and the identity constructor More... | |
DataReady_ptr | resolveNodeWorker () |
resolve to a ReadyData object using storage at nodes More... | |
Private Attributes | |
DataReady_ptr | m_id |
DataLazy_ptr | m_left |
DataLazy_ptr | m_right |
DataLazy_ptr | m_mask |
ES_optype | m_op |
size_t | m_samplesize |
char | m_readytype |
int | m_axis_offset |
int | m_transpose |
int | m_SL |
int | m_SM |
int | m_SR |
double | m_tol |
size_t | m_children |
size_t | m_height |
int * | m_sampleids |
DataTypes::RealVectorType | m_samples |
Additional Inherited Members | |
![]() | |
typedef DataTypes::ShapeType | ShapeType |
![]() | |
int | m_noSamples |
int | m_noDataPointsPerSample |
bool | m_iscompl |
Wraps an expression tree of other DataObjects. The data will be evaluated when required.
NOTE: This class assumes that the Data being pointed at are immutable.
|
private |
|
private |
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | p | ) |
Create an IDENTITY DataLazy for the given DataAbstract.
p | DataAbstract to be wrapped. |
DataException | if p is lazy data or it is not constant, tagged or expanded. |
References LAZYDEBUG, m_id, m_samplesize, and makeIdentity().
Referenced by DataLazy(), and deepCopy().
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | left, |
ES_optype | op | ||
) |
Produce a DataLazy for a unary operation.
left | DataAbstract to be operated on. |
op | unary operation to perform. |
DataException | if op is not a unary operation or if p cannot be converted to a DataLazy. Note that IDENTITY is not considered a unary operation. |
References DataLazy(), escript::G_NP1OUT, escript::G_REDUCTION, escript::G_UNARY, escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::getOpgroup(), LazyNodeSetup(), m_children, m_height, m_left, m_readytype, m_samplesize, and SIZELIMIT.
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | left, |
ES_optype | op, | ||
double | tol | ||
) |
Produce a DataLazy for a unary operation.
left | DataAbstract to be operated on. |
op | unary operation to perform. |
tol | tolerance for operation |
DataException | if op is not a unary operation or if p cannot be converted to a DataLazy. Note that IDENTITY is not considered a unary operation. |
References DataLazy(), escript::G_UNARY_P, escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::getOpgroup(), LAZYDEBUG, LazyNodeSetup(), m_children, m_height, m_left, m_readytype, m_samplesize, and SIZELIMIT.
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | left, |
ES_optype | op, | ||
int | axis_offset | ||
) |
Produce a DataLazy for a unary operation which requires a parameter.
left | DataAbstract to be operated on. |
op | unary operation to perform. |
axis_offset | the parameter for the operation |
DataException | if op is not a unary operation or if p cannot be converted to a DataLazy. Note that IDENTITY is not considered a unary operation. |
References DataLazy(), escript::G_NP1OUT_P, escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::getOpgroup(), LAZYDEBUG, LazyNodeSetup(), m_children, m_height, m_left, m_readytype, m_samplesize, and SIZELIMIT.
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | left, |
DataAbstract_ptr | right, | ||
ES_optype | op | ||
) |
Produce a DataLazy for a binary operation.
left | left operand |
right | right operand |
op | unary operation to perform. |
DataException | if op is not a binary operation or if left or right cannot be converted to a DataLazy. |
References escript::Data::borrowDataPtr(), DataLazy(), escript::G_BINARY, escript::DataAbstract::getFunctionSpace(), escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::getOpgroup(), LAZYDEBUG, LazyNodeSetup(), m_children, m_height, m_left, m_readytype, m_right, m_samplesize, and SIZELIMIT.
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | left, |
DataAbstract_ptr | right, | ||
ES_optype | op, | ||
int | axis_offset, | ||
int | transpose | ||
) |
Produce a DataLazy for a binary operation with additional paramters.
left | left operand |
right | right operand |
op | unary operation to perform. |
axis_offset | |
transpose |
DataException | if op is not a binary operation requiring parameters or if left or right cannot be converted to a DataLazy. |
References escript::Data::borrowDataPtr(), DataLazy(), escript::G_TENSORPROD, escript::DataAbstract::getFunctionSpace(), escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::getOpgroup(), LAZYDEBUG, LazyNodeSetup(), m_children, m_height, m_left, m_readytype, m_right, m_samplesize, and SIZELIMIT.
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | left, |
ES_optype | op, | ||
const int | axis0, | ||
const int | axis1 | ||
) |
Produce a DataLazy for a unary operation which requires two integer parameters.
left | DataAbstract to be operated on. |
op | unary operation to perform. |
axis0 | the first parameter for the operation |
axis1 | the second parameter for the operation |
DataException | if op is not a unary operation or if p cannot be converted to a DataLazy. Note that IDENTITY is not considered a unary operation. |
References DataLazy(), escript::G_NP1OUT_2P, escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::getOpgroup(), LAZYDEBUG, LazyNodeSetup(), m_children, m_height, m_left, m_readytype, m_samplesize, and SIZELIMIT.
escript::DataLazy::DataLazy | ( | DataAbstract_ptr | mask, |
DataAbstract_ptr | left, | ||
DataAbstract_ptr | right | ||
) |
Produce a DataLazy for a unary operation which requires two integer parameters.
mask | scalar mask to select values. |
left | DataAbstract to use for true mask. |
right | DataAbstract to use for false mask. |
References DataLazy(), escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), LAZYDEBUG, LazyNodeSetup(), m_children, m_height, m_left, m_mask, m_readytype, m_right, m_samplesize, and SIZELIMIT.
escript::DataLazy::~DataLazy | ( | ) |
References m_sampleids.
|
virtual |
if resolve() was called would it produce expanded data.
Reimplemented from escript::DataAbstract.
References m_readytype.
|
private |
Converts the DataLazy into an IDENTITY storing the value of the expression. This method uses the original methods on the Data class to evaluate the expressions. For this reason, it should not be used on DataExpanded instances. (To do so would defeat the purpose of using DataLazy in the first place).
References collapseToReady(), escript::IDENTITY, m_id, m_op, and m_readytype.
Referenced by getPointOffset(), resolveNodeSample(), and resolveNodeWorker().
|
private |
Evaluates the expression using methods on Data. This does the work for the collapse method. For reasons of efficiency do not call this method on DataExpanded nodes.
References escript::ABS, escript::Data::abs(), escript::ACOS, escript::Data::acos(), escript::ACOSH, escript::Data::acosh(), escript::ADD, escript::Data::antisymmetric(), escript::ASIN, escript::Data::asin(), escript::ASINH, escript::Data::asinh(), escript::ATAN, escript::Data::atan(), escript::ATANH, escript::Data::atanh(), escript::C_GeneralTensorProduct(), escript::COS, escript::Data::cos(), escript::COSH, escript::Data::cosh(), escript::DIV, escript::ERF, escript::Data::erf(), escript::EXP, escript::Data::exp(), escript::EZ, escript::G_BINARY, escript::G_TENSORPROD, escript::getOpgroup(), escript::GEZ, escript::GZ, escript::HER, escript::Data::hermitian(), escript::IDENTITY, escript::LEZ, escript::LOG, escript::Data::log(), escript::LOG10, escript::Data::log10(), escript::LZ, m_axis_offset, m_id, m_left, m_op, m_readytype, m_right, m_tol, m_transpose, escript::MAXVAL, escript::MINVAL, escript::Data::minval(), escript::MUL, escript::NEG, escript::Data::neg(), escript::NEZ, escript::NSYM, escript::Data::oneOver(), escript::opToString(), escript::POS, escript::PROD, escript::RECIP, escript::SIGN, escript::Data::sign(), escript::SIN, escript::Data::sin(), escript::SINH, escript::Data::sinh(), escript::SQRT, escript::Data::sqrt(), escript::SUB, escript::SWAP, escript::Data::swapaxes(), escript::SYM, escript::Data::symmetric(), escript::TAN, escript::Data::tan(), escript::TANH, escript::Data::tanh(), escript::TRACE, escript::Data::trace(), escript::TRANS, escript::Data::transpose(), escript::Data::whereNegative(), escript::Data::whereNonNegative(), escript::Data::whereNonPositive(), escript::Data::whereNonZero(), escript::Data::wherePositive(), and escript::Data::whereZero().
Referenced by collapse().
|
virtual |
Return a deep copy of the current object.
Implements escript::DataAbstract.
References DataLazy(), escript::G_BINARY, escript::G_IDENTITY, escript::G_NP1OUT, escript::G_NP1OUT_2P, escript::G_NP1OUT_P, escript::G_REDUCTION, escript::G_TENSORPROD, escript::G_UNARY, escript::G_UNARY_P, escript::getOpgroup(), m_axis_offset, m_id, m_left, m_op, m_right, m_tol, m_transpose, and escript::opToString().
|
virtual |
This method throws an exception. It does not really make sense to ask this question of lazy data.
Implements escript::DataAbstract.
size_t escript::DataLazy::getMaxSampleSize | ( | ) | const |
|
virtual |
Return the offset for the given sample. This returns the offset for the given point into the container holding the point data.
sampleNo | - Input - sample number. |
dataPointNo | - Input - data point number. |
Implements escript::DataAbstract.
References escript::IDENTITY, m_id, m_left, m_op, m_readytype, and m_right.
DataTypes::RealVectorType::size_type escript::DataLazy::getPointOffset | ( | int | sampleNo, |
int | dataPointNo | ||
) |
References collapse(), escript::IDENTITY, m_id, m_left, m_op, m_readytype, and m_right.
|
virtual |
Return the given slice from this object.
NB: The caller is responsible for managing the object created.
Implements escript::DataAbstract.
|
private |
Does the work for toString.
References escript::G_BINARY, escript::G_CONDEVAL, escript::G_IDENTITY, escript::G_NP1OUT, escript::G_NP1OUT_2P, escript::G_NP1OUT_P, escript::G_REDUCTION, escript::G_TENSORPROD, escript::G_UNARY, escript::G_UNARY_P, escript::getOpgroup(), m_axis_offset, m_id, m_left, m_mask, m_op, m_right, m_transpose, and escript::opToString().
Referenced by toString().
|
private |
References escript::G_BINARY, escript::G_IDENTITY, escript::G_NP1OUT, escript::G_NP1OUT_2P, escript::G_NP1OUT_P, escript::G_REDUCTION, escript::G_TENSORPROD, escript::G_UNARY, escript::G_UNARY_P, escript::getOpgroup(), m_axis_offset, m_id, m_left, m_op, escript::DataAbstract::m_rank, m_right, m_samplesize, m_transpose, and escript::opToString().
Referenced by toString().
|
private |
Allocates sample storage at each node
Referenced by DataLazy().
|
private |
helper method for resolveToIdentity and the identity constructor
References escript::IDENTITY, m_axis_offset, m_children, m_height, m_id, m_left, m_op, m_readytype, m_right, m_samplesize, m_SL, m_SM, m_SR, and m_transpose.
Referenced by DataLazy(), and resolveToIdentity().
|
virtual |
Evaluate the lazy expression.
Implements escript::DataAbstract.
References m_id, and resolveToIdentity().
void escript::DataLazy::resolveGroupWorker | ( | std::vector< DataLazy *> & | dats | ) |
|
private |
References escript::ADD, escript::DIV, LAZYDEBUG, m_left, m_op, m_right, m_samples, m_samplesize, escript::MUL, escript::opToString(), escript::POW, escript::DataTypes::shapeToString(), escript::SUB, and toString().
Referenced by resolveNodeSample().
|
private |
References escript::CONDEVAL, m_left, m_mask, m_op, m_readytype, m_right, m_samples, and m_samplesize.
Referenced by resolveNodeSample().
|
private |
References escript::antisymmetric(), escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getShape(), escript::IDENTITY, m_left, m_op, m_readytype, m_samples, m_samplesize, escript::NSYM, escript::opToString(), escript::SYM, and escript::symmetric().
Referenced by resolveNodeSample().
|
private |
References escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getShape(), escript::IDENTITY, m_axis_offset, m_left, m_op, m_readytype, m_samples, m_samplesize, m_transpose, escript::opToString(), escript::SWAP, and escript::swapaxes().
Referenced by resolveNodeSample().
|
private |
References escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getShape(), escript::IDENTITY, m_axis_offset, m_left, m_op, m_readytype, m_samples, m_samplesize, escript::opToString(), escript::TRACE, escript::trace(), escript::TRANS, and escript::transpose().
Referenced by resolveNodeSample().
|
private |
|
private |
References collapse(), escript::G_BINARY, escript::G_CONDEVAL, escript::G_NP1OUT, escript::G_NP1OUT_2P, escript::G_NP1OUT_P, escript::G_REDUCTION, escript::G_TENSORPROD, escript::G_UNARY, escript::G_UNARY_P, escript::getOpgroup(), escript::IDENTITY, LAZYDEBUG, m_id, m_op, m_readytype, m_sampleids, m_samples, m_samplesize, escript::opToString(), resolveNodeBinary(), resolveNodeCondEval(), resolveNodeNP1OUT(), resolveNodeNP1OUT_2P(), resolveNodeNP1OUT_P(), resolveNodeReduction(), resolveNodeTProd(), resolveNodeUnary(), and toString().
Referenced by resolveNodeWorker(), and resolveSample().
|
private |
References escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getShape(), LAZYDEBUG, m_left, m_op, m_right, m_samples, m_samplesize, m_SL, m_SM, m_SR, m_transpose, escript::matrix_matrix_product(), escript::opToString(), escript::DataTypes::pointToString(), escript::PROD, escript::DataTypes::shapeToString(), and toString().
Referenced by resolveNodeSample().
|
private |
References escript::IDENTITY, m_left, m_op, m_readytype, m_samples, m_samplesize, m_tol, escript::POS, and escript::tensor_unary_array_operation().
Referenced by resolveNodeSample().
|
private |
resolve to a ReadyData object using storage at nodes
References collapse(), escript::DataAbstract::getFunctionSpace(), escript::DataAbstract::getNoValues(), escript::getNumberOfThreads(), escript::DataAbstract::getNumSamples(), escript::DataExpanded::getPointOffset(), escript::DataAbstract::getShape(), escript::DataExpanded::getVectorRW(), escript::IDENTITY, LAZYDEBUG, m_id, m_op, m_readytype, m_samplesize, and resolveNodeSample().
Referenced by resolveToIdentity().
const DataTypes::RealVectorType * escript::DataLazy::resolveSample | ( | int | sampleNo, |
size_t & | roffset | ||
) | const |
Compute the value of the expression for the given sample.
sampleNo | Sample number to evaluate. |
roffset | (output parameter) the offset in the return vector where the result begins. |
The return value will be an existing vector so do not deallocate it.
References resolveNodeSample().
Referenced by escript::Data::getSampleDataRO(), and escript::Data::lazyAlgWorker().
|
private |
resolve the expression can store it in the current node The current node will be converted to an identity node.
References escript::IDENTITY, m_op, makeIdentity(), and resolveNodeWorker().
Referenced by resolve().
|
virtual |
Produces an IDENTITY DataLazy containing zero. The result will have the same shape and functionspace as before.
Reimplemented from escript::DataAbstract.
|
virtual |
Write the data as a string.
Implements escript::DataAbstract.
References escript::escriptParams, escript::EscriptParams::getLazyStrFmt(), intoString(), intoTreeString(), and m_height.
Referenced by resolveNodeBinary(), resolveNodeSample(), and resolveNodeTProd().
|
private |
Referenced by collapseToReady(), deepCopy(), intoString(), intoTreeString(), makeIdentity(), resolveNodeNP1OUT_2P(), and resolveNodeNP1OUT_P().
|
private |
Referenced by DataLazy(), and makeIdentity().
|
private |
Referenced by DataLazy(), makeIdentity(), and toString().
|
mutableprivate |
Referenced by collapse(), collapseToReady(), DataLazy(), deepCopy(), getPointOffset(), intoString(), intoTreeString(), makeIdentity(), resolve(), resolveNodeSample(), and resolveNodeWorker().
|
mutableprivate |
Referenced by collapseToReady(), DataLazy(), deepCopy(), getPointOffset(), intoString(), intoTreeString(), makeIdentity(), resolveNodeBinary(), resolveNodeCondEval(), resolveNodeNP1OUT(), resolveNodeNP1OUT_2P(), resolveNodeNP1OUT_P(), resolveNodeReduction(), resolveNodeTProd(), and resolveNodeUnary().
|
mutableprivate |
Referenced by DataLazy(), intoString(), and resolveNodeCondEval().
|
mutableprivate |
Referenced by collapse(), collapseToReady(), deepCopy(), getPointOffset(), intoString(), intoTreeString(), makeIdentity(), resolveGroupWorker(), resolveNodeBinary(), resolveNodeCondEval(), resolveNodeNP1OUT(), resolveNodeNP1OUT_2P(), resolveNodeNP1OUT_P(), resolveNodeReduction(), resolveNodeSample(), resolveNodeTProd(), resolveNodeUnary(), resolveNodeWorker(), and resolveToIdentity().
|
private |
Referenced by actsExpanded(), collapse(), collapseToReady(), DataLazy(), getPointOffset(), makeIdentity(), resolveGroupWorker(), resolveNodeCondEval(), resolveNodeNP1OUT(), resolveNodeNP1OUT_2P(), resolveNodeNP1OUT_P(), resolveNodeReduction(), resolveNodeSample(), resolveNodeUnary(), and resolveNodeWorker().
|
mutableprivate |
|
private |
Referenced by resolveNodeSample(), and ~DataLazy().
|
mutableprivate |
|
private |
Referenced by DataLazy(), intoTreeString(), makeIdentity(), resolveGroupWorker(), resolveNodeBinary(), resolveNodeCondEval(), resolveNodeNP1OUT(), resolveNodeNP1OUT_2P(), resolveNodeNP1OUT_P(), resolveNodeReduction(), resolveNodeSample(), resolveNodeTProd(), resolveNodeUnary(), and resolveNodeWorker().
|
private |
Referenced by makeIdentity(), and resolveNodeTProd().
|
private |
Referenced by makeIdentity(), and resolveNodeTProd().
|
private |
Referenced by makeIdentity(), and resolveNodeTProd().
|
private |
Referenced by collapseToReady(), deepCopy(), and resolveNodeUnary().
|
private |
Referenced by collapseToReady(), deepCopy(), intoString(), intoTreeString(), makeIdentity(), resolveNodeNP1OUT_2P(), and resolveNodeTProd().