]> git.treefish.org Git - phys/su2clebsch.git/blob - su2clebschgordan.cpp
Fixed prestore mapping.
[phys/su2clebsch.git] / su2clebschgordan.cpp
1 #include <iostream>
2
3 #include "su2clebsch.hpp"
4
5 using namespace std;
6
7 int main ()
8 {
9   int max2j=10;
10
11   cout << "Prestoring..." << flush;
12   su2clebsch::prestore su2cstore(max2j);
13   cout << "DONE" << endl;
14
15   cout << "Checking..." << flush;
16   for (int factor1_2j=0; factor1_2j<=max2j; factor1_2j++)
17     for (int factor1_mp=0; factor1_mp<=max2j; factor1_mp++)
18       for (int factor2_2j=0; factor2_2j<=max2j; factor2_2j++)
19         for (int factor2_mp=0; factor2_mp<=max2j; factor2_mp++)
20           for (int irrep_2j=0; irrep_2j<=max2j; irrep_2j++)
21             for (int irrep_mp=0; irrep_mp<=max2j; irrep_mp++)
22               if ( su2clebsch::cgc( factor1_2j, 2*factor1_mp-max2j, factor2_2j, 2*factor2_mp-max2j,
23                                     irrep_2j, 2*irrep_mp-max2j, su2cstore )
24                    -
25                    su2clebsch::cgc( factor1_2j, 2*factor1_mp-max2j, factor2_2j, 2*factor2_mp-max2j,
26                                     irrep_2j, 2*irrep_mp-max2j )
27                    != 0 ) {
28                 cout << "CGC check failed!" << endl;
29                 exit(1);
30               }
31   cout << "OK" << endl;
32
33   cout << "Speedtest..." << flush;
34   for (int factor1_2j=0; factor1_2j<=max2j; factor1_2j++)
35     for (int factor1_mp=0; factor1_mp<=max2j; factor1_mp++)
36       for (int factor2_2j=0; factor2_2j<=max2j; factor2_2j++)
37         for (int factor2_mp=0; factor2_mp<=max2j; factor2_mp++)
38           for (int irrep_2j=0; irrep_2j<=max2j; irrep_2j++)
39             for (int irrep_mp=0; irrep_mp<=max2j; irrep_mp++)
40               double test = su2clebsch::cgc( factor1_2j, 2*factor1_mp-max2j, factor2_2j, 2*factor2_mp-max2j,
41                                              irrep_2j, 2*irrep_mp-max2j, su2cstore );
42                 
43   cout << "DONE" << endl;
44 }