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

#include <indexing_sorted.hpp>

Public Types

typedef SymmGroup::charge charge
 
typedef SymmGroup::charge charge
 
typedef SymmGroup::charge charge
 

Public Member Functions

 basis_iterator_ (Index< SymmGroup > const &idx, bool at_end=false)
 
std::pair< charge, std::size_t > operator* () const
 
boost::shared_ptr< std::pair
< charge, std::size_t > > 
operator-> () const
 
basis_iterator_operator++ ()
 
basis_iterator_ operator+ (int k)
 
bool end () const
 
 basis_iterator_ (Index< SymmGroup > const &idx, bool at_end=false)
 
std::pair< charge, std::size_t > operator* () const
 
boost::shared_ptr< std::pair
< charge, std::size_t > > 
operator-> () const
 
basis_iterator_operator++ ()
 
basis_iterator_ operator+ (int k)
 
bool end () const
 
 basis_iterator_ (Index< SymmGroup > const &idx, bool at_end=false)
 
std::pair< charge, std::size_t > operator* () const
 
boost::shared_ptr< std::pair
< charge, std::size_t > > 
operator-> () const
 
basis_iterator_operator++ ()
 
basis_iterator_ operator+ (int k)
 
bool end () const
 

Detailed Description

template<class SymmGroup>
class basis_iterator_< SymmGroup >

Definition at line 97 of file indexing_sorted.hpp.

Member Typedef Documentation

template<class SymmGroup>
typedef SymmGroup::charge basis_iterator_< SymmGroup >::charge

Definition at line 384 of file indexing_unsorted.hpp.

template<class SymmGroup>
typedef SymmGroup::charge basis_iterator_< SymmGroup >::charge

Definition at line 391 of file indexing_stable.hpp.

template<class SymmGroup>
typedef SymmGroup::charge basis_iterator_< SymmGroup >::charge

Definition at line 394 of file indexing_sorted.hpp.

Constructor & Destructor Documentation

template<class SymmGroup>
basis_iterator_< SymmGroup >::basis_iterator_ ( Index< SymmGroup > const &  idx,
bool  at_end = false 
)
inline

Definition at line 396 of file indexing_sorted.hpp.

397  : idx_(idx)
398  , cur_block(idx.begin())
399  , cur_i(0)
400  , max_i(cur_block->second)
401  { }
iterator begin()
template<class SymmGroup>
basis_iterator_< SymmGroup >::basis_iterator_ ( Index< SymmGroup > const &  idx,
bool  at_end = false 
)
inline

Definition at line 393 of file indexing_stable.hpp.

394  : idx_(idx)
395  , cur_block(idx.begin())
396  , cur_i(0)
397  , max_i(cur_block->second)
398  { }
iterator begin()
template<class SymmGroup>
basis_iterator_< SymmGroup >::basis_iterator_ ( Index< SymmGroup > const &  idx,
bool  at_end = false 
)
inline

Definition at line 386 of file indexing_unsorted.hpp.

387  : idx_(idx)
388  , cur_block(idx.begin())
389  , cur_i(0)
390  , max_i(cur_block->second)
391  { }
iterator begin()

Member Function Documentation

template<class SymmGroup>
bool basis_iterator_< SymmGroup >::end ( ) const
inline

Definition at line 427 of file indexing_unsorted.hpp.

428  {
429  return cur_block == idx_.end();
430  }
template<class SymmGroup>
bool basis_iterator_< SymmGroup >::end ( ) const
inline

Definition at line 434 of file indexing_stable.hpp.

435  {
436  return cur_block == idx_.end();
437  }
template<class SymmGroup>
bool basis_iterator_< SymmGroup >::end ( ) const
inline

Definition at line 437 of file indexing_sorted.hpp.

438  {
439  return cur_block == idx_.end();
440  }
template<class SymmGroup>
std::pair<charge, std::size_t> basis_iterator_< SymmGroup >::operator* ( ) const
inline

Definition at line 393 of file indexing_unsorted.hpp.

