escript  Revision_
Namespaces | Macros | Functions
DataTypes.cpp File Reference
#include "esysUtils/first.h"
#include "DataTypes.h"
#include <sstream>
#include <boost/python/extract.hpp>
#include <boost/python/tuple.hpp>
#include "DataException.h"

Namespaces

 escript
 
 escript::DataTypes
 Contains the types to represent Shapes, Regions, RegionLoop ranges and vectors of data as well as the functions to manipulate them.
 

Macros

#define ESNEEDPYTHON
 

Functions

int escript::DataTypes::noValues (const DataTypes::ShapeType &shape)
 Calculate the number of values in a datapoint with the given shape. More...
 
int escript::DataTypes::noValues (const DataTypes::RegionLoopRangeType &region)
 Calculate the number of values for the given region. More...
 
std::string escript::DataTypes::shapeToString (const DataTypes::ShapeType &shape)
 Return the given shape as a string. More...
 
DataTypes::RegionType escript::DataTypes::getSliceRegion (const DataTypes::ShapeType &shape, const boost::python::object &key)
 Determine the region specified by the given python slice object. More...
 
DataTypes::ShapeType escript::DataTypes::getResultSliceShape (const DataTypes::RegionType &region)
 Determine the shape of the specified slice region. More...
 
DataTypes::RegionLoopRangeType escript::DataTypes::getSliceRegionLoopRange (const DataTypes::RegionType &region)
 Modify region to copy from in order to deal with the case where one range in the region contains identical indexes, eg: <<1,1><0,3><0,3>> This situation implies we want to copy from an object with rank greater than that of this object. eg: we want to copy the values from a two dimensional slice out of a three dimensional object into a two dimensional object. We do this by taking a slice from the other object where one dimension of the slice region is of size 1. So in the above example, we modify the above region like so: <<1,2><0,3><0,3>> and take this slice. More...
 
std::string escript::DataTypes::createShapeErrorMessage (const std::string &messagePrefix, const DataTypes::ShapeType &other, const DataTypes::ShapeType &thisShape)
 Produce a string containing two shapes. More...
 
bool escript::DataTypes::checkOffset (ValueType::size_type offset, int size, int noval)
 
void escript::DataTypes::copySlice (ValueType &left, const ShapeType &leftShape, ValueType::size_type leftOffset, const ValueType &other, const ShapeType &otherShape, ValueType::size_type otherOffset, const RegionLoopRangeType &region)
 Copy a data slice specified by the given region and offset from the "other" view into the "left" view at the given offset. More...
 
void escript::DataTypes::copySliceFrom (ValueType &left, const ShapeType &leftShape, ValueType::size_type leftOffset, const ValueType &other, const ShapeType &otherShape, ValueType::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 vector at the given offset. More...
 
void escript::DataTypes::pointToStream (std::ostream &os, const ValueType::ElementType *data, const ShapeType &shape, int offset, bool needsep=true, const std::string &sep=",")
 Display a single value (with the specified shape) from the data. More...
 
std::string escript::DataTypes::pointToString (const ValueType &data, const ShapeType &shape, int offset, const std::string &prefix)
 Display a single value (with the specified shape) from the data. More...
 
void escript::DataTypes::copyPoint (ValueType &dest, ValueType::size_type doffset, ValueType::size_type nvals, const ValueType &src, ValueType::size_type soffset)
 Copy a point from one vector to another. Note: This version does not check to see if shapes are the same. More...
 

Macro Definition Documentation

#define ESNEEDPYTHON