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::detail::prempo_key< pos_t, tag_type, index_type > Struct Template Reference

#include <tagged_mpo_maker_optim.hpp>

Public Types

enum  kind_type { trivial_left, bulk, bulk_no_merge, trivial_right }
 
typedef std::pair< pos_t,
tag_type > 
pos_op_type
 

Public Member Functions

 prempo_key (kind_type k_=bulk, index_type o_=0)
 
 prempo_key (std::vector< pos_op_type > const &po_, index_type o_=0)
 
bool operator== (prempo_key const &lhs) const
 
bool operator< (prempo_key const &lhs) const
 

Public Attributes

kind_type kind
 
std::vector< pos_op_typepos_op
 
index_type offset
 

Detailed Description

template<typename pos_t, typename tag_type, typename index_type>
struct generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >

Definition at line 53 of file tagged_mpo_maker_optim.hpp.

Member Typedef Documentation

template<typename pos_t , typename tag_type , typename index_type >
typedef std::pair<pos_t, tag_type> generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::pos_op_type

Definition at line 57 of file tagged_mpo_maker_optim.hpp.

Member Enumeration Documentation

template<typename pos_t , typename tag_type , typename index_type >
enum generate_mpo::detail::prempo_key::kind_type

Constructor & Destructor Documentation

template<typename pos_t , typename tag_type , typename index_type >
generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::prempo_key ( kind_type  k_ = bulk,
index_type  o_ = 0 
)
inline
template<typename pos_t , typename tag_type , typename index_type >
generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::prempo_key ( std::vector< pos_op_type > const &  po_,
index_type  o_ = 0 
)
inline

Member Function Documentation

template<typename pos_t , typename tag_type , typename index_type >
bool generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::operator< ( prempo_key< pos_t, tag_type, index_type > const &  lhs) const
inline

Definition at line 79 of file tagged_mpo_maker_optim.hpp.

80  {
81  if (kind != lhs.kind) return kind < lhs.kind;
82  return (pos_op == lhs.pos_op) ? offset < lhs.offset : pos_op < lhs.pos_op;
83  }
template<typename pos_t , typename tag_type , typename index_type >
bool generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::operator== ( prempo_key< pos_t, tag_type, index_type > const &  lhs) const
inline

Definition at line 67 of file tagged_mpo_maker_optim.hpp.

68  {
69  if (kind != lhs.kind)
70  return false;
71  if (kind == trivial_left)
72  return true;
73  if (kind == trivial_right)
74  return true;
75 
76  return (pos_op == lhs.pos_op) && (offset == lhs.offset);
77  }

Member Data Documentation

template<typename pos_t , typename tag_type , typename index_type >
kind_type generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::kind

Definition at line 60 of file tagged_mpo_maker_optim.hpp.

template<typename pos_t , typename tag_type , typename index_type >
index_type generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::offset

Definition at line 62 of file tagged_mpo_maker_optim.hpp.

template<typename pos_t , typename tag_type , typename index_type >
std::vector<pos_op_type> generate_mpo::detail::prempo_key< pos_t, tag_type, index_type >::pos_op

Definition at line 61 of file tagged_mpo_maker_optim.hpp.


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