#include <chrono>
#include <benchmark/benchmark.h>
#include "benchmarks/utilities.h"
#include "purify/wavelet_operator_factory.h"
Go to the source code of this file.
◆ BENCHMARK_DEFINE_F() [1/2]
Definition at line 91 of file wavelet_operator.cc.
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();
double duration(std::chrono::high_resolution_clock::time_point start, std::chrono::high_resolution_clock::time_point end)
References b_utilities::duration().
◆ BENCHMARK_DEFINE_F() [2/2]
Definition at line 65 of file wavelet_operator.cc.
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();
References b_utilities::duration().
◆ BENCHMARK_MAIN()
◆ RangeMultiplier()
RangeMultiplier |
( |
2 |
| ) |
-> Range(1024, 1024<< 10) ->UseManualTime() ->Repetitions(10) ->ReportAggregatesOnly(true) ->Unit(benchmark::kMillisecond) |
◆ wavelet_operator_constructor()
void wavelet_operator_constructor |
( |
benchmark::State & |
state | ) |
|
Definition at line 10 of file wavelet_operator.cc.
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();
References b_utilities::duration().