MADNESS 0.10.1
Public Member Functions | Public Attributes | Friends | List of all members
madness::SliceLowRankTensor< T > Class Template Reference

implements a temporary(!) slice of a LowRankTensor More...

#include <lowranktensor.h>

Inheritance diagram for madness::SliceLowRankTensor< T >:
Inheritance graph
[legend]
Collaboration diagram for madness::SliceLowRankTensor< T >:
Collaboration graph
[legend]

Public Member Functions

 SliceLowRankTensor ()
 default ctor
 
 SliceLowRankTensor (const GenTensor< T > &gt, const std::array< Slice, TENSOR_MAXDIM > &s)
 ctor with a GenTensor; shallow
 
 SliceLowRankTensor (const GenTensor< T > &gt, const std::vector< Slice > &s)
 ctor with a GenTensor; shallow
 
void gaxpy (const std::array< Slice, TENSOR_MAXDIM > &lslice, const GenTensor< T > &rhs, const std::array< Slice, TENSOR_MAXDIM > &rslice, const double &beta)
 *this = *this(s) + beta * rhs
 
SliceLowRankTensor< T > & operator+= (const GenTensor< T > &rhs)
 inplace addition as in g(s)+=g1
 
SliceLowRankTensor< T > & operator+= (const SliceLowRankTensor< T > &rhs)
 inplace addition as in g(s)+=g1(s)
 
SliceLowRankTensor< T > & operator-= (const GenTensor< T > &rhs)
 inplace subtraction as in g(s)-=g1
 
SliceLowRankTensor< T > & operator-= (const SliceLowRankTensor< T > &rhs)
 inplace addition as in g(s)-=g1(s)
 
SliceLowRankTensor< T > & operator= (const GenTensor< T > &rhs)
 assignment as in g(s) = g1;
 
SliceLowRankTensor< T > & operator= (const SliceLowRankTensor< T > &rhs)
 assignment as in g(s) = g1(s);
 
SliceLowRankTensor< T > & operator= (const T &number)
 inplace zero-ing as in g(s)=0.0
 
- Public Member Functions inherited from madness::GenTensor< T >
 GenTensor ()
 
 GenTensor ()=default
 empty ctor
 
 GenTensor (const GenTensor< T > &other)=default
 copy ctor, shallow
 
 GenTensor (const long ndim, const long *dims, const TensorType &tt)
 
 GenTensor (const SliceLowRankTensor< T > &other)
 ctor with a SliceLowRankTensor as argument, deep
 
 GenTensor (const SRConf< T > &sr1)
 
 GenTensor (const std::vector< long > &dim, const TensorArgs &targs)
 ctor with dimensions; constructs tensor filled with zeros
 
 GenTensor (const std::vector< long > &dim, const TensorType &tt)
 ctor with dimensions; constructs tensor filled with zeros
 
 GenTensor (const SVDTensor< T > &other)
 ctor with a SVDTensor as argument, shallow
 
 GenTensor (const Tensor< T > &other)
 ctor with a regular Tensor, deep
 
 GenTensor (const Tensor< T > &rhs, const double &thresh, const TensorType &tt)
 ctor with a regular Tensor and arguments, deep
 
 GenTensor (const Tensor< T > &rhs, const TensorArgs &targs)
 ctor with a regular Tensor and arguments, deep
 
 GenTensor (const Tensor< T > &t1)
 
 GenTensor (const Tensor< T > &t1, const TensorArgs &targs)
 
 GenTensor (const Tensor< T > &t1, double eps, const TensorType tt)
 
 GenTensor (const TensorTrain< T > &other)
 ctor with a TensorTrain as argument, shallow
 
 GenTensor (const TensorType &tt, const long k, const long ndim)
 ctor with dimensions; all dims have the same value k
 
 GenTensor (const TensorType tt)
 
 GenTensor (long nd, const long d[], const TensorType &tt)
 
 GenTensor (std::vector< long > v, const TensorArgs &targs)
 
 GenTensor (std::vector< long > v, const TensorType &tt)
 
