28 #ifndef _chemistry_qc_basis_cartiter_h
29 #define _chemistry_qc_basis_cartiter_h
49 virtual void start() =0;
51 virtual void next() =0;
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;
197 virtual void start(
int a,
int b,
int c);
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]; }
virtual void start()=0
Start the iteration.
RedundantCartesianIter(int l)
Create a object for the given angular momentum.
int l(int i)
Returns a() if i==0, b() if i==1, and c() if i==2.
Definition: cartiter.h:212
RedundantCartesianIter objects loop through all possible combinations of a given number of axes.
Definition: cartiter.h:82
virtual void start(int a, int b, int c)
Initialize the iterator.
RedundantCartesianSubIter(int l)
Create a object for the given angular momentum.
CartesianIter(int l)
Initialize an iterator for the given angular momentum.
int a()
The current exponent of x.
Definition: cartiter.h:153
CartesianIter gives the ordering of the Cartesian functions within a shell for the particular integra...
Definition: cartiter.h:35
int l()
Returns the angular momentum.
Definition: cartiter.h:64
Like RedundantCartesianIter, except a, b, and c are fixed to a given value.
Definition: cartiter.h:172
int l() const
The angular momentum.
Definition: cartiter.h:210
int b()
The current exponent of y.
Definition: cartiter.h:159
int a()
Returns the exponent of x.
Definition: cartiter.h:58
int axis(int i)
Return the i'th axis.
Definition: cartiter.h:114
int l(int i)
Returns a() if i==0, b() if i==1, and c() if i==2.
Definition: cartiter.h:66
int a() const
The current exponent of x.
Definition: cartiter.h:204
virtual int bfn() const =0
Return the current Cartesian basis function number.
virtual int bfn()=0
Return the current Cartesian basis function number.
int axis(int i)
Return the i'th axis.
Definition: cartiter.h:214
int c()
Returns the exponent of z.
Definition: cartiter.h:62
virtual void next()=0
Move to the next Cartesian function.
int c()
The current exponent of z.
Definition: cartiter.h:165
int bfn()
Returns the number of the current basis function within the shell.
Definition: cartiter.h:69
void start()
Initialize the iterator.
Definition: cartiter.h:118
void next()
Move to the next combination of axes.
Definition: cartiter.h:130
int c() const
The current exponent of z.
Definition: cartiter.h:208
void next()
Move to the next combination of axes.
int b()
Returns the exponent of y.
Definition: cartiter.h:60
int l()
The angular momentum.
Definition: cartiter.h:110
int n()
Returns the number of Cartesian functions.
Definition: cartiter.h:56
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
int b() const
The current exponent of y.
Definition: cartiter.h:206
Generated at Sun Jan 26 2020 23:23:57 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.