view common/EditDistance.h @ 13:a1d67e136c30 classical-rdf

* Test data, speedups
author Chris Cannam
date Fri, 19 Feb 2010 11:41:57 +0000
parents 98047b91b09d
children cb315ba61e03
line wrap: on
line source

#ifndef _EDIT_DISTANCE_H_
#define _EDIT_DISTANCE_H_

#include <alloca.h>

#include <QString>

namespace ClassicalData {

class EditDistance
{
public:
    enum TranspositionMode {
	NoTransposition,
	RestrictedTransposition
    };

    EditDistance(TranspositionMode tm = RestrictedTransposition,
		 int editPenalty = 1,
		 int suffixPenalty = 1,
		 bool normalise = true) :
	m_transpositionMode(tm),
	m_editPenalty(editPenalty),
	m_suffixPenalty(suffixPenalty),
	m_normalise(normalise) { }

    int calculate(QString a, QString b, int threshold = 0);

private:
    TranspositionMode m_transpositionMode;
    int m_editPenalty;
    int m_suffixPenalty;
    bool m_normalise;
};

}

#endif