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 00019 //======================================================================= 00020 // inclusions 00021 #include "vpdfl_gaussian_sampler.h" 00022 00023 00024 //======================================================================= 00025 00026 class vpdfl_gaussian; 00027 00028 //: Multi-Variate Axis-Aligned principal component Gaussian PDF 00029 class vpdfl_pc_gaussian_sampler : public vpdfl_gaussian_sampler 00030 { 00031 //: workspace; 00032 vnl_vector<double> dx_; 00033 //: workspace; 00034 vnl_vector<double> b_; 00035 public: 00036 00037 //: Calculate the log probability density at position x. 00038 double log_p(const vnl_vector<double>& x); 00039 00040 00041 //: Version number for I/O 00042 short version_no() const; 00043 00044 //: Name of the class 00045 virtual vcl_string is_a() const; 00046 00047 //: Does the name of the class match the argument? 00048 virtual bool is_class(vcl_string const& s) const; 00049 00050 //: Create a copy on the heap and return base class pointer 00051 virtual vpdfl_sampler_base* clone() const; 00052 }; 00053 //======================================================================= 00054 00055 #endif // vpdfl_pc_gaussian_sampler_h
1.5.1