void add_SVD (const GenTensor &other, const double &thresh)
 
void add_SVD (const GenTensor< T > &rhs, const double &eps)
 
SRConf< Tconfig () const
 
GenTensor convert (const TensorArgs &targs) const
 
GenTensor convert (const TensorArgs &targs) const
 convert this to a new LowRankTensor of given tensor type
 
GenTensorconvert_inplace (const TensorArgs &targs)
 
long dim (const int i) const
 return the number of entries in dimension i
 
const long * dims () const
 return the number of entries in dimension i
 
GenTensor< T > & emul (const GenTensor< T > &other)
 Inplace multiply by corresponding elements of argument Tensor.
 
GenTensorfull_tensor ()
 
Tensor< T > & full_tensor ()
 
GenTensor full_tensor () const
 
const Tensor< T > & full_tensor () const
 
Tensor< Tfull_tensor_copy ()
 
Tensor< Tfull_tensor_copy () const
 
Tensor< Tfull_tensor_copy () const
 
GenTensorgaxpy (const T alpha, const GenTensor &other, const T beta)
 
GenTensorgaxpy (const T alpha, std::array< Slice, TENSOR_MAXDIM > s0, const GenTensor &other, const T beta, std::array< Slice, TENSOR_MAXDIM > s1)
 
SRConf< Tget_configs (const int &start, const int &end) const
 
SVDTensor< T > & get_svdtensor ()
 
SVDTensor< T > & get_svdtensor ()
 
const SVDTensor< T > & get_svdtensor () const
 
const SVDTensor< T > & get_svdtensor () const
 
GenTensorget_tensor ()
 
Tensor< T > & get_tensor ()
 
GenTensor get_tensor () const
 
const Tensor< T > & get_tensor () const
 
SVDTensor< T > & get_tensortrain ()
 
TensorTrain< T > & get_tensortrain ()
 
const SVDTensor< T > & get_tensortrain () const
 
const TensorTrain< T > & get_tensortrain () const
 
bool has_data () const
 
bool has_data () const
 
bool has_no_data () const
 
bool has_no_data () const
 
int index () const
 
bool is_assigned () const
 
bool is_assigned () const
 
constexpr bool is_full_tensor () const
 
constexpr bool is_full_tensor () const
 
bool is_of_tensortype (const TensorType &tt) const
 
bool is_of_tensortype (const TensorType &tt) const
 
constexpr bool is_svd_tensor () const
 
constexpr bool is_svd_tensor () const
 
constexpr bool is_tensortrain () const
 
constexpr bool is_tensortrain () const
 
size_t nCoeff () const
 
long nCoeff () const
 
long ndim () const
 
void normalize ()
 
void normalize ()
 
float_scalar_type normf () const
 
template<class Q >
 operator GenTensor< Q > () const
 Type conversion makes a deep copy.
 
template<class Q >
 operator GenTensor< Q > () const
 Type conversion makes a deep copy.
 
SliceLowRankTensor< Toperator() (const std::vector< Slice > &s)
 general slicing, shallow; for temporary use only!
 
const SliceLowRankTensor< Toperator() (const std::vector< Slice > &s) const
 general slicing, shallow; for temporary use only!
 
template<typename Q >
GenTensor< TENSOR_RESULT_TYPE(T, Q)> operator* (const Q &x) const
 multiply with a number
 
GenTensor operator+ (const GenTensor &other)
 
GenTensor operator+ (const SliceLowRankTensor< T > &other)
 
GenTensoroperator+= (const GenTensor &other)
 
GenTensoroperator+= (const SliceLowRankTensor< T > &other)
 
GenTensor operator- (const GenTensor &other)
 
GenTensoroperator-= (const GenTensor &other)
 
GenTensoroperator-= (const SliceLowRankTensor< T > &other)
 
