Coeff.h

00001 #ifndef gridripper_multipole_Coeff_h
00002 #define gridripper_multipole_Coeff_h
00003 
00004 
00005 #include "Bases.h"
00006 
00007 
00008 namespace gridripper { namespace multipole {
00009 
00010 
00019 template <typename K>
00020 class Coeff;
00022 template <>
00023 class Coeff<GReal_t>;
00025 template <>
00026 class Coeff<GComplex_t>;
00027 
00028 
00036 template <>
00037 class Coeff<GReal_t> : public Yre
00038 {
00039     public:
00041         GReal_t v;
00042     public:
00043         Coeff<GReal_t>();
00044         Coeff<GReal_t>(const Coeff<GReal_t>&);
00046         Coeff<GReal_t>(const GReal_t value, const Yre& Yrearg);
00047         Coeff<GReal_t>(const Yre& Yrearg);
00052         Coeff<GReal_t>(const GReal_t value, const int l, const int m);
00053         ~Coeff<GReal_t>();
00055         GReal_t eval(const GReal_t theta, const GReal_t phi) const;
00056 };
00057 
00059 Coeff<GReal_t> operator*(const GReal_t, const Yre&);
00060 Coeff<GReal_t> operator*(const Yre&, const GReal_t);
00061 
00063 Coeff<GReal_t> operator/(const Yre&, const GReal_t);
00064 
00066 Coeff<GReal_t> operator*(const GReal_t, const Coeff<GReal_t>&);
00067 Coeff<GReal_t> operator*(const Coeff<GReal_t>&, const GReal_t);
00068 
00070 Coeff<GReal_t> operator/(const Coeff<GReal_t>&, const GReal_t);
00071 
00073 Coeff<GReal_t> operator-(const Yre&);
00074 Coeff<GReal_t> operator-(const Coeff<GReal_t>&);
00075 
00076 
00084 template <>
00085 class Coeff<GComplex_t> : public Y
00086 {
00087     public:
00089         GComplex_t v;
00090     public:
00091         Coeff<GComplex_t>();
00092         Coeff<GComplex_t>(const Coeff<GComplex_t>&);
00094         Coeff<GComplex_t>(const GReal_t value, const Y& Yarg);
00096         Coeff<GComplex_t>(const GComplex_t& value, const Y& Yarg);
00097         Coeff<GComplex_t>(const Y& Yarg);
00102         Coeff<GComplex_t>(const GReal_t value, const int l, const int m);
00107         Coeff<GComplex_t>(const GComplex_t& value, const int l, const int m);
00108         ~Coeff<GComplex_t>();
00110         GComplex_t eval(const GReal_t theta, const GReal_t phi) const;
00111 };
00112 
00114 Coeff<GComplex_t> operator*(const GReal_t, const Y&);
00115 Coeff<GComplex_t> operator*(const Y&, const GReal_t);
00116 Coeff<GComplex_t> operator*(const GComplex_t&, const Y&);
00117 Coeff<GComplex_t> operator*(const Y&, const GComplex_t&);
00118 
00120 Coeff<GComplex_t> operator/(const Y&, const GReal_t);
00121 Coeff<GComplex_t> operator/(const Y&, const GComplex_t&);
00122 
00124 Coeff<GComplex_t> operator*(const GReal_t, const Coeff<GComplex_t>&);
00125 Coeff<GComplex_t> operator*(const Coeff<GComplex_t>&, const GReal_t);
00126 Coeff<GComplex_t> operator*(const GComplex_t&, const Coeff<GComplex_t>&);
00127 Coeff<GComplex_t> operator*(const Coeff<GComplex_t>&, const GComplex_t&);
00128 
00130 Coeff<GComplex_t> operator/(const Coeff<GComplex_t>&, const GReal_t);
00131 Coeff<GComplex_t> operator/(const Coeff<GComplex_t>&, const GComplex_t&);
00132 
00134 Coeff<GComplex_t> operator-(const Y&);
00135 Coeff<GComplex_t> operator-(const Coeff<GComplex_t>&);
00136 
00138 Coeff<GComplex_t> conj(const Y&);
00139 Coeff<GComplex_t> conj(const Coeff<GComplex_t>&);
00140 
00141 
00142 } } // namespace gridripper::multipole
00143 
00144 
00145 #endif /* gridripper_multipole_Coeff_h */

Generated on Wed Jun 17 18:46:47 2009 for GridRipper by  doxygen 1.5.6