escript  Revision_
DataExpanded.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2018 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 
18 #if !defined escript_DataExpanded_20040323_H
19 #define escript_DataExpanded_20040323_H
20 #include "system_dep.h"
21 
22 #include "DataReady.h"
23 
24 namespace escript {
25 
26 //
27 // Forward declarations of other Data types.
28 class DataConstant;
29 class DataTagged;
30 
43 class DataExpanded : public DataReady {
44 
45 typedef DataReady parent;
46 
47  public:
48 
64  explicit DataExpanded(const WrappedArray& value,
65  const FunctionSpace& what);
66 
76  explicit DataExpanded(const DataExpanded& other,
77  const DataTypes::RegionType& region);
78 
92  explicit DataExpanded(const FunctionSpace& what,
93  const DataTypes::ShapeType &shape,
94  const DataTypes::RealVectorType &data);
95 
96 
98  explicit DataExpanded(const FunctionSpace& what,
99  const DataTypes::ShapeType &shape,
100  const DataTypes::CplxVectorType &data);
101 
102 
103 
105  explicit DataExpanded(const FunctionSpace& what,
106  const DataTypes::ShapeType &shape,
107  const DataTypes::real_t data);
108 
110  explicit DataExpanded(const FunctionSpace& what,
111  const DataTypes::ShapeType &shape,
112  const DataTypes::cplx_t data);
113 
114 
121  DataExpanded(const DataExpanded& other);
122 
129  explicit DataExpanded(const DataConstant& other);
130 
137  explicit DataExpanded(const DataTagged& other);
138 
144  virtual
145  ~DataExpanded();
146 
148  bool
149  isExpanded() const
150  {
151  return true;
152  };
153 
155  bool
156  actsExpanded() const
157  {
158  return true;
159  }
160 
165  bool
166  hasNaN() const;
167 
172  void
174 
176  void
178 
183  virtual bool
184  hasInf() const;
185 
190  virtual void
192 
197  virtual void
199 
200 
206  virtual
207  std::string
208  toString() const;
209 
214  virtual
215  DataAbstract*
216  deepCopy() const;
217 
223  virtual
224  DataAbstract*
225  zeroedCopy() const;
226 
227 
233  virtual
234  void
235  dump(const std::string fileName) const;
236 
237 
244  virtual int
245  matrixInverse(DataAbstract* out) const;
246 
252  virtual
253  void
254  setToZero();
255 
266  virtual
268  getPointOffset(int sampleNo,
269  int dataPointNo) const;
270 
271 // ESCRIPT_DLL_API
272 // virtual
273 // DataTypes::RealVectorType::size_type
274 // getPointOffset(int sampleNo,
275 // int dataPointNo);
276 
284  getVectorRW();
285 
288  getVectorRO() const;
289 
292  getVectorRWC();
293 
296  getVectorROC() const;
297 
300 
301  virtual const DataTypes::RealVectorType&
302  getTypedVectorRO(DataTypes::real_t dummy) const;
303 
306 
307  virtual const DataTypes::CplxVectorType&
308  getTypedVectorRO(DataTypes::cplx_t dummy) const;
309 
315  virtual
317  getLength() const;
318 
327  virtual
328  DataAbstract*
329  getSlice(const DataTypes::RegionType& region) const;
330 
339  virtual
340  void
341  setSlice(const DataAbstract* value,
342  const DataTypes::RegionType& region);
343 
356  void
357  setTaggedValue(int tagKey,
358  const DataTypes::ShapeType& pointshape,
359  const DataTypes::RealVectorType& value,
360  int dataOffset=0);
361 
362  void
363  setTaggedValue(int tagKey,
364  const DataTypes::ShapeType& pointshape,
365  const DataTypes::CplxVectorType& value,
366  int dataOffset=0);
367 
376  virtual void
377  symmetric(DataAbstract* ev);
378 
387  virtual void
389 
398  virtual void
399  hermitian(DataAbstract* ev);
400 
409  virtual void
411 
412 
413 
423  virtual void
424  trace(DataAbstract* ev, int axis_offset);
425 
434  virtual void
435  transpose(DataAbstract* ev, int axis_offset);
436 
446  virtual void
447  swapaxes(DataAbstract* ev, int axis0, int axis1);
448 
449 
458  virtual void
460 
473  virtual void
474  eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
475 
483  virtual void
484  reorderByReferenceIDs(DataTypes::dim_t *reference_ids);
485 
487  void
488  complicate();
489  protected:
490 
491  private:
492 
508  void
509  initialise(int noSamples,
510  int noDataPointsPerSample,
511  bool cplx
512  );
513 
523  void
524  copy(const DataConstant& value);
525 
526 
527 
535  void
536  copy(const WrappedArray& value);
537 
538 
551  virtual void
552  copyToDataPoint(const int sampleNo, const int dataPointNo, const DataTypes::real_t value);
553 
555  virtual void
556  copyToDataPoint(const int sampleNo, const int dataPointNo, const DataTypes::cplx_t value);
557 
558 
568  virtual void
569  copyToDataPoint(const int sampleNo, const int dataPointNo, const WrappedArray& value);
570 
571  //
572  // The main data storage array, a 2D array of data blocks.
573  // noSamples * noDataPointsPerSample
576 };
577 
578 } // end of namespace
579 
580 #endif
escript::DataTypes::maxRank
static const int maxRank
The maximum number of dimensions a datapoint can have.
Definition: DataTypes.h:68
ESCRIPT_DLL_API
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:28
escript::FunctionSpace::getTagFromSampleNo
int getTagFromSampleNo(DataTypes::dim_t sampleNo) const
Returns the tag associated with the given sample number.
Definition: FunctionSpace.cpp:142
escript::DataExpanded::trace
virtual void trace(DataAbstract *ev, int axis_offset)
Computes the trace of a matrix.
Definition: DataExpanded.cpp:934
escript::DataExpanded::dump
virtual void dump(const std::string fileName) const
dumps the object into a netCDF file
Definition: DataExpanded.cpp:1333
escript::DataTypes::real_t
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:73
escript::DataExpanded::setSlice
virtual void setSlice(const DataAbstract *value, const DataTypes::RegionType &region)
Copy the specified region from the given value.
Definition: DataExpanded.cpp:288
escript::DataExpanded::isExpanded
bool isExpanded() const
Definition: DataExpanded.h:160
escript::DataExpanded::replaceNaN
void replaceNaN(DataTypes::real_t value)
replaces all NaN values with value
Definition: DataExpanded.cpp:458
escript::DataTypes::copySlice
void copySlice(VEC &left, const ShapeType &leftShape, typename VEC::size_type leftOffset, const VEC &other, const ShapeType &otherShape, typename VEC::size_type otherOffset, const RegionLoopRangeType &region)
Copy a data slice specified by the given region and offset from the "other" vector into the "left" ve...
Definition: DataVector.h:172
escript::DataExpanded::deepCopy
virtual DataAbstract * deepCopy() const
Return a deep copy of the current object.
Definition: DataExpanded.cpp:263
escript::DataConstant::getTypedVectorRO
virtual const DataTypes::RealVectorType & getTypedVectorRO(DataTypes::real_t dummy) const
Definition: DataConstant.cpp:870
escript::antihermitian
void antihermitian(const DataTypes::CplxVectorType &in, const DataTypes::ShapeType &inShape, typename DataTypes::CplxVectorType::size_type inOffset, DataTypes::CplxVectorType &ev, const DataTypes::ShapeType &evShape, typename DataTypes::CplxVectorType::size_type evOffset)
computes a antihermitian matrix from your square matrix A: (A - adjoint(A)) / 2
Definition: DataVectorOps.cpp:961
escript::DataAbstract::m_noDataPointsPerSample
int m_noDataPointsPerSample
Definition: DataAbstract.h:570
escript::DataExpanded::parent
DataReady parent
Definition: DataExpanded.h:56
escript::FunctionSpace::getNumSamples
DataTypes::dim_t getNumSamples() const
Returns the number of samples.
Definition: FunctionSpace.h:171
escript::DataExpanded::setTaggedValue
void setTaggedValue(int tagKey, const DataTypes::ShapeType &pointshape, const DataTypes::RealVectorType &value, int dataOffset=0)
setTaggedValue
Definition: DataExpanded.cpp:1404
escript::FunctionSpace::getReferenceIDOfSample
DataTypes::dim_t getReferenceIDOfSample(DataTypes::dim_t sampleNo) const
Returns the reference number associated with the given sample number. This function is not efficient....
Definition: FunctionSpace.h:133
escript::DataExpanded::getTypedVectorRW
virtual DataTypes::RealVectorType & getTypedVectorRW(DataTypes::real_t dummy)
These versions use the type system rather than method name to determine return type.
Definition: DataExpanded.cpp:1524
escript::DataTypes::checkShape
bool checkShape(const ShapeType &s1, const ShapeType &s2)
Test if two shapes are equal.
Definition: DataTypes.h:327
escript::DataExpanded::m_data_r
DataTypes::RealVectorType m_data_r
Definition: DataExpanded.h:585
escript::DataConstant
DataConstant stores a single data point which represents the entire function space.
Definition: DataConstant.h:48
escript::eigenvalues
void eigenvalues(const DataTypes::RealVectorType &in, const DataTypes::ShapeType &inShape, typename DataTypes::RealVectorType::size_type inOffset, DataTypes::RealVectorType &ev, const DataTypes::ShapeType &evShape, typename DataTypes::RealVectorType::size_type evOffset)
solves a local eigenvalue problem
Definition: DataVectorOps.h:637
escript::WrappedArray
Definition: WrappedArray.h:30
escript::DataTypes::DataVectorAlt::resize
void resize(const size_type newSize, const value_type newVal=0.0, const size_type newBlockSize=1)
Resize the DataVectorAlt to the given length "newSize". All current data is lost. All elements in the...
Definition: DataVectorAlt.h:313
escript::DataExpanded::replaceInf
virtual void replaceInf(DataTypes::real_t value)
replaces all (+/-)Inf values with value
Definition: DataExpanded.cpp:543
escript::DataTypes::DataVectorAlt< cplx_t >::size_type
DataTypes::vec_size_type size_type
Definition: DataVectorAlt.h:84
escript::WrappedArray::isComplex
bool isComplex() const
Definition: WrappedArray.h:69
escript::symmetric
void symmetric(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset)
computes a symmetric matrix from your square matrix A: (A + transpose(A)) / 2
Definition: DataVectorOps.h:101
escript::DataExpanded::copyToDataPoint
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.
Definition: DataExpanded.cpp:711
escript::DataTypes::DataVectorAlt< real_t >
escript::transpose
void transpose(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset, int axis_offset)
Transpose each data point of this Data object around the given axis.
Definition: DataVectorOps.h:341
escript::DataTypes::DataVectorAlt::copyFromArrayToOffset
void copyFromArrayToOffset(const WrappedArray &value, size_type offset, size_type copies)
Definition: DataVectorAlt.h:408
escript::DataExpanded::getSlice
virtual DataAbstract * getSlice(const DataTypes::RegionType &region) const
Factory method that returns a newly created DataExpanded. The caller is reponsible for managing the o...
Definition: DataExpanded.cpp:283
escript::DataExpanded::setToZero
virtual void setToZero()
sets all values to zero
Definition: DataExpanded.cpp:1158
escript::DataExpanded::transpose
virtual void transpose(DataAbstract *ev, int axis_offset)
Transpose each data point of this Data object around the given axis.
Definition: DataExpanded.cpp:973
escript::DataAbstract::getRank
unsigned int getRank() const
Return the rank information for the point data.
Definition: DataAbstract.h:663
CHECK_FOR_EX_WRITE
#define CHECK_FOR_EX_WRITE
Definition: DataExpanded.cpp:57
escript::DataExpanded::antihermitian
virtual void antihermitian(DataAbstract *ev)
Computes an antihermitian matrix (A - A*) / 2.
Definition: DataExpanded.cpp:905
escript::DataExpanded::toString
virtual std::string toString() const
Return a textual representation of the data.
Definition: DataExpanded.cpp:592
escript::DataExpanded::actsExpanded
bool actsExpanded() const
Return true if this Data is expanded or resolves to expanded. That is, if it has a separate value for...
Definition: DataExpanded.h:167
escript::DataExpanded::eigenvalues
virtual void eigenvalues(DataAbstract *ev)
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
Definition: DataExpanded.cpp:1050
escript::FunctionSpace
Definition: FunctionSpace.h:45
escript::DataTypes::getSliceRegionLoopRange
DataTypes::RegionLoopRangeType getSliceRegionLoopRange(const DataTypes::RegionType &region)
Modify region to copy from in order to deal with the case where one range in the region contains iden...
Definition: DataTypes.cpp:186
escript::DataReady
Definition: DataReady.h:46
escript::DataExpanded::copy
void copy(const DataConstant &value)
Copy the given data point value to all data points in this object.
Definition: DataExpanded.cpp:349
escript::DataExpanded::matrixInverse
virtual int matrixInverse(DataAbstract *out) const
invert square matricies
Definition: DataExpanded.cpp:1120
escript::DataExpanded::complicate
void complicate()
Definition: DataExpanded.cpp:639
system_dep.h
escript::LapackInverseHelper
Definition: LapackInverseHelper.h:37
escript::WrappedArray::getRank
unsigned int getRank() const
Definition: WrappedArray.h:75
escript::DataTagged
Simulates a full dataset accessible via sampleNo and dataPointNo.
Definition: DataTagged.h:55
escript::DataExpanded::DataExpanded
DataExpanded(const WrappedArray &value, const FunctionSpace &what)
Constructor for DataExpanded.
Definition: DataExpanded.cpp:62
escript::DataAbstract::getNumDPPSample
int getNumDPPSample() const
Return the number of data points per sample.
Definition: DataAbstract.h:622
escript::DataException
Definition: DataException.h:37
escript::FunctionSpace::getNumDataPointsPerSample
int getNumDataPointsPerSample() const
Definition: FunctionSpace.h:180
escript::hermitian
void hermitian(const DataTypes::CplxVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::CplxVectorType::size_type inOffset, DataTypes::CplxVectorType &ev, const DataTypes::ShapeType &evShape, DataTypes::CplxVectorType::size_type evOffset)
computes an hermitian matrix from your square matrix A: (A + adjoint(A)) / 2
Definition: DataVectorOps.cpp:914
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:87
escript::DataTypes::ShapeType
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:65
DataExpanded.h
escript::JMPI
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
escript::DataTypes
Contains the types to represent Shapes, Regions, RegionLoop ranges and vectors of data as well as the...
Definition: DataTypes.cpp:85
escript::DataTypes::fillComplexFromReal
void fillComplexFromReal(const RealVectorType &r, CplxVectorType &c)
copy data from a real vector to a complex vector The complex vector will be resized as needed and any...
escript::DataExpanded::getPointOffset
virtual DataTypes::RealVectorType::size_type getPointOffset(int sampleNo, int dataPointNo) const
Return the offset for the given given data point. This returns the offset in bytes for the given poin...
Definition: DataExpanded.cpp:620
escript::DataTypes::copySliceFrom
void copySliceFrom(VEC &left, const ShapeType &leftShape, typename VEC::size_type leftOffset, const VEC &other, const ShapeType &otherShape, typename VEC::size_type otherOffset, const RegionLoopRangeType &region)
Copy data into a slice specified by the given region and offset in the left vector from the other vec...
Definition: DataVector.h:279
escript::DataAbstract::getPointOffset
virtual DataTypes::RealVectorType::size_type getPointOffset(int sampleNo, int dataPointNo) const =0
Return the offset for the given sample. This returns the offset for the given point into the containe...
escript::FunctionSpace::getNumDPPSample
int getNumDPPSample() const
Returns the number of data points per sample.
Definition: FunctionSpace.h:177
escript::DataExpanded::hasNaN
bool hasNaN() const
Return true if any value in the data contains a NaN.
Definition: DataExpanded.cpp:422
escript::DataTypes::RegionType
std::vector< std::pair< int, int > > RegionType
Definition: DataTypes.h:66
escript::DataAbstract::getShape
const DataTypes::ShapeType & getShape() const
Return the shape information for the point data.
Definition: DataAbstract.h:652
escript::DataTypes::getResultSliceShape
DataTypes::ShapeType getResultSliceShape(const RegionType &region)
Determine the shape of the specified slice region.
Definition: DataTypes.cpp:171
escript::DataTypes::DataVectorAlt::copyFromArray
void copyFromArray(const WrappedArray &value, size_type copies)
Populates the vector with the data from value. This method currently throws an exception if the speci...
Definition: DataVectorAlt.h:504
escript::DataAbstract::getNumSamples
int getNumSamples() const
Return the number of samples.
Definition: DataAbstract.h:633
escript::DataExpanded::antisymmetric
virtual void antisymmetric(DataAbstract *ev)
Computes a antisymmetric matrix (A - AT) / 2.
Definition: DataExpanded.cpp:838
escript::DataTypes::copyPoint
void copyPoint(RealVectorType &dest, vec_size_type doffset, vec_size_type nvals, const RealVectorType &src, vec_size_type soffset)
Copy a point from one vector to another. Note: This version does not check to see if shapes are the s...
escript::DataTagged::getTypedVectorRO
virtual const DataTypes::RealVectorType & getTypedVectorRO(DataTypes::real_t dummy) const
Definition: DataTagged.cpp:1674
escript::DataExpanded::getVectorROC
const DataTypes::CplxVectorType & getVectorROC() const
Definition: DataExpanded.cpp:1519
escript::DataExpanded::reorderByReferenceIDs
virtual void reorderByReferenceIDs(DataTypes::dim_t *reference_ids)
reorders data sample ordered by reference_ids to the ordering of the functions space
Definition: DataExpanded.cpp:1469
escript::DataExpanded
Give a short description of what DataExpanded does.
Definition: DataExpanded.h:54
escript::DataExpanded::zeroedCopy
virtual DataAbstract * zeroedCopy() const
Return an object with the same type, domain (and tags if appropriate) as this, but all values are zer...
Definition: DataExpanded.cpp:269
escript::matrix_inverse
int matrix_inverse(const DataTypes::RealVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::RealVectorType::size_type inOffset, DataTypes::RealVectorType &out, const DataTypes::ShapeType &outShape, DataTypes::RealVectorType::size_type outOffset, int count, LapackInverseHelper &helper)
computes the inverses of square (up to 3x3) matricies
Definition: DataVectorOps.cpp:205
escript::DataTagged::getPointOffset
virtual DataTypes::RealVectorType::size_type getPointOffset(int sampleNo, int dataPointNo) const
getPointOffset
Definition: DataTagged.cpp:980
DataConstant.h
escript::DataAbstract::m_iscompl
bool m_iscompl
Definition: DataAbstract.h:574
escript::DataExpanded::getTypedVectorRO
virtual const DataTypes::RealVectorType & getTypedVectorRO(DataTypes::real_t dummy) const
Definition: DataExpanded.cpp:1530
escript::DataExpanded::getVectorRO
const DataTypes::RealVectorType & getVectorRO() const
Definition: DataExpanded.cpp:1508
escript::swapaxes
void swapaxes(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset, int axis0, int axis1)
swaps the components axis0 and axis1.
Definition: DataVectorOps.h:486
escript::DataTypes::RegionLoopRangeType
std::vector< std::pair< int, int > > RegionLoopRangeType
Definition: DataTypes.h:67
V
#define V(_K_, _I_)
Definition: ShapeFunctions.cpp:133
escript::DataTypes::RealVectorType
escript::DataTypes::DataVectorAlt< real_t > RealVectorType
Vector to store underlying data.
Definition: DataVector.h:42
escript::DataAbstract::m_noSamples
int m_noSamples
Definition: DataAbstract.h:565
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
escript
Definition: AbstractContinuousDomain.cpp:22
escript::DataTypes::DataVectorAlt::size
size_type size() const
Return the number of elements in this DataVectorAlt.
Definition: DataVectorAlt.h:237
escript::DataTypes::pointToString
std::string pointToString(const RealVectorType &data, const ShapeType &shape, int offset, const std::string &prefix)
Display a single value (with the specified shape) from the data.
escript::DataTypes::getRelIndex
vec_size_type getRelIndex(const DataTypes::ShapeType &shape, vec_size_type i)
Compute the offset (in 1D vector) of a given subscript with a shape.
Definition: DataTypes.h:256
escript::DataExpanded::getVectorRW
DataTypes::RealVectorType & getVectorRW()
Return a a reference to the underlying DataVector.
Definition: DataExpanded.cpp:1502
escript::DataAbstract
Definition: DataAbstract.h:72
escript::DataExpanded::hermitian
virtual void hermitian(DataAbstract *ev)
Computes an hermitian matrix (A + A*) / 2.
Definition: DataExpanded.cpp:880
DataVectorOps.h
Describes binary operations performed on DataVector.
escript::DataTypes::createShapeErrorMessage
std::string createShapeErrorMessage(const std::string &messagePrefix, const DataTypes::ShapeType &other, const DataTypes::ShapeType &thisShape)
Produce a string containing two shapes.
Definition: DataTypes.cpp:204
escript::DataExpanded::hasInf
virtual bool hasInf() const
Return true if data contains Inf or -Inf.
Definition: DataExpanded.cpp:507
escript::FunctionSpace::getTypeCode
int getTypeCode() const
Returns the function space type code.
Definition: FunctionSpace.cpp:93
escript::DataReady::DataReady
DataReady(const FunctionSpace &what, const ShapeType &shape, bool isDataEmpty=false)
Definition: DataReady.cpp:33
DataTagged.h
escript::DataExpanded::eigenvalues_and_eigenvectors
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
Definition: DataExpanded.cpp:1089
escript::DataAbstract::isComplex
bool isComplex() const
true if the components of datapoints are complex
Definition: DataAbstract.cpp:68
escript::DataExpanded::getLength
virtual DataTypes::RealVectorType::size_type getLength() const
Return the number of doubles stored for the Data.
Definition: DataExpanded.cpp:650
escript::FunctionSpace::borrowSampleReferenceIDs
const DataTypes::dim_t * borrowSampleReferenceIDs() const
Returns a borrowed reference to the list of sample reference IDs.
Definition: FunctionSpace.cpp:197
escript::DataAbstract::getNoValues
unsigned int getNoValues() const
Return the number of values in the shape for this object.
Definition: DataAbstract.h:674
escript::DataExpanded::swapaxes
virtual void swapaxes(DataAbstract *ev, int axis0, int axis1)
swaps components axis0 and axis1
Definition: DataExpanded.cpp:1011
Data.h
DataReady.h
escript::antisymmetric
void antisymmetric(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset)
computes a antisymmetric matrix from your square matrix A: (A - transpose(A)) / 2
Definition: DataVectorOps.h:150
escript::DataAbstract::getFunctionSpace
const FunctionSpace & getFunctionSpace() const
Return the function space associated with this Data object.
Definition: DataAbstract.h:645
escript::DataTypes::cplx_t
std::complex< real_t > cplx_t
complex data type
Definition: DataTypes.h:76
escript::WrappedArray::getShape
const DataTypes::ShapeType & getShape() const
Definition: WrappedArray.h:81
ESYS_ASSERT
#define ESYS_ASSERT(a, b)
EsysAssert is a MACRO that will throw an exception if the boolean condition specified is false.
Definition: Assert.h:77
escript::DataAbstract::ShapeType
DataTypes::ShapeType ShapeType
Definition: DataAbstract.h:77
escript::DataExpanded::symmetric
virtual void symmetric(DataAbstract *ev)
Computes a symmetric matrix (A + AT) / 2.
Definition: DataExpanded.cpp:800
escript::DataExpanded::initialise
void initialise(int noSamples, int noDataPointsPerSample, bool cplx)
Common initialisation called from constructors.
Definition: DataExpanded.cpp:403
escript::DataExpanded::~DataExpanded
virtual ~DataExpanded()
Default destructor for DataExpanded.
Definition: DataExpanded.cpp:259
escript::DataExpanded::getVectorRWC
DataTypes::CplxVectorType & getVectorRWC()
Definition: DataExpanded.cpp:1513
escript::trace
void trace(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset, int axis_offset)
computes the trace of a matrix
Definition: DataVectorOps.h:240
DataException.h
escript::DataExpanded::m_data_c
DataTypes::CplxVectorType m_data_c
Definition: DataExpanded.h:586
escript::DataTypes::CplxVectorType
escript::DataTypes::DataVectorAlt< cplx_t > CplxVectorType
Definition: DataVector.h:43
escript::eigenvalues_and_eigenvectors
void eigenvalues_and_eigenvectors(const DataTypes::RealVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::RealVectorType::size_type inOffset, DataTypes::RealVectorType &ev, const DataTypes::ShapeType &evShape, DataTypes::RealVectorType::size_type evOffset, DataTypes::RealVectorType &V, const DataTypes::ShapeType &VShape, DataTypes::RealVectorType::size_type VOffset, const double tol=1.e-13)
solves a local eigenvalue problem
Definition: DataVectorOps.h:748