00001 #ifndef SVD_CORRESPONDENCE_H 00002 #define SVD_CORRESPONDENCE_H 00003 00004 #include <boost/numeric/ublas/matrix.hpp> 00005 #include "object.h" 00006 00007 namespace mimas { 00046 template< class InputIter1, class SimilarityMeasure > 00047 class svd_correspondence: public object 00048 { 00049 public: 00051 typedef boost::numeric::ublas::matrix< double, boost::numeric::ublas::column_major > Matrix; 00052 typedef boost::numeric::ublas::identity_matrix< double > IdentityMatrix; 00059 svd_correspondence( SimilarityMeasure &aSimilarityMeasure, 00060 InputIter1 aBegin1, int aSize1 ): 00061 similarityMeasure(aSimilarityMeasure), begin1(aBegin1), size1(aSize1) {} 00071 template< class InputIter2, class OutputIter1, class OutputIter2 > 00072 void match( InputIter2 begin2, int size2, OutputIter1 outputIndexed, 00073 OutputIter2 outputLost ) throw (mimasexception); 00074 protected: 00078 SimilarityMeasure similarityMeasure; 00080 InputIter1 begin1; 00082 int size1; 00083 }; 00084 00086 00087 } 00088 00089 #include "svd_correspondence.tcc" 00090 00091 #endif