openModeller  Version 1.4.0
virtual_niche.hh
Go to the documentation of this file.
00001 
00027 #ifndef _VIRTUALNICHEHH_
00028 #define _VIRTUALNICHEHH_
00029 
00030 #include <openmodeller/om.hh>
00031 
00032 /************************************************************/
00033 /*********************** VirtualNiche ***********************/
00034 
00039 class VirtualNicheGenerator : public AlgorithmImpl
00040 {
00041 public:
00042 
00043   VirtualNicheGenerator();
00044   ~VirtualNicheGenerator();
00045 
00046   int initialize();
00047   int iterate();
00048   int done() const;
00049 
00050   Scalar getValue( const Sample& x ) const;
00051   int    getConvergence( Scalar * const val ) const;
00052 
00053 protected:
00054   virtual void _getConfiguration( ConfigurationPtr& ) const;
00055   virtual void _setConfiguration( const ConstConfigurationPtr & );
00056 
00057 private:
00058 
00059   void dump();
00060 
00061   // Probability density function for a Gaussian distribution
00062   Scalar pdf(Scalar avg, Scalar std, Scalar val) const;
00063 
00064   bool _done;  
00065 
00066   OccurrencesPtr _background;
00067   int _num_background;
00068 
00069   Sample _minimum;  
00070   Sample _maximum;  
00071   Sample _mean;     
00072   Sample _std;      
00073   Sample _scale;    
00074   Scalar _threshold;
00075 };
00076 
00077 
00078 #endif //VIRTUALNICHEHH