Use a bind statement instead of a lambda
parent
84134d7399
commit
524f254c3a
|
@ -7,6 +7,7 @@
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
#include <functional>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "albit.h"
|
#include "albit.h"
|
||||||
|
@ -148,6 +149,8 @@ void complex_fft(const al::span<std::complex<double>> buffer, const double sign)
|
||||||
|
|
||||||
void complex_hilbert(const al::span<std::complex<double>> buffer)
|
void complex_hilbert(const al::span<std::complex<double>> buffer)
|
||||||
{
|
{
|
||||||
|
using namespace std::placeholders;
|
||||||
|
|
||||||
inverse_fft(buffer);
|
inverse_fft(buffer);
|
||||||
|
|
||||||
const double inverse_size = 1.0/static_cast<double>(buffer.size());
|
const double inverse_size = 1.0/static_cast<double>(buffer.size());
|
||||||
|
@ -156,8 +159,7 @@ void complex_hilbert(const al::span<std::complex<double>> buffer)
|
||||||
|
|
||||||
*bufiter *= inverse_size; ++bufiter;
|
*bufiter *= inverse_size; ++bufiter;
|
||||||
bufiter = std::transform(bufiter, halfiter, bufiter,
|
bufiter = std::transform(bufiter, halfiter, bufiter,
|
||||||
[inverse_size](const std::complex<double> &c) -> std::complex<double>
|
std::bind(std::multiplies<>{}, _1, 2.0*inverse_size));
|
||||||
{ return c * (2.0*inverse_size); });
|
|
||||||
*bufiter *= inverse_size; ++bufiter;
|
*bufiter *= inverse_size; ++bufiter;
|
||||||
|
|
||||||
std::fill(bufiter, buffer.end(), std::complex<double>{});
|
std::fill(bufiter, buffer.end(), std::complex<double>{});
|
||||||
|
|
Loading…
Reference in New Issue