Marsyas  0.6.0-alpha
/usr/src/RPM/BUILD/marsyas-0.6.0/src/marsyas/marsystems/SimilarityMatrix.h
Go to the documentation of this file.
00001 #ifndef MARSYAS_SIMILARITYMATRIX2_H
00002 #define MARSYAS_SIMILARITYMATRIX2_H
00003 
00004 #include <marsyas/system/MarSystem.h>
00005 #include "Metric.h"
00006 #include <vector>
00007 
00008 namespace Marsyas
00009 {
00023 class SimilarityMatrix: public MarSystem
00024 {
00025 private:
00026   realvec i_featVec_;
00027   realvec j_featVec_;
00028   realvec stackedFeatVecs_;
00029   realvec metricResult_;
00030 
00031   realvec sizes_;
00032   realvec vars_;
00033   realvec covMatrix_;
00034   std::vector<realvec> invecs_;
00035 
00036   MarControlPtr ctrl_stdDev_;
00037   MarControlPtr ctrl_covMatrix_;
00038   MarControlPtr ctrl_calcCovMatrix_;
00039   MarControlPtr ctrl_normalize_;
00040   MarControlPtr ctrl_sizes_;
00041   //    MarControlPtr ctrl_disMatrix_;
00042 
00043   void addControls();
00044   void myUpdate(MarControlPtr sender);
00045 
00046 public:
00047   enum covMatrixType {
00048     noCovMatrix = 0,
00049     fixedStdDev = 1,
00050     diagCovMatrix = 2,
00051     fullCovMatrix = 3
00052   };
00053 
00054   SimilarityMatrix(std::string name);
00055   SimilarityMatrix(const SimilarityMatrix& a);
00056   ~SimilarityMatrix();
00057 
00058   MarSystem* clone() const;
00059 
00060   void myProcess(realvec& in, realvec& out);
00061 };
00062 }
00063 
00064 #endif