X-Git-Url: http://git.treefish.org/~alex/phys/su2clebsch.git/blobdiff_plain/e2c2ab8026276b7ebe343b1ebe86f3248547940a..a02d886eef0f2fb5c434d094ff34064aa62eed2e:/su2clebschgordan.cpp?ds=sidebyside diff --git a/su2clebschgordan.cpp b/su2clebschgordan.cpp new file mode 100644 index 0000000..968c9de --- /dev/null +++ b/su2clebschgordan.cpp @@ -0,0 +1,44 @@ +#include + +#include "su2clebsch.hpp" + +using namespace std; + +int main () +{ + int max2j=10; + + cout << "Prestoring..." << flush; + su2clebsch::prestore su2cstore(max2j); + cout << "DONE" << endl; + + cout << "Checking..." << flush; + for (int factor1_2j=0; factor1_2j<=max2j; factor1_2j++) + for (int factor1_mp=0; factor1_mp<=max2j; factor1_mp++) + for (int factor2_2j=0; factor2_2j<=max2j; factor2_2j++) + for (int factor2_mp=0; factor2_mp<=max2j; factor2_mp++) + for (int irrep_2j=0; irrep_2j<=max2j; irrep_2j++) + for (int irrep_mp=0; irrep_mp<=max2j; irrep_mp++) + if ( su2clebsch::cgc( factor1_2j, 2*factor1_mp-max2j, factor2_2j, 2*factor2_mp-max2j, + irrep_2j, 2*irrep_mp-max2j, su2cstore ) + - + su2clebsch::cgc( factor1_2j, 2*factor1_mp-max2j, factor2_2j, 2*factor2_mp-max2j, + irrep_2j, 2*irrep_mp-max2j ) + != 0 ) { + cout << "CGC check failed!" << endl; + exit(1); + } + cout << "OK" << endl; + + cout << "Speedtest..." << flush; + for (int factor1_2j=0; factor1_2j<=max2j; factor1_2j++) + for (int factor1_mp=0; factor1_mp<=max2j; factor1_mp++) + for (int factor2_2j=0; factor2_2j<=max2j; factor2_2j++) + for (int factor2_mp=0; factor2_mp<=max2j; factor2_mp++) + for (int irrep_2j=0; irrep_2j<=max2j; irrep_2j++) + for (int irrep_mp=0; irrep_mp<=max2j; irrep_mp++) + double test = su2clebsch::cgc( factor1_2j, 2*factor1_mp-max2j, factor2_2j, 2*factor2_mp-max2j, + irrep_2j, 2*irrep_mp-max2j, su2cstore ); + + cout << "DONE" << endl; +}