GenTensoroperator= (const GenTensor< T > &other)
 shallow assignment operator
 
GenTensoroperator= (const SliceLowRankTensor< T > &other)
 deep assignment with slices: g0 = g1(s)
 
GenTensoroperator= (const SVDTensor< T > &other)
 deep assignment operator
 
GenTensoroperator= (const T &number)
 assign a number to this tensor
 
GenTensoroperator= (const Tensor< T > &other)
 deep assignment operator
 
GenTensoroperator= (const TensorTrain< T > &other)
 deep assignment operator
 
const BaseTensorptr () const
 might return a NULL pointer!
 
long rank () const
 
long rank () const
 
size_t real_size () const
 
long real_size () const
 
GenTensor reconstruct_tensor () const
 
Tensor< Treconstruct_tensor () const
 reconstruct this to return a full tensor
 
void reduce_rank (const double &eps)
 
void reduce_rank (const double &thresh)
 
template<typename Q >
IsSupported< TensorTypeData< Q >, GenTensor< T > & >::type scale (Q fac)
 Inplace multiplication by scalar of supported type (legacy name)
 
long size () const
 
double svd_normf () const
 
float_scalar_type svd_normf () const
 
template<typename Q >
 TENSOR_RESULT_TYPE (T, Q) trace_conj(const GenTensor< Q > &rhs) const
 returns the trace of <this|rhs>
 
TensorType tensor_type () const
 
TensorType tensor_type () const
 return the tensor type
 
std::string what_am_i () const
 
std::string what_am_i () const
 
- Public Member Functions inherited from madness::Tensor< T >
 Tensor ()
 Default constructor does not allocate any data and sets ndim=-1, size=0, _p=0, and id.
 
 Tensor (const std::vector< long > &d, bool dozero=true)
 Create and optionally zero new n-d tensor. This is the most general constructor.
 
 Tensor (const Tensor< T > &t)
 Copy constructor is shallow (same as assignment)
 
 Tensor (long d0)
 Create and zero new 1-d tensor.
 
 Tensor (long d0, long d1)
 Create and zero new 2-d tensor.
 
 Tensor (long d0, long d1, long d2)
 Create and zero new 3-d tensor.
 
 Tensor (long d0, long d1, long d2, long d3)
 Create and zero new 4-d tensor.
 
 Tensor (long d0, long d1, long d2, long d3, long d4)
 Create and zero new 5-d tensor.
 
 Tensor (long d0, long d1, long d2, long d3, long d4, long d5)
 Create and zero new 6-d tensor.
 
 Tensor (long nd, const long d[], bool dozero=true)
 Politically incorrect general constructor.
 
virtual ~Tensor ()
 
scalar_type absmax (long *ind=0) const
 Return the absolute maximum value (and if ind is non-null, its index) in the Tensor.
 
scalar_type absmin (long *ind=0) const
 Return the absolute minimum value (and if ind is non-null, its index) in the Tensor.
 
BaseTensorbase ()
 Returns a pointer to the base class.
 
const BaseTensorbase () const
 Returns a pointer to the base class.
 
template<class Q >
TensorIterator< T, Qbinary_iterator (const Tensor< Q > &q, long iterlevel=0, bool optimize=true, bool fusedim=true, long jdim=default_jdim) const
 Return iterator over two tensors.
 
void clear ()
 Frees all memory and resests to state of default constructor.
 
template<class Q >
bool conforms (const Tensor< Q > &t) const
 Test if *this and t conform.
 
Tensor< T > & conj ()
 Inplace complex conjugate.
 
Tensor< Tcycledim (long nshift, long start, long end)
 Returns new view/tensor cycling the sub-dimensions (start,...,end) with shift steps.
 
const Tensor< Tcycledim (long nshift, long start, long end) const
 Returns new view/tensor cycling the sub-dimensions (start,...,end) with shift steps.
 
