17 #if !defined escript_DataAbstract_20040315_H
18 #define escript_DataAbstract_20040315_H
24 #include <boost/scoped_ptr.hpp>
83 DataAbstract_ptr getPtr();
85 const_DataAbstract_ptr getPtr()
const;
98 DataAbstract(
const FunctionSpace& what,
const ShapeType& shape,
bool isDataEmpty=
false);
115 toString()
const = 0;
140 dump(
const std::string fileName)
const;
148 getNumDPPSample()
const;
156 getNumSamples()
const;
189 getPointOffset(
int sampleNo,
190 int dataPointNo)
const = 0;
195 getPointOffset(
int sampleNo,
196 int dataPointNo) = 0;
216 getSampleDataByTag(
int tag);
227 operandCheck(
const DataAbstract& right)
const;
235 validSamplePointNo(
int samplePointNo)
const;
243 validSampleNo(
int sampleNo)
const;
253 getFunctionSpace()
const;
288 setTaggedValue(
int tagKey,
307 copyToDataPoint(
const int sampleNo,
const int dataPointNo,
const double value);
319 copyToDataPoint(
const int sampleNo,
const int dataPointNo,
const WrappedArray& value);
332 getTagNumber(
int dpno);
365 trace(DataAbstract* ev,
int axis_offset);
376 transpose(DataAbstract* ev,
int axis_offset);
388 swapaxes(DataAbstract* ev,
int axis0,
int axis1);
407 matrixInverse(DataAbstract* out)
const;
441 reorderByReferenceIDs(
int *reference_ids);
506 return m_lazyshared || (m_owners.size()>1);
516 bool checkNoSharing()
const;
583 return ((0 <= sampleNo) && (sampleNo <
m_noSamples));
592 throw DataException(
"Error - Operations not permitted on instances of DataEmpty.");
603 throw DataException(
"Error - Operations not permitted on instances of DataEmpty.");
622 throw DataException(
"Error - Operations not permitted on instances of DataEmpty.");
633 throw DataException(
"Error - Operations not permitted on instances of DataEmpty.");
644 throw DataException(
"Error - Operations not permitted on instances of DataEmpty.");