A local operator acting on an undefined site. More...
#include <operators.h>
Public Member Functions | |
OneOp () | |
Default ctor. More... | |
OneOp (Tensor< 3 > t_) | |
Standard ctor, only initialises the underlying tensor. More... | |
template<typename Archive > | |
void | serialize (Archive &ar, const unsigned int in_version) |
Boost archiving. More... | |
Public Member Functions inherited from syten::Tensor< 3 > | |
MemoryUsage::MemorySize | allocSize () const |
allocSize()/memory_size.h support. More... | |
bool | dense_is_standard () const |
Returns true if all dense blocks are in standard format. More... | |
void | make_dense_cuda () |
Brings all dense tensors into CUDA form. More... | |
void | make_dense_standard () |
Brings all dense tensors into standard form. More... | |
void | maybe_make_dense_cuda () |
Conditionally transforms all stored dense tensors into CUDA dense tensors if CUDA support is compiled in, at least one CUDA device is enabled and the individual blocks are larger than the CUDA threshold. More... | |
Tensor< rank > | return_as_dense_standard () const |
Returns a copy of *this in dense standard format. More... | |
void | serialize (Archive &ar, unsigned int const in_version) |
Boost serialisation. More... | |
Tensor () | |
Default ctor, initialised with invalid leg directions. More... | |
Tensor (std::array< Direction, rank > const &dirs_) | |
Zero-tensor with the specified directions. More... | |
Tensor (std::array< Direction, rank > const &dirs_, Index size) | |
Zero-tensor with the specified directions and default-constructed blocks. More... | |
Block & | operator[] (Index i) |
Vector-like interface. More... | |
Block const & | operator[] (Index i) const |
Vector-like interface. More... | |
Block & | at (Index i) |
Vector-like interface. More... | |
Block const & | at (Index i) const |
Vector-like interface. More... | |
std::vector< Block >::iterator | begin () |
Vector-like interface. More... | |
std::vector< Block >::const_iterator | begin () const |
Vector-like interface. More... | |
std::vector< Block >::const_iterator | cbegin () const |
Vector-like interface. More... | |
std::vector< Block >::iterator | end () |
Vector-like interface. More... | |
std::vector< Block >::const_iterator | end () const |
Vector-like interface. More... | |
std::vector< Block >::const_iterator | cend () const |
Vector-like interface. More... | |
std::vector< Block >::iterator | erase (typename std::vector< Block >::const_iterator x) |
Vector-like interface. More... | |
std::vector< Block >::iterator | erase (typename std::vector< Block >::const_iterator x, typename std::vector< Block >::const_iterator y) |
Vector-like interface. More... | |
Index | size () const |
Vector-like interface. More... | |
bool | empty () const |
Vector-like interface. More... | |
void | reserve (Index i) |
Vector-like interface. More... | |
void | resize (Index i) |
Vector-like interface. More... | |
void | clear () |
Vector-like interface. More... | |
void | shrink_to_fit () |
Vector-like interface. More... | |
void | push_back (Block const &b) |
Vector-like interface. More... | |
void | push_back (Block &&b) |
Vector-like interface. More... | |
void | emplace_back (Types &&... args) |
Vector-like interface. More... | |
Basis | getBasis (Index leg) const |
Constructs the basis on the specified leg. More... | |
Basis | b (Index leg) const |
Shortcut for getBasis . More... | |
BasisMap | getBasisMap (Index leg) const |
Constructs a basis map on the specified leg, suitable to quickly check for the existence of sectors. More... | |
Basis | getAddedBasis (Index leg) const |
Constructs the maximal basis on the specified leg. More... | |
Index | getReducedDim (Index leg) const |
Get the sum of all reduced tensor dimensions on the specified leg. More... | |
std::array< Index, rank > | getReducedDims () const |
c.f. getReducedDim(), for all legs More... | |
Tensor const & | print_bases () const |
Index | getTotalDim (Index leg) const |
Get the sum of the tensor-producted block dimensions on the specified leg. More... | |
std::array< Index, rank > | getTotalDims () const |
c.f. getTotalDim(), for all legs More... | |
Index | getMaxBlocksize (Index leg) const |
gets the sidelength of the largest block on the specified leg More... | |
Index | getAvgBlocksize (Index leg) const |
get averaged sidelength of blocks as \( \left[\frac{1}{N} \sum_i m_i^3 \right]^{1/3} \) More... | |
std::size_t | getDenseSize () const |
Returns the total number of dense tensor entries. More... | |
bool | hasCGC () const |
Returns true if the tensor a symmetry which has a CGC space (typically) attached, e.g. More... | |
void | reduce (EliminateZeros const ezeros=EliminateZeros::Yes, bool const add_cgc=false, bool const no_para=false, bool const no_zero_check_dense=false) |
Reduce the number of blocks in the tensor by adding parallel blocks together. More... | |
void | add (TensorBlock< rank > &&t) |
Adds a block to the tensor. More... | |
void | add (TensorBlock< rank > const &t) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
void | add (Args &&... args) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
Static Public Attributes | |
static constexpr Index | aIdx {2} |
auxiliary index used to connect to second OneOp object. More... | |
static constexpr int | aInt {2} |
auxiliary index used to connect to second OneOp object. More... | |
static constexpr Index | dIdx {3} |
lower index, connecting to state. More... | |
static constexpr int | dInt {3} |
lower index, connecting to state. More... | |
static const std::array< Direction, 3 > | dirs = {Direction::Inc, Direction::Out, Direction::Out} |
defines leg directions for OneOp objects. More... | |
static constexpr Index | uIdx {1} |
upper index, ‘new’ physical index. More... | |
static constexpr int | uInt {1} |
upper index, ‘new’ physical index. More... | |
static constexpr unsigned int | version = 1 |
current version, bump if you change one of the data structures here More... | |
Static Public Attributes inherited from syten::Tensor< 3 > | |
static constexpr Rank | this_rank |
Helper to retrieve the tensor rank from an object of this type. More... | |
static constexpr unsigned int | version |
Bump this if one of the above changes. More... | |
Additional Inherited Members | |
Public Types inherited from syten::Tensor< 3 > | |
typedef TensorBlock< rank > | Block |
Type of the underlying block, a tensor is simply a set of such blocks. More... | |
typedef Block::CGC | CGC |
Type of a single CGC space. More... | |
typedef Block::CGCSet | CGCSet |
Type of the set of all CGC spaces. More... | |
typedef Block::Dense | Dense |
The standard dense tensor type of the reduced tensors (i.e. excluding CGC spaces) More... | |
typedef Block::DenseStorage | DenseStorage |
The storage dense tensor type of the reduced tensors (i.e. excluding CGC spaces) More... | |
typedef Block::Sym | Sym |
Type of the symmetry transformation description of a given block. More... | |
Public Attributes inherited from syten::Tensor< 3 > | |
std::vector< Block > | blocks |
Blocks composing this tensor. More... | |
std::array< Direction, rank > | dirs |
Directions of the individual legs (incoming/outgoing) More... | |
A local operator acting on an undefined site.
Once applied to a site, it can be multiplied with a neighbouring operator to give a two-site gate.