ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | List of all members
generate_mpo::Operator_Term< Matrix, SymmGroup > Struct Template Reference

#include <utils.hpp>

Public Types

typedef block_matrix< Matrix,
SymmGroup > 
op_t
 
typedef Lattice::pos_t pos_t
 
typedef std::pair< pos_t, op_top_pair_t
 

Public Member Functions

 Operator_Term ()
 
void canonical_order ()
 
bool operator< (Operator_Term const &rhs) const
 
bool site_match (Operator_Term const &rhs) const
 
bool overlap (Operator_Term const &rhs) const
 

Public Attributes

std::vector< op_pair_toperators
 
op_t fill_operator
 
bool with_sign
 

Detailed Description

template<class Matrix, class SymmGroup>
struct generate_mpo::Operator_Term< Matrix, SymmGroup >

Definition at line 112 of file utils.hpp.

Member Typedef Documentation

template<class Matrix, class SymmGroup>
typedef std::pair<pos_t, op_t> generate_mpo::Operator_Term< Matrix, SymmGroup >::op_pair_t

Definition at line 116 of file utils.hpp.

template<class Matrix, class SymmGroup>
typedef block_matrix<Matrix, SymmGroup> generate_mpo::Operator_Term< Matrix, SymmGroup >::op_t

Definition at line 114 of file utils.hpp.

template<class Matrix, class SymmGroup>
typedef Lattice::pos_t generate_mpo::Operator_Term< Matrix, SymmGroup >::pos_t

Definition at line 115 of file utils.hpp.

Constructor & Destructor Documentation

template<class Matrix, class SymmGroup>
generate_mpo::Operator_Term< Matrix, SymmGroup >::Operator_Term ( )
inline

Definition at line 122 of file utils.hpp.

122 : with_sign(false) {}

Member Function Documentation

template<class Matrix, class SymmGroup>
void generate_mpo::Operator_Term< Matrix, SymmGroup >::canonical_order ( )
inline

Definition at line 124 of file utils.hpp.

125  {
126  std::sort(operators.begin(), operators.end(),
127  boost::bind(&op_pair_t::first, _1) <
128  boost::bind(&op_pair_t::first, _2));
129  }
std::vector< op_pair_t > operators
Definition: utils.hpp:118
template<class Matrix, class SymmGroup>
bool generate_mpo::Operator_Term< Matrix, SymmGroup >::operator< ( Operator_Term< Matrix, SymmGroup > const &  rhs) const
inline

Definition at line 131 of file utils.hpp.

132  {
133  if (operators[0].first == rhs.operators[0].first)
134  return operators.size() >= rhs.operators.size();
135  return operators[0].first < rhs.operators[0].first;
136  }
std::vector< op_pair_t > operators
Definition: utils.hpp:118
template<class Matrix, class SymmGroup>
bool generate_mpo::Operator_Term< Matrix, SymmGroup >::overlap ( Operator_Term< Matrix, SymmGroup > const &  rhs) const
inline

Definition at line 158 of file utils.hpp.

159  {
160  return !( (operators.rbegin()->first < rhs.operators.begin()->first) || (rhs.operators.rbegin()->first < operators.begin()->first) );
161  }
std::vector< op_pair_t > operators
Definition: utils.hpp:118
template<class Matrix, class SymmGroup>
bool generate_mpo::Operator_Term< Matrix, SymmGroup >::site_match ( Operator_Term< Matrix, SymmGroup > const &  rhs) const
inline

Definition at line 138 of file utils.hpp.

139  {
140  if (operators.size() == rhs.operators.size())
141  {
142  bool ret = true;
143  for (std::size_t p=0; p<operators.size() && ret; ++p)
144  ret = (operators[p].first == rhs.operators[p].first);
145  return ret;
146  } else if (operators.size() == 2 && rhs.operators.size() == 1)
147  return (operators[0].first == rhs.operators[0].first || operators[1].first == rhs.operators[0].first);
148  else if (operators.size() == 1 && rhs.operators.size() == 2)
149  return (operators[0].first == rhs.operators[0].first || operators[0].first == rhs.operators[1].first);
150  else
151  {
152  throw std::runtime_error("site_match not implemented for this type of operator." );
153  return false;
154  }
155 
156  }
std::vector< op_pair_t > operators
Definition: utils.hpp:118

Member Data Documentation

template<class Matrix, class SymmGroup>
op_t generate_mpo::Operator_Term< Matrix, SymmGroup >::fill_operator

Definition at line 119 of file utils.hpp.

template<class Matrix, class SymmGroup>
std::vector<op_pair_t> generate_mpo::Operator_Term< Matrix, SymmGroup >::operators

Definition at line 118 of file utils.hpp.

template<class Matrix, class SymmGroup>
bool generate_mpo::Operator_Term< Matrix, SymmGroup >::with_sign

Definition at line 120 of file utils.hpp.


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