MLPACK
1.0.10
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
mlpack
core
kernels
laplacian_kernel.hpp
Go to the documentation of this file.
1
22
#ifndef __MLPACK_CORE_KERNELS_LAPLACIAN_KERNEL_HPP
23
#define __MLPACK_CORE_KERNELS_LAPLACIAN_KERNEL_HPP
24
25
#include <
mlpack/core.hpp
>
26
27
namespace
mlpack {
28
namespace
kernel {
29
40
class
LaplacianKernel
41
{
42
public
:
46
LaplacianKernel
() :
bandwidth
(1.0)
47
{ }
48
54
LaplacianKernel
(
double
bandwidth
) :
55
bandwidth(bandwidth)
56
{ }
57
69
template
<
typename
VecType>
70
double
Evaluate
(
const
VecType& a,
const
VecType& b)
const
71
{
72
// The precalculation of gamma saves us a little computation time.
73
return
exp(-
metric::EuclideanDistance::Evaluate
(a, b) /
bandwidth
);
74
}
75
84
double
Evaluate
(
const
double
t)
const
85
{
86
// The precalculation of gamma saves us a little computation time.
87
return
exp(-t /
bandwidth
);
88
}
89
91
double
Bandwidth
()
const
{
return
bandwidth
; }
93
double
&
Bandwidth
() {
return
bandwidth
; }
94
96
std::string
ToString
()
const
97
{
98
std::ostringstream convert;
99
convert <<
"LaplacianKernel ["
<<
this
<<
"]"
<< std::endl;
100
convert <<
" Bandwidth: "
<<
bandwidth
<< std::endl;
101
return
convert.str();
102
}
103
104
private
:
106
double
bandwidth
;
107
};
108
110
template
<>
111
class
KernelTraits
<
LaplacianKernel
>
112
{
113
public
:
115
static
const
bool
IsNormalized
=
true
;
116
};
117
118
};
// namespace kernel
119
};
// namespace mlpack
120
121
#endif
Generated by
1.8.3.1