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_