All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions
o2scl::tensor_grid4 Class Reference

Rank 4 tensor with a grid. More...

Detailed Description

Definition at line 1039 of file tensor_grid.h.

#include <tensor_grid.h>

Inheritance diagram for o2scl::tensor_grid4:
o2scl::tensor_grid o2scl::tensor< boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< size_t > >

Public Member Functions

 tensor_grid4 ()
 Create an empty tensor.
 
 tensor_grid4 (size_t sz, size_t sz2, size_t sz3, size_t sz4)
 Create a rank 4 tensor of size (sz,sz2,sz3,sz4)
 
double & get (size_t ix1, size_t ix2, size_t ix3, size_t ix4)
 Get the element indexed by (ix1,ix2,ix3,ix4)
 
const double & get (size_t ix1, size_t ix2, size_t ix3, size_t ix4) const
 Get the element indexed by (ix1,ix2,ix3,ix4)
 
void set (size_t ix1, size_t ix2, size_t ix3, size_t ix4, double val)
 Set the element indexed by (ix1,ix2,ix3,ix4) to value val.
 
double interp (double x, double y, double z, double a)
 Interpolate (x,y,z,a) and return the results.
 
double interp_linear (double x, double y, double z, double a)
 Interpolate (x,y,z,a) and return the results.
 
- Public Member Functions inherited from o2scl::tensor_grid
 tensor_grid ()
 Create an empty tensor with zero rank.
 
template<class size_vec_t >
 tensor_grid (size_t rank, const size_vec_t &dim)
 Create a tensor of rank rank with sizes given in dim. More...
 
template<class vec_t >
void set_val (const vec_t &grdp, double val)
 Set the element closest to grid point grdp to value val.
 
template<class vec_t , class vec2_t >
void set_val (const vec_t &grdp, double val, vec2_t &closest)
 Set the element closest to grid point grdp to value val. More...
 
template<class vec_t >
double get_val (const vec_t &grdp)
 Get the element closest to grid point grdp.
 
template<class vec_t , class vec2_t >
double get_val (const vec_t &grdp, vec2_t &closest)
 Get the element closest to grid point grdp to value val. More...
 
template<class size_vec_t >
void resize (size_t rank, const size_vec_t &dim)
 Resize the tensor to rank rank with sizes given in dim. More...
 
bool is_grid_set () const
 Return true if the grid has been set.
 
template<class vec_t >
void set_grid_packed (const vec_t &grid_vec)
 Set the grid. More...
 
template<class vec_vec_t >
void set_grid (const vec_vec_t &grid_vecs)
 Set grid from a vector of vectors of grid points.
 
double get_grid (size_t i, size_t j) const
 Lookup jth value on the ith grid.
 
void set_grid (size_t i, size_t j, double val)
 Set the jth value on the ith grid.
 
size_t lookup_grid (size_t i, double val)
 Lookup index for grid closest to val.
 
template<class vec_t , class size_vec_t >
void lookup_grid_vec (const vec_t &vals, size_vec_t &indices) const
 Lookup indices for grid closest point to vals. More...
 
size_t lookup_grid_val (size_t i, const double &val, double &val2)
 Lookup index for grid closest to val, returning the grid point. More...
 
size_t lookup_grid_packed (size_t i, double val)
 Lookup index for grid closest to val.
 
size_t lookup_grid_packed_val (size_t i, double val, double &val2)
 Lookup index for grid closest to val.
 
template<class size_vec_t >
void copy_slice_align (size_t ix_x, size_t ix_y, size_vec_t &index, table3d &tab, std::string slice_name)
 Create a slice in a table3d object with an aligned grid. More...
 
template<class size_vec_t >
void copy_slice_interp (size_t ix_x, size_t ix_y, size_vec_t &index, table3d &tab, std::string slice_name)
 Copy to a slice in a table3d object using interpolation. More...
 
void set_interp_type (size_t interp_type)
 Set interpolation type.
 
double interpolate (double *vals)
 Interpolate values vals into the tensor, returning the result. More...
 
template<class vec2_t >
double interp_linear (vec2_t &v)
 Perform a linear interpolation of v into the function implied by the tensor and grid. More...
 
template<class vec2_t >
double interp_linear_power_two (vec2_t &v)
 Perform linear interpolation assuming that all indices can take only two values. More...
 
- Public Member Functions inherited from o2scl::tensor< boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< size_t > >
 tensor ()
 Create an empty tensor with zero rank.
 
 tensor (size_t rank, const size_vec_t &dim)
 Create a tensor of rank rank with sizes given in dim. More...
 
void set (const size_vec_t &index, double val)
 Set the element indexed by index to value val.
 
void set_all (double x)
 Set all elements in a tensor to some fixed value.
 
double & get (const size_vec_t &index)
 Get the element indexed by index.
 
double const & get (const size_vec_t &index) const
 Get a const reference to the element indexed by index.
 
ubvector_slice vector_slice (size_t ix, const size_vec_t &index)
 Fix all but one index to create a vector. More...
 
void resize (size_t rank, const size_vec_t &dim)
 Resize the tensor to rank rank with sizes given in dim. More...
 
size_t get_rank () const
 Return the rank of the tensor.
 
size_t get_size (size_t i) const
 Returns the size of the ith index.
 
const
boost::numeric::ublas::vector
< size_t > & 
get_size_arr () const
 Return the full vector of sizes.
 
const
boost::numeric::ublas::vector
< double > & 
get_data () const
 Return the full data vector.
 
size_t total_size () const
 Returns the size of the tensor (the product of the sizes over every index)
 
size_t pack_indices (const size_vec_t &index)
 Pack the indices into a single vector index.
 
void unpack_indices (size_t ix, size_vec_t &index)
 Unpack the single vector index into indices.
 

Additional Inherited Members

- Public Types inherited from o2scl::tensor_grid
typedef
boost::numeric::ublas::vector
< double > 
ubvector
 
typedef
boost::numeric::ublas::vector
< size_t > 
ubvector_size_t
 
typedef
boost::numeric::ublas::range 
range
 
typedef
boost::numeric::ublas::vector_range
< ubvector
ubvector_range
 
typedef
boost::numeric::ublas::vector_range
< ubvector_size_t
ubvector_size_t_range
 
- Public Types inherited from o2scl::tensor< boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< size_t > >
typedef
boost::numeric::ublas::vector_slice
< boost::numeric::ublas::vector
< double > > 
ubvector_slice
 
typedef
boost::numeric::ublas::slice 
slice
 
- Protected Member Functions inherited from o2scl::tensor_grid
ubvectorget_data ()
 Return a reference to the data (for HDF I/O)
 
- Protected Attributes inherited from o2scl::tensor_grid
ubvector grid
 A rank-sized set of arrays for the grid points.
 
bool grid_set
 If true, the grid has been set by the user.
 
size_t itype
 Interpolation type.
 
- Protected Attributes inherited from o2scl::tensor< boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< size_t > >
boost::numeric::ublas::vector
< double > 
data
 The data.
 
boost::numeric::ublas::vector
< size_t > 
size
 A rank-sized vector of the sizes of each dimension.
 
size_t rk
 Rank.
 

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

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).
Hosted at Get Object-oriented Scientific Computing
Lib at SourceForge.net. Fast, secure and Free Open Source software
downloads..