/** 
* @file KernelExp.h
* @brief Interface for the popular exponential mercer kernels
* @author Erik Rodner
* @date 10/24/2007

*/
#ifndef KERNELEXPINCLUDE
#define KERNELEXPINCLUDE

#include "core/vector/VectorT.h"
#include "core/vector/MatrixT.h"

#include "Kernel.h"

#include <core/vector/Distance.h>

/** Interface for the popular exponential mercer kernels */

namespace OBJREC {

class KernelExp : public Kernel
{

    protected:
	NICE::VectorDistance<double> *kInside;
	double a;

    public:
  
	/** simple constructor */
	KernelExp( NICE::VectorDistance<double> *_kInside, double _a );
      
	/** simple destructor */
	virtual ~KernelExp();
     
	// refactor-nice.pl: check this substitution
	// old: double K (const Vector & x, const Vector & y) const;
	double K (const NICE::Vector & x, const NICE::Vector & y) const;
};


} // namespace

#endif
