contrib/mul/vpdfl/vpdfl_pc_gaussian_sampler.h
Go to the documentation of this file.
00001 // This is mul/vpdfl/vpdfl_pc_gaussian_sampler.h
00002 #ifndef vpdfl_pc_gaussian_sampler_h
00003 #define vpdfl_pc_gaussian_sampler_h
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \author Ian Scott
00010 // \date 21-Jul-2000
00011 // \brief Interface for Multi-variate principal Component gaussian PDF sampler.
00012 //
00013 // \verbatim
00014 //  Modifications
00015 //   23 April 2001 IMS - Ported to VXL
00016 // \endverbatim
00017 
00018 #include "vpdfl_gaussian_sampler.h"
00019 
00020 
00021 //=======================================================================
00022 
00023 class vpdfl_gaussian;
00024 
00025 //: Multi-Variate Axis-Aligned principal component Gaussian PDF
00026 class vpdfl_pc_gaussian_sampler : public vpdfl_gaussian_sampler
00027 {
00028   //: workspace;
00029   vnl_vector<double> dx_;
00030   //: workspace;
00031   vnl_vector<double> b_;
00032  public:
00033 
00034   //: Calculate the log probability density at position x.
00035   double log_p(const vnl_vector<double>& x);
00036 
00037 
00038   //: Version number for I/O
00039   short version_no() const;
00040 
00041   //: Name of the class
00042   virtual vcl_string is_a() const;
00043 
00044   //: Does the name of the class match the argument?
00045   virtual bool is_class(vcl_string const& s) const;
00046 
00047   //: Create a copy on the heap and return base class pointer
00048   virtual vpdfl_sampler_base* clone() const;
00049 };
00050 //=======================================================================
00051 
00052 #endif // vpdfl_pc_gaussian_sampler_h