escript  Revision_
Namespaces | Typedefs | Functions | Variables
DataTypes.h File Reference
#include <boost/python/object_fwd.hpp>
#include "Assert.h"
#include <complex>
#include <limits>
#include <string>
#include <vector>

Go to the source code of this file.

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.
 

Typedefs

typedef std::vector< int > escript::DataTypes::ShapeType
 The shape of a single datapoint. More...
 
typedef std::vector< std::pair< int, int > > escript::DataTypes::RegionType
 
typedef std::vector< std::pair< int, int > > escript::DataTypes::RegionLoopRangeType
 
typedef long escript::DataTypes::vec_size_type
 
typedef double escript::DataTypes::real_t
 type of all real-valued scalars in escript More...
 
typedef std::complex< real_t > escript::DataTypes::cplx_t
 complex data type More...
 
typedef int escript::DataTypes::index_t
 type for array/matrix indices used both globally and on each rank More...
 
typedef std::vector< index_t > escript::DataTypes::IndexVector
 
typedef index_t escript::DataTypes::dim_t
 

Functions

index_t escript::DataTypes::index_t_min ()
 Returns the minimum finite value for the index_t type. More...
 
index_t escript::DataTypes::index_t_max ()
 Returns the maximum finite value for the index_t type. More...
 
real_t escript::DataTypes::real_t_max ()
 Returns the maximum finite value for the real_t type. More...
 
real_t escript::DataTypes::real_t_eps ()
 Returns the machine epsilon for the real_t type. More...
 
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::ShapeType escript::DataTypes::getResultSliceShape (const DataTypes::RegionType &region)
 Determine the shape of the specified slice region. 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::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...
 
int escript::DataTypes::getRank (const DataTypes::ShapeType &shape)
 Return the rank (number of dimensions) of the given shape. More...
 
vec_size_type escript::DataTypes::getRelIndex (const DataTypes::ShapeType &shape, vec_size_type i)
 Compute the offset (in 1D vector) of a given subscript with a shape. More...
 
vec_size_type escript::DataTypes::getRelIndex (const DataTypes::ShapeType &shape, vec_size_type i, vec_size_type j)
 Compute the offset (in 1D vector) of a given subscript with a shape. More...
 
vec_size_type escript::DataTypes::getRelIndex (const DataTypes::ShapeType &shape, vec_size_type i, vec_size_type j, vec_size_type k)
 Compute the offset (in 1D vector) of a given subscript with a shape. More...
 
vec_size_type escript::DataTypes::getRelIndex (const DataTypes::ShapeType &shape, vec_size_type i, vec_size_type j, vec_size_type k, vec_size_type m)
 Compute the offset (in 1D vector) of a given subscript with a shape. More...
 
bool escript::DataTypes::checkShape (const ShapeType &s1, const ShapeType &s2)
 Test if two shapes are equal. 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 (vec_size_type offset, int size, int noval)
 

Variables

static const int escript::DataTypes::maxRank =4
 The maximum number of dimensions a datapoint can have. More...
 
static const ShapeType escript::DataTypes::scalarShape
 Use this instead of creating empty shape objects for scalars. More...