libfbm  0.3
Simulation of multi-dimensional stationary Gaussian processes and fractional Brownian motion.
 All Classes Namespaces Functions Variables Friends
Public Member Functions | Protected Attributes
libfbm::AbstractField Class Reference

Base class for Field and PLFPSField. More...

#include <libfbm.hpp>

Inheritance diagram for libfbm::AbstractField:
libfbm::Field libfbm::PLFPSField

List of all members.

Public Member Functions

 AbstractField ()
virtual ~AbstractField ()
virtual void generate ()=0
 Generate the field.
virtual void generate (GaussianGenerator &rng)=0
 Generate the field using random generator rng.
virtual void clear ()=0
 Release all memory this object holds.
virtual const zvecgetDim () const =0
 Get the usable dimensions of this field.
double operator() (const zvec &p) const
 Get field value at the given point.
double operator() (size_t x) const
double operator() (size_t x, size_t y) const
double operator() (size_t x, size_t y, size_t z) const
double operator() (size_t x, size_t y, size_t z, size_t u) const
double operator() (size_t x, size_t y, size_t z, size_t u, size_t v) const
double & at (const zvec &p)
 Return a reference to the internal array element at point p.
const double & at (const zvec &p) const
const size_t * getStrides () const
 Get the strides array.

Protected Attributes

std::vector< double > Z
double * datap
size_t muls [LIBFBM_MAX_DIM]

Detailed Description

Base class for Field and PLFPSField.

Definition at line 722 of file libfbm.hpp.


Constructor & Destructor Documentation

libfbm::AbstractField::AbstractField ( )
inline

Definition at line 725 of file libfbm.hpp.

virtual libfbm::AbstractField::~AbstractField ( )
virtual

Member Function Documentation

double& libfbm::AbstractField::at ( const zvec p)
inline

Return a reference to the internal array element at point p.

Reimplemented in libfbm::Field.

Definition at line 761 of file libfbm.hpp.

const double& libfbm::AbstractField::at ( const zvec p) const
inline

Reimplemented in libfbm::Field.

Definition at line 769 of file libfbm.hpp.

virtual void libfbm::AbstractField::clear ( )
pure virtual

Release all memory this object holds.

Implemented in libfbm::PLFPSField, and libfbm::Field.

virtual void libfbm::AbstractField::generate ( )
pure virtual

Generate the field.

Implemented in libfbm::PLFPSField, and libfbm::Field.

virtual void libfbm::AbstractField::generate ( GaussianGenerator rng)
pure virtual

Generate the field using random generator rng.

The random generator should produce normally distributed numbers.

Implemented in libfbm::PLFPSField, and libfbm::Field.

virtual const zvec& libfbm::AbstractField::getDim ( ) const
pure virtual

Get the usable dimensions of this field.

Implemented in libfbm::PLFPSField, and libfbm::Field.

const size_t* libfbm::AbstractField::getStrides ( ) const
inline

Get the strides array.

Internally, the data is kept in a huge single array of doubles. You can get addresses into this array using the at() member functions. If you want to quickly move to the next or previous element in a given dimension d, you can add or substract the strides[d] value to the address.

Reimplemented in libfbm::Field.

Definition at line 782 of file libfbm.hpp.

double libfbm::AbstractField::operator() ( const zvec p) const
inline

Get field value at the given point.

Note that you are responsible for correct point indices. No checking is done internally and invalid values can lead to crashes.

Reimplemented in libfbm::Field.

Definition at line 742 of file libfbm.hpp.

double libfbm::AbstractField::operator() ( size_t  x) const
inline

Reimplemented in libfbm::Field.

Definition at line 749 of file libfbm.hpp.

double libfbm::AbstractField::operator() ( size_t  x,
size_t  y 
) const
inline

Reimplemented in libfbm::Field.

Definition at line 751 of file libfbm.hpp.

double libfbm::AbstractField::operator() ( size_t  x,
size_t  y,
size_t  z 
) const
inline

Reimplemented in libfbm::Field.

Definition at line 753 of file libfbm.hpp.

double libfbm::AbstractField::operator() ( size_t  x,
size_t  y,
size_t  z,
size_t  u 
) const
inline

Reimplemented in libfbm::Field.

Definition at line 755 of file libfbm.hpp.

double libfbm::AbstractField::operator() ( size_t  x,
size_t  y,
size_t  z,
size_t  u,
size_t  v 
) const
inline

Reimplemented in libfbm::Field.

Definition at line 757 of file libfbm.hpp.


Member Data Documentation

double* libfbm::AbstractField::datap
protected

Definition at line 786 of file libfbm.hpp.

size_t libfbm::AbstractField::muls[LIBFBM_MAX_DIM]
protected

Definition at line 787 of file libfbm.hpp.

std::vector<double> libfbm::AbstractField::Z
protected

Definition at line 785 of file libfbm.hpp.


The documentation for this class was generated from the following file: