contrib/mul/mipa/mipa_l2norm_vector_normaliser.h
Go to the documentation of this file.
00001 #ifndef mipa_l2norm_vector_normaliser_h_
00002 #define mipa_l2norm_vector_normaliser_h_
00003 //:
00004 // \file
00005 // \author Martin Roberts
00006 // \brief L2norm v->v/(||v||_2 + epsilon)
00007 
00008 #include <vcl_string.h>
00009 #include <vcl_iosfwd.h>
00010 #include <vsl/vsl_fwd.h>
00011 #include <vnl/vnl_fwd.h>
00012 #include <mipa/mipa_vector_normaliser.h>
00013 class mbl_read_props_type;
00014 
00015 //: L2 norm
00016 
00017 class mipa_l2norm_vector_normaliser : public mipa_vector_normaliser
00018 {
00019  public:
00020 
00021   virtual ~mipa_l2norm_vector_normaliser() {}
00022 
00023   //: Normalise the sample.
00024   virtual void normalise(vnl_vector<double>& sample) const;
00025 
00026   //: Name of the class
00027   virtual vcl_string is_a() const;
00028 
00029   //: Create a copy on the heap and return base class pointer
00030   virtual mipa_vector_normaliser* clone() const;
00031 
00032   //: Print class to os
00033   virtual void print_summary(vcl_ostream& os) const;
00034 
00035   //: Save class to binary file stream
00036   virtual void b_write(vsl_b_ostream& bfs) const;
00037 
00038   //: Load class from binary file stream
00039   virtual void b_read(vsl_b_istream& bfs);
00040 };
00041 
00042 #endif // mipa_l2norm_vector_normaliser_h_