mirror of
https://github.com/aportelli/LatAnalyze.git
synced 2025-05-14 05:15:45 +01:00
Laplace filter positive-definite and with squared regulator
This commit is contained in:
parent
89b540d074
commit
4988f351f2
@ -66,18 +66,18 @@ void DataFilter::operator()(DMat &out, const DMat &in)
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
// constructor ////////////////////////////////////////////////////////////////
|
// constructor ////////////////////////////////////////////////////////////////
|
||||||
LaplaceDataFilter::LaplaceDataFilter(const bool downsample)
|
LaplaceDataFilter::LaplaceDataFilter(const bool downsample)
|
||||||
: DataFilter({1., -2. , 1.}, downsample)
|
: DataFilter({-1., 2. , -1.}, downsample)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
// filtering //////////////////////////////////////////////////////////////////
|
// filtering //////////////////////////////////////////////////////////////////
|
||||||
void LaplaceDataFilter::operator()(DVec &out, const DVec &in, const double lambda)
|
void LaplaceDataFilter::operator()(DVec &out, const DVec &in, const double lambda)
|
||||||
{
|
{
|
||||||
filter_[1] = -2. - lambda;
|
filter_[1] = 2. + Math::pow<2>(lambda);
|
||||||
DataFilter::operator()(out, in);
|
DataFilter::operator()(out, in);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LaplaceDataFilter::operator()(DMat &out, const DMat &in, const double lambda)
|
void LaplaceDataFilter::operator()(DMat &out, const DMat &in, const double lambda)
|
||||||
{
|
{
|
||||||
filter_[1] = -2. - lambda;
|
filter_[1] = 2. + Math::pow<2>(lambda);
|
||||||
DataFilter::operator()(out, in);
|
DataFilter::operator()(out, in);
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ public:
|
|||||||
template <typename MatType, Index o>
|
template <typename MatType, Index o>
|
||||||
double optimiseFunction(const StatArray<MatType, o> &data,
|
double optimiseFunction(const StatArray<MatType, o> &data,
|
||||||
ObjectiveFunction<MatType, o> &fn,
|
ObjectiveFunction<MatType, o> &fn,
|
||||||
Minimizer &min, const unsigned int nPass = 3);
|
Minimizer &min);
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -104,8 +104,7 @@ void LaplaceDataFilter::operator()(StatArray<MatType, o> &out,
|
|||||||
template <typename MatType, Index o>
|
template <typename MatType, Index o>
|
||||||
double LaplaceDataFilter::optimiseFunction(const StatArray<MatType, o> &data,
|
double LaplaceDataFilter::optimiseFunction(const StatArray<MatType, o> &data,
|
||||||
ObjectiveFunction<MatType, o> &fn,
|
ObjectiveFunction<MatType, o> &fn,
|
||||||
Minimizer &min,
|
Minimizer &min)
|
||||||
const unsigned int nPass)
|
|
||||||
{
|
{
|
||||||
StatArray<MatType, o> fdata(data.size());
|
StatArray<MatType, o> fdata(data.size());
|
||||||
DVec init(1);
|
DVec init(1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user