Tensor< T > & emul (const Tensor< T > &t)
 Inplace multiply by corresponding elements of argument Tensor.
 
const TensorIterator< T > & end () const
 End point for forward iteration.
 
Tensor< T > & fill (T x)
 Inplace fill with a scalar (legacy name)
 
Tensor< T > & fillindex ()
 Inplace fill with the index of each element.
 
Tensor< T > & fillrandom ()
 Inplace fill with random values ( [0,1] for floats, [0,MAXSIZE] for integers)
 
Tensor< Tflat ()
 Returns new view/tensor rehshaping to flat (1-d) tensor.
 
const Tensor< Tflat () const
 Returns new view/tensor rehshaping to flat (1-d) tensor.
 
Tensor< Tfusedim (long i)
 Returns new view/tensor fusing contiguous dimensions i and i+1.
 
const Tensor< Tfusedim (long i) const
 Returns new view/tensor fusing contiguous dimensions i and i+1.
 
Tensor< T > & gaxpy (T alpha, const Tensor< T > &t, T beta)
 Inplace generalized saxpy ... this = this*alpha + other*beta.
 
bool has_data () const
 
Tensor< Tmapdim (const std::vector< long > &map)
 Returns new view/tensor permuting the dimensions.
 
const Tensor< Tmapdim (const std::vector< long > &map) const
 Returns new view/tensor permuting the dimensions.
 
float_complex max (long *ind) const
 
double_complex max (long *ind) const
 
float_complex max (long *ind) const
 
double_complex max (long *ind) const
 
T max (long *ind=0) const
 Return the maximum value (and if ind is non-null, its index) in the Tensor.
 
float_complex min (long *ind) const
 
double_complex min (long *ind) const
 
float_complex min (long *ind) const
 
double_complex min (long *ind) const
 
T min (long *ind=0) const
 Return the minimum value (and if ind is non-null, its index) in the Tensor.
 
float_scalar_type normf () const
 Returns the Frobenius norm of the tensor.
 
template<class Q >
 operator Tensor< Q > () const
 Type conversion makes a deep copy.
 
Toperator() (const long ind[])
 Politically incorrect general indexing operation without bounds checking.
 
const Toperator() (const long ind[]) const
 Politically incorrect general indexing operation without bounds checking.
 
SliceTensor< Toperator() (const Slice &s0)
 Return a 1d SliceTensor that views the specified range of the 1d Tensor.
 
const Tensor< Toperator() (const Slice &s0) const
 Return a 1d SliceTensor that views the specified range of the 1d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, const Slice &s1)
 Return a 2d SliceTensor that views the specified range of the 2d Tensor.
 
const Tensor< Toperator() (const Slice &s0, const Slice &s1) const
 Return a 2d constant Tensor that views the specified range of the 2d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2)
 Return a 3d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2) const
 Return a 3d constant Tensor that views the specified range of the 3d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3)
 Return a 1-4d SliceTensor that views the specified range of the 4d Tensor.
 
const Tensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3) const
 Return a 1-4d constant Tensor that views the specified range of the 4d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4)
 Return a 1-5d SliceTensor that views the specified range of the 5d Tensor.
 
const Tensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4) const
 Return a 1-5d constant Tensor that views the specified range of the 5d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4, const Slice &s5)
 Return a 1-6d SliceTensor that views the specified range of the 6d Tensor.
 
const Tensor< Toperator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4, const Slice &s5) const
 Return a 1-6d constant Tensor that views the specified range of the 6d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, const Slice &s1, long k)
 Return a 2d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (const Slice &s0, const Slice &s1, long k) const
 Return a 2d constant Tensor that views the specified range of the 3d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, long j)
 Return a 1d SliceTensor that views the specified range of the 2d Tensor.
 
const Tensor< Toperator() (const Slice &s0, long j) const
 Return a 1d constant Tensor that views the specified range of the 2d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, long j, const Slice &s2)
 Return a 2d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (const Slice &s0, long j, const Slice &s2) const
 Return a 2d constant Tensor that views the specified range of the 3d Tensor.
 
