Skip to content
Snippets Groups Projects
calcul.h 3.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • #ifndef CALCUL_H
    #define CALCUL_H
    
    Martin Rusek's avatar
    Martin Rusek committed
    
    
    #include "structs.h"
    
    #include "parameter.h"
    
    Martin Rusek's avatar
    Martin Rusek committed
    
    class calcul
    {
    
    public:
    
    	static double distance_dtw_euklid(vtr<double> const &u, vtr<double> const &v);	
    	static double distance_dtw_euklid_mean(vtr<double> const &u, vtr<double> const &v);
    	static double distance_dtw_manhattan(vtr<double> const &u, vtr<double> const &v);
    	static double distance_dtw_many(vtr2<double> const &points);
    	static double distance_dtw_simd(vtr<double> const &u, vtr<double> const &v, size_t simds, size_t rest);
    
    	static double distance_dtw_csiChroma(vtr<double> const &u, vtr<double> const &v, double treshold/* = 0.07*/);
    	static double distance_dtw_csiChord(vtr<double> const &u, vtr<double> const &v, vtr<int> const &uKey, vtr<int> const &vKey);
    	static double distance_circleFifth(int idx1, int idx2);
    
    	static double distance_lcss(vtr<double> const &u, vtr<double> const &v, int idx);
    
    	static double score_dtw_s1(double ratioRaw);
    	static double score_dtw_s2(double ratioRaw, size_t pathLength);
    	static double score_dtw_s3(size_t lenA, size_t lenB, size_t lenPath);
    	static double score_dtw_s4(double ratioRaw, double ratioRawMax);
    	static double score_dtw_s5(double ratioRaw, double ratioRawMax, double coeficient);
    
    	static double score_dtw_max(vtr2<double> const &A, vtr2<double> const &B, coord start, coord end);
    
    	static double score_lcss_s1(double ratioRaw, size_t pathLength);
    	static double score_lcss_s2(double ratioRaw, size_t maxABLen);
    	static double score_lcss_s3(double ratioRaw);
    	
    	static double lenRatio(size_t lenA, size_t lenB);
    	static double ratio(size_t dividend, size_t divisor);
    	
    	static double score_multi_dtw(vtr3<double> const  &input, vtr3<double> const &output);
    	static double score_averageRank(int ref, vtr<int> const &queryAnswer, input_clusters const &clusters);
    	static double score_averagePrecision(int ref, vtr<int> const &queryAnswer, input_clusters const &clusters);
    
    	//Retruns Mean Average Precision.
    
    	static double score_map(vtr<double> const &averagePrecisions);
    	static double score_precision(int ref, vtr<int> const &top, input_clusters const &clusters);
    	static double score_recall(int ref, vtr<int> const &top, input_clusters const &cluster);
    
    	//common subsequence cots
    	static double cost_total(vtr<double> const &path);
    	static double cost_average(vtr<double> const &path);
    	static double cost_max(vtr<double> const &path);
    
    Martin Rusek's avatar
    Martin Rusek committed
    	
    	//lower bound
    	static double lb_keogh(vtr2<double> const &A, vtr2<double> const &B, parameter const &params);
    
    	static int dtw_wpassStart(size_t i, int w, double coeficient);
    	static int dtw_wpassEnd(size_t i, int w, double coeficient, int lenB);
    	static bool dtw_isFlexiblePass(int i, int j, int iPast, int jPast, int w, int d);
    	
    	template <typename T> static T vtr_max(vtr<T> const &input);
    	template <typename T> static T vtr_max(vtr2<T> const &input);
    	template <typename T> static T vtr_max(vtr3<T> const &input);
    	template <typename T> static T vtr_min(vtr2<T> const &input);
    
    
    	static double vtr_mean(vtr<double> const &v);
    
    	static vtr<double> vtr_mean(vtr2<double> const &v);
    
    	static double vtr_std(vtr<double> const &v);
    
    Martin Rusek's avatar
    Martin Rusek committed
    };