00001 #ifndef WIGNER_H
00002 #define WIGNER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ZMENVIRONMENT_H
00012 #include "ZMutility/ZMenvironment.h"
00013 #endif
00014 #include <utility>
00015
00016 ZM_BEGIN_NAMESPACE( zmsf )
00017
00018 typedef std::pair<double,double> Dpair;
00019
00024
00025 struct Wigner {
00026
00028 static double ThreeJ( const int two_ja, const int two_jb, const int two_jc,
00029 const int two_ma, const int two_mb, const int two_mc );
00030
00032 static Dpair ThreeJErr( const int two_ja, const int two_jb, const int two_jc,
00033 const int two_ma, const int two_mb, const int two_mc );
00034
00036 static double ClebschGordan( const int two_ja, const int two_jb, const int two_jc,
00037 const int two_ma, const int two_mb, const int two_mc );
00038
00040 static Dpair ClebschGordanErr( const int two_ja, const int two_jb, const int two_jc,
00041 const int two_ma, const int two_mb, const int two_mc );
00042
00044 static double SixJ( const int two_ja, const int two_jb, const int two_jc,
00045 const int two_jd, const int two_je, const int two_jf );
00046
00048 static Dpair SixJErr( const int two_ja, const int two_jb, const int two_jc,
00049 const int two_jd, const int two_je, const int two_jf );
00050
00052 static double NineJ( const int two_ja, const int two_jb, const int two_jc,
00053 const int two_jd, const int two_je, const int two_jf,
00054 const int two_jg, const int two_jh, const int two_ji );
00055
00057 static Dpair NineJErr( const int two_ja, const int two_jb, const int two_jc,
00058 const int two_jd, const int two_je, const int two_jf,
00059 const int two_jg, const int two_jh, const int two_ji );
00060
00061 };
00062
00063 ZM_END_NAMESPACE( zmsf )
00064
00065 #endif