SliceTensor< Toperator() (const Slice &s0, long j, long k)
 Return a 1d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (const Slice &s0, long j, long k) const
 Return a 1d constant Tensor that views the specified range of the 3d Tensor.
 
SliceTensor< Toperator() (const std::array< Slice, TENSOR_MAXDIM > &s)
 General slicing operation.
 
const Tensor< Toperator() (const std::array< Slice, TENSOR_MAXDIM > &s) const
 General slicing operation (const)
 
Toperator() (const std::vector< long > ind)
 General indexing operation with bounds checking.
 
const Toperator() (const std::vector< long > ind) const
 General indexing operation with bounds checking.
 
SliceTensor< Toperator() (const std::vector< Slice > &s)
 General slicing operation.
 
const Tensor< Toperator() (const std::vector< Slice > &s) const
 General slicing operation (const)
 
Toperator() (long i)
 1-d indexing operation without bounds checking.
 
const Toperator() (long i) const
 1-d indexing operation without bounds checking.
 
SliceTensor< Toperator() (long i, const Slice &s1)
 Return a 1d SliceTensor that views the specified range of the 2d Tensor.
 
const Tensor< Toperator() (long i, const Slice &s1) const
 Return a 1d SliceTensor that views the specified range of the 2d Tensor.
 
SliceTensor< Toperator() (long i, const Slice &s1, const Slice &s2)
 Return a 2d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (long i, const Slice &s1, const Slice &s2) const
 Return a 2d constant Tensor that views the specified range of the 3d Tensor.
 
SliceTensor< Toperator() (long i, const Slice &s1, long k)
 Return a 1d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (long i, const Slice &s1, long k) const
 Return a 1d constant Tensor that views the specified range of the 3d Tensor.
 
Toperator() (long i, long j)
 2-d indexing operation without bounds checking.
 
const Toperator() (long i, long j) const
 2-d indexing operation without bounds checking.
 
SliceTensor< Toperator() (long i, long j, const Slice &s2)
 Return a 1d SliceTensor that views the specified range of the 3d Tensor.
 
const Tensor< Toperator() (long i, long j, const Slice &s2) const
 Return a 1d constant Tensor that views the specified range of the 3d Tensor.
 
Toperator() (long i, long j, long k)
 3-d indexing operation without bounds checking.
 
const Toperator() (long i, long j, long k) const
 3-d indexing operation without bounds checking.
 
Toperator() (long i, long j, long k, long l)
 4-d indexing operation without bounds checking.
 
const Toperator() (long i, long j, long k, long l) const
 4-d indexing operation without bounds checking.
 
Toperator() (long i, long j, long k, long l, long m)
 5-d indexing operation without bounds checking.
 
const Toperator() (long i, long j, long k, long l, long m) const
 5-d indexing operation without bounds checking.
 
Toperator() (long i, long j, long k, long l, long m, long n)
 6-d indexing operation without bounds checking.
 
const Toperator() (long i, long j, long k, long l, long m, long n) const
 6-d indexing operation without bounds checking.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type operator* (const Q &x) const
 Multiplication of tensor by a scalar of a supported type to produce a new tensor.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< T > & >::type operator*= (const Q &x)
 Inplace multiplication by scalar of supported type.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type operator+ (const Q &x) const
 Add a scalar of the same type to all elements of a tensor producing a new tensor.
 
template<typename Q >
Tensor< TENSOR_RESULT_TYPE(T, Q) > operator+ (const Tensor< Q > &t) const
 Addition of two tensors to produce a new tensor.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< T > & >::type operator+= (const Q &x)
 Inplace increment by scalar of supported type.
 
template<typename Q >
Tensor< T > & operator+= (const Tensor< Q > &t)
 Inplace addition of two tensors.
 
