Gaunt.h
00001 #ifndef gridripper_multipole_Gaunt_h
00002 #define gridripper_multipole_Gaunt_h
00003
00004
00005 #include <gridripper/math.h>
00006 #include <gridripper/tvector.h>
00007
00008
00009 namespace gridripper { namespace multipole {
00010
00011
00035 extern GReal_t YYY_coupling(const int l1, const int l2, const int l3,
00036 const int m1, const int m2, const int m3);
00037
00038
00040 extern unsigned int YYY_coupling_size();
00041
00042
00060 extern GReal_t YreYreYre_coupling(const int l1, const int l2, const int l3,
00061 const int m1, const int m2, const int m3);
00062
00063
00080 extern GComplex_t YYreY_coupling(const int l1, const int l2, const int l3,
00081 const int m1, const int m2, const int m3);
00082
00083
00110 extern GReal_t intYl1ExpMIPhi(const int l);
00111
00112
00143 extern GReal_t ExpPmIPhiYY_coupling(const int l1, const int m1,
00144 const int l2, const int sign);
00145
00146
00148 extern unsigned int ExpPmIPhiYY_coupling_size();
00149
00150
00169 extern GReal_t intYl0(const int l, const GReal_t theta);
00170
00171
00196 extern GReal_t intBarYl1mYl2m(const int l1, const int l2, const int m, const GReal_t theta, tvector< tvector< tvector<GReal_t> > > *coeffstorage);
00197
00198
00199 } }
00200
00201
00202 #endif