00001 #ifndef CCTBX_ELTBX_XRAY_SCATTERING_GAUSSIAN_H
00002 #define CCTBX_ELTBX_XRAY_SCATTERING_GAUSSIAN_H
00003
00004 #include <cctbx/eltbx/xray_scattering/form_factor.h>
00005 #include <scitbx/math/gaussian/sum.h>
00006 #include <cctbx/import_scitbx_af.h>
00007
00008 namespace cctbx { namespace eltbx { namespace xray_scattering {
00009
00010 class gaussian
00011 : public scitbx::math::gaussian::sum<double>,
00012 public isotropic_form_factor_mixin<gaussian>
00013 {
00014 public:
00015 typedef scitbx::math::gaussian::sum<double> base_t;
00016
00018 gaussian() {}
00019
00021 gaussian(base_t const& gaussian_sum)
00022 :
00023 base_t(gaussian_sum)
00024 {}
00025
00027 explicit
00028 gaussian(double c, bool use_c=true)
00029 :
00030 base_t(c, use_c)
00031 {}
00032
00034
00037 gaussian(
00038 af::small<double, base_t::max_n_terms> const& a,
00039 af::small<double, base_t::max_n_terms> const& b,
00040 double c=0,
00041 bool use_c=false)
00042 :
00043 base_t(a, b, c, use_c)
00044 {}
00045
00047
00050 gaussian(
00051 af::const_ref<double> const& ab,
00052 double c=0,
00053 bool use_c=false)
00054 :
00055 base_t(ab, c, use_c)
00056 {}
00057 };
00058
00059 }}}
00060
00061 #endif // CCTBX_ELTBX_XRAY_SCATTERING_GAUSSIAN_H