Tensor< Toperator- () const
 Unary negation producing a new tensor.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type operator- (const Q &x) const
 Subtract a scalar of the same type from all elements producing a new tensor.
 
template<typename Q >
Tensor< TENSOR_RESULT_TYPE(T, Q) > operator- (const Tensor< Q > &t) const
 Subtraction of two tensors to produce a new tensor.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< T > & >::type operator-= (const Q &x)
 Inplace decrement by scalar of supported type.
 
template<typename Q >
Tensor< T > & operator-= (const Tensor< Q > &t)
 Inplace subtraction of two tensors.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type operator/ (const Q &x) const
 Divide tensor by a scalar of a supported type to produce a new tensor.
 
Tensor< T > & operator= (const Tensor< T > &t)
 Assignment is shallow (same as copy constructor)
 
Tensor< T > & operator= (T x)
 Inplace fill tensor with scalar.
 
Toperator[] (long i)
 1-d indexing operation using [] without bounds checking.
 
const Toperator[] (long i) const
 1-d indexing operation using [] without bounds checking.
 
T product () const
 Return the product of all elements of the tensor.
 
Tptr ()
 Returns a pointer to the internal data.
 
const Tptr () const
 Returns a pointer to the internal data.
 
Tensor< Treshape (const std::vector< long > &d)
 Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
 
const Tensor< Treshape (const std::vector< long > &d) const
 Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
 
Tensor< Treshape (int ndimnew, const long *d)
 Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
 
const Tensor< Treshape (int ndimnew, const long *d) const
 Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
 
Tensor< Treshape (long dim0)
 Returns new view/tensor rehapings to conforming 1-d tensor with given dimension.
 
const Tensor< Treshape (long dim0) const
 Returns new view/tensor rehapings to conforming 1-d tensor with given dimension.
 
Tensor< Treshape (long dim0, long dim1)
 Returns new view/tensor rehaping to conforming 2-d tensor with given dimensions.
 
const Tensor< Treshape (long dim0, long dim1) const
 Returns new view/tensor rehaping to conforming 2-d tensor with given dimensions.
 
Tensor< Treshape (long dim0, long dim1, long dim2)
 Returns new view/tensor rehaping to conforming 3-d tensor with given dimensions.
 
const Tensor< Treshape (long dim0, long dim1, long dim2) const
 Returns new view/tensor rehaping to conforming 3-d tensor with given dimensions.
 
Tensor< Treshape (long dim0, long dim1, long dim2, long dim3)
 Returns new view/tensor rehaping to conforming 4-d tensor with given dimensions.
 
const Tensor< Treshape (long dim0, long dim1, long dim2, long dim3) const
 Returns new view/tensor rehaping to conforming 4-d tensor with given dimensions.
 
Tensor< Treshape (long dim0, long dim1, long dim2, long dim3, long dim4)
 Returns new view/tensor rehaping to conforming 5-d tensor with given dimensions.
 
const Tensor< Treshape (long dim0, long dim1, long dim2, long dim3, long dim4) const
 Returns new view/tensor rehaping to conforming 5-d tensor with given dimensions.
 
Tensor< Treshape (long dim0, long dim1, long dim2, long dim3, long dim4, long dim5)
 Returns new view/tensor rehaping to conforming 6-d tensor with given dimensions.
 
const Tensor< Treshape (long dim0, long dim1, long dim2, long dim3, long dim4, long dim5) const
 Returns new view/tensor rehaping to conforming 6-d tensor with given dimensions.
 
template<typename Q >
IsSupported< TensorTypeData< Q >, Tensor< T > & >::type scale (Q x)
 Inplace multiplication by scalar of supported type (legacy name)
 
Tensor< T > & screen (double x)
 Inplace set elements of *this less than x in absolute magnitude to zero.
 
Tensor< Tsplitdim (long i, long dimi0, long dimi1)
 Returns new view/tensor splitting dimension i as dimi0*dimi1 to produce conforming d+1 dimension tensor.
 
