nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
convolution.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/convolution/convolution.hpp
4#pragma once
5
6#include <memory_resource>
7#include <nk/value/value.hpp>
8
9#include <string>
10#include <tuple>
11
12namespace nk::signal {
13
16
17
41Value conv(const Value & a,
42 const Value & b,
43 const std::string & shape = "full",
44 std::pmr::memory_resource * mr = nullptr);
45
60std::tuple<Value, Value>
61deconv(const Value & b,
62 const Value & a,
63 std::pmr::memory_resource * mr = nullptr);
64
85std::tuple<Value, Value>
86xcorr(const Value & x,
87 const Value & y,
88 std::pmr::memory_resource * mr = nullptr);
89
97inline std::tuple<Value, Value>
98xcorr(const Value &x, std::pmr::memory_resource *mr = nullptr)
99{
100 return xcorr(x, x, mr);
101}
102
120std::tuple<Value, Value>
121xcov(const Value & x,
122 const Value & y,
123 int maxlag,
124 const std::string & scaleopt,
125 std::pmr::memory_resource * mr = nullptr);
126
128inline std::tuple<Value, Value>
129xcov(const Value &x, const Value &y, std::pmr::memory_resource *mr = nullptr)
130{
131 return xcov(x, y, -1, std::string("none"), mr);
132}
133
141inline std::tuple<Value, Value>
142xcov(const Value &x, std::pmr::memory_resource *mr = nullptr)
143{
144 return xcov(x, x, mr);
145}
146
167Value conv2(const Value & A,
168 const Value & B,
169 const std::string & shape = "full",
170 std::pmr::memory_resource * mr = nullptr);
171
186 const Value & X,
187 const std::string & shape = "same",
188 std::pmr::memory_resource * mr = nullptr);
189
203Value convn(const Value & A,
204 const Value & B,
205 const std::string & shape = "full",
206 std::pmr::memory_resource * mr = nullptr);
207
208
210} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value filter2(const Value &h, const Value &X, const std::string &shape="same", std::pmr::memory_resource *mr=nullptr)
2-D filter — filter2(h, X[, shape]).
Value conv2(const Value &A, const Value &B, const std::string &shape="full", std::pmr::memory_resource *mr=nullptr)
2-D convolution of two real matrices.
std::tuple< Value, Value > xcov(const Value &x, const Value &y, int maxlag, const std::string &scaleopt, std::pmr::memory_resource *mr=nullptr)
Cross-covariance of two real vectors.
std::tuple< Value, Value > deconv(const Value &b, const Value &a, std::pmr::memory_resource *mr=nullptr)
Polynomial long-division: b = conv(a, q) + r.
Value convn(const Value &A, const Value &B, const std::string &shape="full", std::pmr::memory_resource *mr=nullptr)
N-D convolution.
Value conv(const Value &a, const Value &b, const std::string &shape="full", std::pmr::memory_resource *mr=nullptr)
1-D convolution of two real vectors.
std::tuple< Value, Value > xcorr(const Value &x, const Value &y, std::pmr::memory_resource *mr=nullptr)
Cross-correlation of two real vectors.