9#include <memory_resource>
10#include <nk/value/fn_handle.hpp>
11#include <nk/value/span.hpp>
12#include <nk/value/value.hpp>
33 std::pmr::memory_resource * mr =
nullptr);
45 std::pmr::memory_resource * mr =
nullptr);
61 std::pmr::memory_resource * mr =
nullptr);
78 const std::string & fnName,
81 std::pmr::memory_resource * mr =
nullptr);
100 std::pmr::memory_resource * mr =
nullptr);
122 const std::string & method =
"linear",
123 std::pmr::memory_resource * mr =
nullptr);
136 std::pmr::memory_resource * mr =
nullptr);
151 std::pmr::memory_resource * mr =
nullptr);
159 std::pmr::memory_resource * mr =
nullptr);
172 std::pmr::memory_resource * mr =
nullptr);
185 std::pmr::memory_resource * mr =
nullptr);
213 const std::string & method,
215 std::pmr::memory_resource * mr =
nullptr);
241 const std::string & method,
243 std::pmr::memory_resource * mr =
nullptr);
258 std::pmr::memory_resource *mr =
nullptr);
273 std::pmr::memory_resource *mr =
nullptr);
Core MATLAB-compatible multidimensional array and scalar value type.
static const Value Empty
MATLAB-style empty matrix sentinel — a 0×0 DOUBLE value.
Value diric(const Value &x, int n, std::pmr::memory_resource *mr=nullptr)
Dirichlet (periodic-sinc) function of order n.
Value demod(const Value &y, double Fc, double Fs, const std::string &method, const Value &opt=Value::Empty, std::pmr::memory_resource *mr=nullptr)
Analog demodulation (AM family).
Value vco(const Value &x, double fc, double fs, std::pmr::memory_resource *mr=nullptr)
Voltage-controlled (frequency-modulated) oscillator.
Value square(const Value &t, double duty=50.0, std::pmr::memory_resource *mr=nullptr)
Square wave with period 2π.
Value gmonopuls(const Value &t, double fc, std::pmr::memory_resource *mr=nullptr)
Gaussian monopulse at centre frequency fc.
Value chirp(const Value &t, double f0, double t1, double f1, const std::string &method="linear", std::pmr::memory_resource *mr=nullptr)
Frequency-modulated cosine (chirp).
Value gauspuls(const Value &t, double fc, double bw=0.5, std::pmr::memory_resource *mr=nullptr)
Gaussian-modulated sinusoid.
Value pulstranHandle(Span< const double > t, Span< const double > d, FnHandle fn, std::pmr::memory_resource *mr=nullptr)
Pulse train with a callback-based pulse generator.
Value pulstran(const Value &t, const Value &d, const std::string &fnName, double fcOrW=1.0, double bw=0.5, std::pmr::memory_resource *mr=nullptr)
Pulse train: Σ_i fn(t - d_i) for a named pulse type.
Value tripuls(const Value &t, double w=1.0, std::pmr::memory_resource *mr=nullptr)
Triangular pulse of unit amplitude on |t| ≤ w/2.
Value sinc(const Value &t, std::pmr::memory_resource *mr=nullptr)
Normalised cardinal sine: sinc(0) = 1, otherwise sin(πt)/(πt).
Value sawtooth(const Value &t, double width=1.0, std::pmr::memory_resource *mr=nullptr)
Sawtooth wave on period 2π.
Value modulate(const Value &x, double Fc, double Fs, const std::string &method, const Value &opt=Value::Empty, std::pmr::memory_resource *mr=nullptr)
Analog modulation: AM / FM / PM family.
Value rectpuls(const Value &t, double w=1.0, std::pmr::memory_resource *mr=nullptr)
Rectangular pulse of unit amplitude on the open interval (-w/2, w/2).