const Tensor< Tsplitdim (long i, long dimi0, long dimi1) const
 Returns new view/tensor splitting dimension i as dimi0*dimi1 to produce conforming d+1 dimension tensor.
 
T sum () const
 Returns the sum of all elements of the tensor.
 
T sumsq () const
 Returns the sum of the squares of the elements.
 
Tensor< Tswapdim (long idim, long jdim)
 Returns new view/tensor swaping dimensions i and j.
 
const Tensor< Tswapdim (long idim, long jdim) const
 Returns new view/tensor swaping dimensions i and j.
 
template<class Q >
 TENSOR_RESULT_TYPE (T, Q) trace_conj(const Tensor< Q > &t) const
 Return the trace of two tensors with complex conjugate of the leftmost (i.e., this)
 
template<class Q , class R >
TensorIterator< T, Q, Rternary_iterator (const Tensor< Q > &q, const Tensor< R > &r, long iterlevel=0, bool optimize=true, bool fusedim=true, long jdim=default_jdim) const
 Return iterator over three tensors.
 
T trace (const Tensor< T > &t) const
 Return the trace of two tensors (no complex conjugate invoked)
 
TensorIterator< Tunary_iterator (long iterlevel=0, bool optimize=true, bool fusedim=true, long jdim=default_jdim) const
 Return iterator over single tensor.
 
template<typename opT >
Tensor< T > & unaryop (opT &op)
 Inplace apply a unary function to each element of the tensor.
 
- Public Member Functions inherited from madness::BaseTensor
 BaseTensor ()
 
virtual ~BaseTensor ()
 
bool conforms (const BaseTensor *t) const
 Returns true if this and *t are the same shape and size.
 
long dim (int i) const
 Returns the size of dimension i.
 
const long * dims () const
 Returns the array of tensor dimensions.
 
long id () const
 Returns the typeid of the tensor (c.f., TensorTypeData<T> )
 
bool iscontiguous () const
 Returns true if the tensor refers to contiguous memory locations.
 
long ndim () const
 Returns the number of dimensions in the tensor.
 
long size () const
 Returns the number of elements in the tensor.
 
long stride (int i) const
 Returns the stride associated with dimension i.
 
const long * strides () const
 Returns the array of tensor strides.
 

Public Attributes

std::array< Slice, TENSOR_MAXDIMthisslice
 

Friends

GenTensor< Tcopy (const SliceLowRankTensor< T > &other)
 

Additional Inherited Members

- Public Types inherited from madness::GenTensor< T >
typedef TensorTypeData< T >::float_scalar_type float_scalar_type
 C++ typename of the floating point type associated with scalar real type.
 
typedef TensorTypeData< T >::scalar_type scalar_type
 C++ typename of the real type associated with a complex type.
 
- Public Types inherited from madness::Tensor< T >
typedef TensorTypeData< T >::float_scalar_type float_scalar_type
 C++ typename of the floating point type associated with scalar real type.
 
typedef TensorTypeData< T >::scalar_type scalar_type
 C++ typename of the real type associated with a complex type.
 
typedef T type
 C++ typename of this tensor.
 
- Static Public Member Functions inherited from madness::GenTensor< T >
static double fac_reduce ()
 return the additional safety for rank reduction
 
static double fac_reduce ()
 
static double facReduce ()
 
- Static Public Member Functions inherited from madness::Tensor< T >
static bool bounds_checking ()
 Return true if bounds checking was enabled at compile time.
 
- Static Public Member Functions inherited from madness::BaseTensor
static int get_instance_count ()
 Returns the count of all current instances of tensors & slice tensors of all types.
 
- Protected Member Functions inherited from madness::Tensor< T >
void allocate (long nd, const long d[], bool dozero)
 
void deallocate ()
 
