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
00050 extern bool YYY_coupling_zeros(const int l1, const int l2, const int l3,
00051 const int m1, const int m2, const int m3);
00052
00053
00055 extern unsigned int YYY_coupling_size();
00056
00057
00075 extern GReal_t YreYreYre_coupling(const int l1, const int l2, const int l3,
00076 const int m1, const int m2, const int m3);
00077
00078
00095 extern GComplex_t YYreY_coupling(const int l1, const int l2, const int l3,
00096 const int m1, const int m2, const int m3);
00097
00098
00125 extern GReal_t intYl1ExpMIPhi(const int l);
00126
00127
00158 extern GReal_t ExpPmIPhiYY_coupling(const int l1, const int m1,
00159 const int l2, const int sign);
00160
00161
00163 extern unsigned int ExpPmIPhiYY_coupling_size();
00164
00165
00184 extern GReal_t intYl0(const int l, const GReal_t theta);
00185
00186
00211 extern GReal_t intBarYl1mYl2m(const int l1, const int l2, const int m, const GReal_t theta, tvector< tvector< tvector<GReal_t> > > *coeffstorage);
00212
00213
00214 } }
00215
00216
00217 #endif