28#ifndef _chemistry_qc_basis_cartiter_h
29#define _chemistry_qc_basis_cartiter_h
53 virtual operator int() =0;
56 int n() {
return ((l_>=0)?((((l_)+2)*((l_)+1))>>1):0); }
58 int a() {
return a_; }
60 int b() {
return b_; }
62 int c() {
return c_; }
64 int l() {
return l_; }
66 int l(
int i) {
return i ? (i==1 ? b_ : c_) : a_; }
69 int bfn() {
return bfn_; }
101 operator int() {
return !done_; }
110 int l() {
return l_; }
114 int axis(
int i) {
return axis_[i]; }
125 for (
int i=0; i<l_; i++)
132 for (
int i=0; i<l_; i++) {
148 for (i=0; i<l_; i++)
if (axis_[i]==
axis) r++;
193 virtual int bfn()
const =0;
201 operator int()
const {
return !done_; }
204 int a()
const {
return e_[0]; }
206 int b()
const {
return e_[1]; }
208 int c()
const {
return e_[2]; }
210 int l()
const {
return l_; }
212 int l(
int i) {
return e_[i]; }
214 int axis(
int i) {
return axis_[i]; }
CartesianIter gives the ordering of the Cartesian functions within a shell for the particular integra...
Definition cartiter.h:35
virtual void start()=0
Start the iteration.
int n()
Returns the number of Cartesian functions.
Definition cartiter.h:56
int c()
Returns the exponent of z.
Definition cartiter.h:62
virtual void next()=0
Move to the next Cartesian function.
CartesianIter(int l)
Initialize an iterator for the given angular momentum.
int bfn()
Returns the number of the current basis function within the shell.
Definition cartiter.h:69
int l()
Returns the angular momentum.
Definition cartiter.h:64
int l(int i)
Returns a() if i==0, b() if i==1, and c() if i==2.
Definition cartiter.h:66
int b()
Returns the exponent of y.
Definition cartiter.h:60
int a()
Returns the exponent of x.
Definition cartiter.h:58
RedundantCartesianIter objects loop through all possible combinations of a given number of axes.
Definition cartiter.h:82
void next()
Move to the next combination of axes.
Definition cartiter.h:130
int axis(int i)
Return the i'th axis.
Definition cartiter.h:114
int l()
The angular momentum.
Definition cartiter.h:110
int a()
The current exponent of x.
Definition cartiter.h:153
void start()
Initialize the iterator.
Definition cartiter.h:118
int b()
The current exponent of y.
Definition cartiter.h:159
RedundantCartesianIter(int l)
Create a object for the given angular momentum.
int c()
The current exponent of z.
Definition cartiter.h:165
virtual int bfn()=0
Return the current Cartesian basis function number.
Like RedundantCartesianIter, except a, b, and c are fixed to a given value.
Definition cartiter.h:172
int axis(int i)
Return the i'th axis.
Definition cartiter.h:214
int a() const
The current exponent of x.
Definition cartiter.h:204
int c() const
The current exponent of z.
Definition cartiter.h:208
int b() const
The current exponent of y.
Definition cartiter.h:206
virtual int bfn() const =0
Return the current Cartesian basis function number.
RedundantCartesianSubIter(int l)
Create a object for the given angular momentum.
void next()
Move to the next combination of axes.
int l(int i)
Returns a() if i==0, b() if i==1, and c() if i==2.
Definition cartiter.h:212
virtual void start(int a, int b, int c)
Initialize the iterator.
int l() const
The angular momentum.
Definition cartiter.h:210
Contains all MPQC code up to version 3.
Definition mpqcin.h:14