|
MPQC
3.0.0-alpha
|
An Range represent a set of integers, [0, N). More...
#include <chemistry/qc/lmp2/sma.h>
Public Types | |
| enum | BlockingMethod { AtomBlocking, ShellBlocking, FunctionBlocking, ExtentBlocking } |
Public Member Functions | |
| Range (const sc::Ref< sc::GaussianBasisSet > &, BlockingMethod b=ShellBlocking, int blocksize=1) | |
| Range (int nindex, int block_size) | |
| Range (const std::vector< int > &block_size) | |
| void | init (const sc::Ref< sc::GaussianBasisSet > &, BlockingMethod b=ShellBlocking, int blocksize=1) |
| void | init (int nindex, int block_size) |
| void | clear () |
| int | nindex () const |
| Returns the dimension of this range. | |
| int | nblock () const |
| Returns the number of blocks. | |
| int | block_size (int i) const |
| Returns the size for the given block. | |
| int | max_block_size () const |
| Returns the maximum block size. | |
| int | block_offset (int i) const |
| Returns the offset for the given block. | |
| int | index_to_block (int i) const |
| Given an index, return the block in which that index is found. | |
| int | index_to_offset (int i) const |
| Given an index, return its offset within the block in which that index is found. | |
| int | basis_index_to_range_index (int i) const |
| Maps a basis function number to the number within this Range object. More... | |
| int | range_index_to_basis_index (int i) const |
| bool | operator== (const Range &r) const |
| bool | operator!= (const Range &r) const |
| bool | all_size_one () const |
| Returns true if all blocks are size 1. | |
| void | print (std::ostream &o=sc::ExEnv::out0()) const |
| void | write (sc::StateOut &) const |
| void | read (sc::StateIn &) |
An Range represent a set of integers, [0, N).
For example, one Range could represent the atomic orbitals and another could represent the molecular orbitals. An index is divided into user defined blocks.
| int sc::sma2::Range::basis_index_to_range_index | ( | int | i | ) | const |
Maps a basis function number to the number within this Range object.
This arises since ExtentBlocking must reorder shells to group shells with similar extents in the same block.