394  {
395  return std::make_pair(cur_block->first, cur_i);
396  }
template<class SymmGroup>
std::pair<charge, std::size_t> basis_iterator_< SymmGroup >::operator* ( ) const
inline

Definition at line 400 of file indexing_stable.hpp.

401  {
402  return std::make_pair(cur_block->first, cur_i);
403  }
template<class SymmGroup>
std::pair<charge, std::size_t> basis_iterator_< SymmGroup >::operator* ( ) const
inline

Definition at line 403 of file indexing_sorted.hpp.

404  {
405  return std::make_pair(cur_block->first, cur_i);
406  }
template<class SymmGroup>
basis_iterator_ basis_iterator_< SymmGroup >::operator+ ( int  k)
inline

Definition at line 418 of file indexing_unsorted.hpp.

419  {
420  assert( k >= 0 );
421  basis_iterator_ r = *this;
422  for ( ; k > 0; --k)
423  ++r;
424  return r;
425  }
template<class SymmGroup>
basis_iterator_ basis_iterator_< SymmGroup >::operator+ ( int  k)
inline

Definition at line 425 of file indexing_stable.hpp.

426  {
427  assert( k >= 0 );
428  basis_iterator_ r = *this;
429  for ( ; k > 0; --k)
430  ++r;
431  return r;
432  }
template<class SymmGroup>
basis_iterator_ basis_iterator_< SymmGroup >::operator+ ( int  k)
inline

Definition at line 428 of file indexing_sorted.hpp.

429  {
430  assert( k >= 0 );
431  basis_iterator_ r = *this;
432  for ( ; k > 0; --k)
433  ++r;
434  return r;
435  }
template<class SymmGroup>
basis_iterator_& basis_iterator_< SymmGroup >::operator++ ( )
inline

Definition at line 403 of file indexing_unsorted.hpp.

404  {
405  ++cur_i;
406  if (cur_i != max_i)
407  return *this;
408  else {
409  ++cur_block;
410  if (cur_block != idx_.end()) {
411  cur_i = 0;
412  max_i = cur_block->second;
413  }
414  return *this;
415  }
416  }
template<class SymmGroup>
basis_iterator_& basis_iterator_< SymmGroup >::operator++ ( )
inline

Definition at line 410 of file indexing_stable.hpp.

411  {
412  ++cur_i;
413  if (cur_i != max_i)
414  return *this;
415  else {
416  ++cur_block;
417  if (cur_block != idx_.end()) {
418  cur_i = 0;
419  max_i = cur_block->second;
420  }
421  return *this;
422  }
423  }
template<class SymmGroup>
basis_iterator_& basis_iterator_< SymmGroup >::operator++ ( )
inline

Definition at line 413 of file indexing_sorted.hpp.

414  {
415  ++cur_i;
416  if (cur_i != max_i)
417  return *this;
418  else {
419  ++cur_block;
420  if (cur_block != idx_.end()) {
421  cur_i = 0;
422  max_i = cur_block->second;
423  }
424  return *this;
425  }
426  }
template<class SymmGroup>
boost::shared_ptr<std::pair<charge, std::size_t> > basis_iterator_< SymmGroup >::operator-> ( ) const
inline

Definition at line 398 of file indexing_unsorted.hpp.

399  {
400  return boost::shared_ptr<std::pair<charge, std::size_t> >(new std::pair<charge, std::size_t>(cur_block->first, cur_i));
401  }
template<class SymmGroup>
boost::shared_ptr<std::pair<charge, std::size_t> > basis_iterator_< SymmGroup >::operator-> ( ) const
inline

Definition at line 405 of file indexing_stable.hpp.

406  {
407  return boost::shared_ptr<std::pair<charge, std::size_t> >(new std::pair<charge, std::size_t>(cur_block->first, cur_i));
408  }
template<class SymmGroup>
boost::shared_ptr<std::pair<charge, std::size_t> > basis_iterator_< SymmGroup >::operator-> ( ) const
inline

Definition at line 408 of file indexing_sorted.hpp.

409  {
410  return boost::shared_ptr<std::pair<charge, std::size_t> >(new std::pair<charge, std::size_t>(cur_block->first, cur_i));
411  }

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