core/vpdl/vpdl_gaussian_base.h
Go to the documentation of this file.
00001 // This is core/vpdl/vpdl_gaussian_base.h
00002 #ifndef vpdl_gaussian_base_h_
00003 #define vpdl_gaussian_base_h_
00004 //:
00005 // \file
00006 // \author Matthew Leotta
00007 // \date February 11, 2009
00008 // \brief The abstract base class for Gaussian distributions
00009 //
00010 // \verbatim
00011 // Modifications
00012 //   None
00013 // \endverbatim
00014 
00015 #include <vpdl/vpdl_distribution.h>
00016 
00017 
00018 //: The abstract base class for Gaussian distributions
00019 // All Gaussian classes represent the mean in the same way,
00020 // so it is managed in this base class.
00021 // Derived classes differ in how they represent covariance
00022 template<class T, unsigned int n=0>
00023 class vpdl_gaussian_base : public vpdl_distribution<T,n>
00024 {
00025  public:
00026   //: the data type used for vectors
00027   typedef typename vpdt_field_default<T,n>::type vector;
00028 
00029 
00030   //: Destructor
00031   virtual ~vpdl_gaussian_base() {}
00032 
00033   //: Access the mean directly
00034   virtual const vector& mean() const = 0;
00035 
00036   //: Set the mean
00037   virtual void set_mean(const vector& mean) = 0;
00038 };
00039 
00040 
00041 #endif // vpdl_gaussian_base_h_