ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
basis_sector_iterator_< SymmGroup > Class Template Reference

#include <basis_sector_iterators.h>

Inheritance diagram for basis_sector_iterator_< SymmGroup >:

Public Member Functions

 basis_sector_iterator_ ()
 
 basis_sector_iterator_ (size_t L_, Index< SymmGroup > const &phys, charge initc_)
 
std::vector< local_state > const & operator* () const
 
void operator++ ()
 
bool operator== (basis_sector_iterator_< SymmGroup > const &rhs) const
 

Detailed Description

template<class SymmGroup>
class basis_sector_iterator_< SymmGroup >

Definition at line 38 of file basis_sector_iterators.h.

Constructor & Destructor Documentation

template<class SymmGroup>
basis_sector_iterator_< SymmGroup >::basis_sector_iterator_ ( )
inline

Definition at line 56 of file basis_sector_iterators.h.

57  : valid(false)
58  { }
template<class SymmGroup>
basis_sector_iterator_< SymmGroup >::basis_sector_iterator_ ( size_t  L_,
Index< SymmGroup > const &  phys,
charge  initc_ 
)
inline

Definition at line 60 of file basis_sector_iterators.h.

61  : valid(true)
62  , L(L_)
63  , initc(initc_)
64  , it(L, 0)
65  , state(L)
66  {
67  getter_fn = &boost::tuples::get<0, charge, boost::tuples::cons<size_t, boost::tuples::null_type> >;
68 
69  for (size_t i=0; i<phys.size(); ++i)
70  for (size_t j=0; j<phys[i].second; ++j)
71  alllocal.push_back( local_state(phys[i].first, j) );
72 
73  for (size_t i=0; i<L; ++i) {
74  state[i] = alllocal[it[i]];
75  }
76 
77  if (total_charge() != initc)
78  advance();
79  }
std::size_t size() const

Member Function Documentation

template<class SymmGroup>
std::vector<local_state> const& basis_sector_iterator_< SymmGroup >::operator* ( ) const
inline

Definition at line 81 of file basis_sector_iterators.h.

82  {
83  return state;
84  }
template<class SymmGroup>
void basis_sector_iterator_< SymmGroup >::operator++ ( )
inline

Definition at line 86 of file basis_sector_iterators.h.

87  {
88  advance();
89  }
template<class SymmGroup>
bool basis_sector_iterator_< SymmGroup >::operator== ( basis_sector_iterator_< SymmGroup > const &  rhs) const
inline

Definition at line 91 of file basis_sector_iterators.h.

92  {
93  if (valid != rhs.valid)
94  return false;
95  if (!valid)
96  return true;
97 
98  return (L == rhs.L) && (initc == rhs.initc) && (alllocal == rhs.alllocal) && std::equal(state.begin(), state.end(), rhs.state.begin());
99  }
std::pair< bool, typename Matrix::value_type > equal(block_matrix< Matrix, SymmGroup > const &reference, block_matrix< Matrix, SymmGroup > const &sample)
Definition: tag_detail.h:120

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