- Protected Member Functions inherited from madness::BaseTensor
void cycledim_inplace (long shift, long start, long end)
 Cyclic shift of dimensions.
 
void flat_inplace ()
 Reshapes the tensor inplace into 1D.
 
void fusedim_inplace (long i)
 Fuses dimensions i and i+1.
 
void mapdim_inplace (const std::vector< long > &map)
 General permutation of dimensions.
 
void reshape_inplace (const std::vector< long > &d)
 Reshapes the tensor inplace.
 
void reshape_inplace (int ndimnew, const long *d)
 Reshapes the tensor inplace.
 
void set_dims_and_size (long nd, const long d[])
 
void splitdim_inplace (long i, long dimi0, long dimi1)
 Splits dimension i.
 
void swapdim_inplace (long i, long j)
 Swaps the dimensions.
 
- Protected Attributes inherited from madness::Tensor< T >
T *MADNESS_RESTRICT _p
 
TENSOR_SHARED_PTR< T_shptr
 
- Protected Attributes inherited from madness::BaseTensor
long _dim [TENSOR_MAXDIM]
 Size of each dimension.
 
long _id
 Id from TensorTypeData<T> in type_data.h.
 
long _ndim
 Number of dimensions (-1=invalid; 0=no supported; >0=tensor)
 
long _size
 Number of elements in the tensor.
 
long _stride [TENSOR_MAXDIM]
 Increment between elements in each dimension.
 

Detailed Description

template<typename T>
class madness::SliceLowRankTensor< T >

implements a temporary(!) slice of a LowRankTensor

Constructor & Destructor Documentation

◆ SliceLowRankTensor() [1/3]

template<typename T >
madness::SliceLowRankTensor< T >::SliceLowRankTensor ( )
inline

default ctor

◆ SliceLowRankTensor() [2/3]

template<typename T >
madness::SliceLowRankTensor< T >::SliceLowRankTensor ( const GenTensor< T > &  gt,
const std::vector< Slice > &  s 
)
inline

ctor with a GenTensor; shallow

◆ SliceLowRankTensor() [3/3]

template<typename T >
madness::SliceLowRankTensor< T >::SliceLowRankTensor ( const GenTensor< T > &  gt,
const std::array< Slice, TENSOR_MAXDIM > &  s 
)
inline

ctor with a GenTensor; shallow

Member Function Documentation

◆ gaxpy()

template<typename T >
void madness::SliceLowRankTensor< T >::gaxpy ( const std::array< Slice, TENSOR_MAXDIM > &  lslice,
const GenTensor< T > &  rhs,
const std::array< Slice, TENSOR_MAXDIM > &  rslice,
const double &  beta 
)
inline

◆ operator+=() [1/2]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator+= ( const GenTensor< T > &  rhs)
inline

◆ operator+=() [2/2]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator+= ( const SliceLowRankTensor< T > &  rhs)
inline

◆ operator-=() [1/2]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator-= ( const GenTensor< T > &  rhs)
inline

◆ operator-=() [2/2]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator-= ( const SliceLowRankTensor< T > &  rhs)
inline

◆ operator=() [1/3]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator= ( const GenTensor< T > &  rhs)
inline

assignment as in g(s) = g1;

References MADNESS_ASSERT, and madness::print().

◆ operator=() [2/3]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator= ( const SliceLowRankTensor< T > &  rhs)
inline

assignment as in g(s) = g1(s);

References MADNESS_ASSERT, and madness::print().

◆ operator=() [3/3]

template<typename T >
SliceLowRankTensor< T > & madness::SliceLowRankTensor< T >::operator= ( const T number)
inline

Friends And Related Symbol Documentation

◆ copy

template<typename T >
GenTensor< T > copy ( const SliceLowRankTensor< T > &  other)
friend

Member Data Documentation

◆ thisslice

template<typename T >
std::array<Slice,TENSOR_MAXDIM> madness::SliceLowRankTensor< T >::thisslice

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