MPQC
3.0.0-alpha
|
RedundantCartesianIter objects loop through all possible combinations of a given number of axes. More...
#include <chemistry/qc/basis/cartiter.h>
Public Member Functions | |
RedundantCartesianIter (int l) | |
Create a object for the given angular momentum. | |
virtual int | bfn ()=0 |
Return the current Cartesian basis function number. | |
void | start () |
Initialize the iterator. | |
void | next () |
Move to the next combination of axes. | |
operator int () | |
Returns nonzero if the iterator currently hold valid data. | |
int | a () |
The current exponent of x. | |
int | b () |
The current exponent of y. | |
int | c () |
The current exponent of z. | |
int | l () |
The angular momentum. | |
int | l (int i) |
Returns a() if i==0, b() if i==1, and c() if i==2. | |
int | axis (int i) |
Return the i'th axis. | |
RedundantCartesianIter objects loop through all possible combinations of a given number of axes.
The difference between this class and CartesianIter is that the latter considers quanta equivalent, e.g. xy and yx are the same, whereas this class considers quanta unique (xy != yx). Thus CartesianIter(2) loops over 6 values, whereas RedundantCartesianIter(2) loops over 9, etc.
This class is used to compute the transformation matrices that maps a set of Cartesian functions to another set of Cartesian functions in a rotated coordinate system.