MPQC 2.3.1

- Main Page
- Related Pages
- Classes
- Files

- File List

ccaiter.h
1 #ifdef __GNUG__
2 #pragma interface
3 #endif
4
5 #ifndef _ccaiter_h
6 #define _ccaiter_h
7
8 #include <chemistry/qc/basis/cartiter.h>
9
10 namespace MPQC {
11
12 class CartesianIterCCA : public sc::CartesianIter {
13 int *avec, *bvec, *cvec;
14 public:
15 CartesianIterCCA(int l) : CartesianIter(l) {}
16 void start() {
17 bfn_=b_=c_=0;
18 a_=l_;
19 }
20 void next() {
21 if (c_ < l_ - a_) {
22 b_--;
23 c_++;
24 }
25 else {
26 a_--;
27 c_ = 0;
28 b_ = l_ - a_;
29 }
30 bfn_++;
31 }
32 operator int() {
33 return (a_ >= 0);
34 }
35 };
36
37 }
38
39 #endif