2 #include <benchmark/benchmark.h>
12 t_uint m_imsizex = state.range(0);
13 t_uint m_imsizey = state.range(0);
16 while (state.KeepRunning()) {
17 auto start = std::chrono::high_resolution_clock::now();
19 const sopt::wavelets::SARA m_sara{
20 std::make_tuple(
"Dirac", 3u), std::make_tuple(
"DB1", 3u), std::make_tuple(
"DB2", 3u),
21 std::make_tuple(
"DB3", 3u), std::make_tuple(
"DB4", 3u), std::make_tuple(
"DB5", 3u),
22 std::make_tuple(
"DB6", 3u), std::make_tuple(
"DB7", 3u), std::make_tuple(
"DB8", 3u)};
24 sopt::LinearTransform<Vector<t_complex>> Psi =
25 sopt::linear_transform<t_complex>(m_sara, m_imsizey, m_imsizex);
27 auto end = std::chrono::high_resolution_clock::now();
37 ->Range(1024, 1024 << 10)
40 ->ReportAggregatesOnly(
true)
41 ->Unit(benchmark::kMillisecond);
47 void SetUp(const ::benchmark::State& state) {}
49 void TearDown(const ::benchmark::State& state) {}
57 void SetUp(const ::benchmark::State& state) {}
59 void TearDown(const ::benchmark::State& state) {}
66 t_uint m_imsizex = state.range(0);
67 t_uint m_imsizey = state.range(0);
68 sopt::wavelets::SARA m_sara{
69 std::make_tuple(
"Dirac", 3u), std::make_tuple(
"DB1", 3u), std::make_tuple(
"DB2", 3u),
70 std::make_tuple(
"DB3", 3u), std::make_tuple(
"DB4", 3u), std::make_tuple(
"DB5", 3u),
71 std::make_tuple(
"DB6", 3u), std::make_tuple(
"DB7", 3u), std::make_tuple(
"DB8", 3u)};
73 sopt::LinearTransform<Vector<t_complex>> m_Psi =
74 sopt::linear_transform<t_complex>(m_sara, m_imsizey, m_imsizex);
77 t_uint
const n_wave_coeff = m_sara.size() * m_imsizex * m_imsizey;
80 Vector<t_complex> temp;
81 Vector<t_complex>
const x = Vector<t_complex>::Random(n_wave_coeff);
83 while (state.KeepRunning()) {
84 auto start = std::chrono::high_resolution_clock::now();
86 auto end = std::chrono::high_resolution_clock::now();
92 t_uint m_imsizex = state.range(0);
93 t_uint m_imsizey = state.range(0);
94 sopt::wavelets::SARA m_sara{
95 std::make_tuple(
"Dirac", 3u), std::make_tuple(
"DB1", 3u), std::make_tuple(
"DB2", 3u),
96 std::make_tuple(
"DB3", 3u), std::make_tuple(
"DB4", 3u), std::make_tuple(
"DB5", 3u),
97 std::make_tuple(
"DB6", 3u), std::make_tuple(
"DB7", 3u), std::make_tuple(
"DB8", 3u)};
99 sopt::LinearTransform<Vector<t_complex>> m_Psi =
100 sopt::linear_transform<t_complex>(m_sara, m_imsizey, m_imsizex);
103 t_uint
const n_wave_coeff = m_sara.size() * m_imsizex * m_imsizey;
106 Vector<t_complex> temp;
107 Vector<t_complex>
const x = Vector<t_complex>::Random(m_imsizex * m_imsizey);
109 while (state.KeepRunning()) {
110 auto start = std::chrono::high_resolution_clock::now();
111 temp = m_Psi.adjoint() * x;
112 auto end = std::chrono::high_resolution_clock::now();
120 ->Range(1024, 1024 << 10)
123 ->ReportAggregatesOnly(
true)
124 ->Unit(benchmark::kMillisecond);
129 ->Range(1024, 1024 << 10)
132 ->ReportAggregatesOnly(
true)
133 ->Unit(benchmark::kMillisecond);
void TearDown(const ::benchmark::State &state)
void SetUp(const ::benchmark::State &state)
void SetUp(const ::benchmark::State &state)
void TearDown(const ::benchmark::State &state)
double duration(std::chrono::high_resolution_clock::time_point start, std::chrono::high_resolution_clock::time_point end)
void wavelet_operator_constructor(benchmark::State &state)
BENCHMARK_DEFINE_F(WaveletOperatorFixture, Apply)(benchmark