Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRollingMeanAccumulatorWrapper.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KisRollingMeanAccumulatorWrapper.h
"
8
9
#include <boost/accumulators/accumulators.hpp>
10
#include <boost/accumulators/statistics/stats.hpp>
11
#include <boost/accumulators/statistics/rolling_mean.hpp>
12
13
using namespace
boost::accumulators;
14
15
struct
KisRollingMeanAccumulatorWrapper::Private
{
16
Private
(
int
windowSize)
17
:
accumulator
(tag::rolling_window::window_size = windowSize)
18
{
19
}
20
21
accumulator_set<qreal, stats<tag::lazy_rolling_mean> >
accumulator
;
22
};
23
24
25
KisRollingMeanAccumulatorWrapper::KisRollingMeanAccumulatorWrapper
(
int
windowSize)
26
: m_d(new
Private
(windowSize))
27
{
28
}
29
30
KisRollingMeanAccumulatorWrapper::~KisRollingMeanAccumulatorWrapper
()
31
{
32
}
33
34
void
KisRollingMeanAccumulatorWrapper::operator()
(qreal
value
)
35
{
36
m_d
->accumulator(
value
);
37
}
38
39
qreal
KisRollingMeanAccumulatorWrapper::rollingMean
()
const
40
{
41
return
boost::accumulators::rolling_mean(
m_d
->accumulator);
42
}
43
44
qreal
KisRollingMeanAccumulatorWrapper::rollingMeanSafe
()
const
45
{
46
return
boost::accumulators::rolling_count(
m_d
->accumulator) > 0 ?
47
boost::accumulators::rolling_mean(
m_d
->accumulator) : 0;
48
}
49
50
int
KisRollingMeanAccumulatorWrapper::rollingCount
()
const
51
{
52
return
boost::accumulators::rolling_count(
m_d
->accumulator);
53
}
54
55
void
KisRollingMeanAccumulatorWrapper::reset
(
int
windowSize)
56
{
57
m_d
->accumulator =
58
accumulator_set<qreal, stats<tag::lazy_rolling_mean>>(
59
tag::rolling_window::window_size = windowSize);
60
}
value
float value(const T *src, size_t ch)
Definition
JPEGXLImport.cpp:93
KisRollingMeanAccumulatorWrapper.h
KisRollingMeanAccumulatorWrapper::rollingMeanSafe
qreal rollingMeanSafe() const
Definition
KisRollingMeanAccumulatorWrapper.cpp:44
KisRollingMeanAccumulatorWrapper::~KisRollingMeanAccumulatorWrapper
~KisRollingMeanAccumulatorWrapper()
Definition
KisRollingMeanAccumulatorWrapper.cpp:30
KisRollingMeanAccumulatorWrapper::KisRollingMeanAccumulatorWrapper
KisRollingMeanAccumulatorWrapper(int windowSize)
Definition
KisRollingMeanAccumulatorWrapper.cpp:25
KisRollingMeanAccumulatorWrapper::rollingMean
qreal rollingMean() const
Definition
KisRollingMeanAccumulatorWrapper.cpp:39
KisRollingMeanAccumulatorWrapper::rollingCount
int rollingCount() const
Definition
KisRollingMeanAccumulatorWrapper.cpp:50
KisRollingMeanAccumulatorWrapper::m_d
const QScopedPointer< Private > m_d
Definition
KisRollingMeanAccumulatorWrapper.h:57
KisRollingMeanAccumulatorWrapper::reset
void reset(int windowSize)
Definition
KisRollingMeanAccumulatorWrapper.cpp:55
KisRollingMeanAccumulatorWrapper::operator()
void operator()(qreal value)
Definition
KisRollingMeanAccumulatorWrapper.cpp:34
Private
Definition
SvgTransformParser.cpp:20
KisRollingMeanAccumulatorWrapper::Private
Definition
KisRollingMeanAccumulatorWrapper.cpp:15
KisRollingMeanAccumulatorWrapper::Private::Private
Private(int windowSize)
Definition
KisRollingMeanAccumulatorWrapper.cpp:16
KisRollingMeanAccumulatorWrapper::Private::accumulator
accumulator_set< qreal, stats< tag::lazy_rolling_mean > > accumulator
Definition
KisRollingMeanAccumulatorWrapper.cpp:21
libs
global
KisRollingMeanAccumulatorWrapper.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52