From 890404abdcbfa4988db0947efeedc0d52cd1d9db Mon Sep 17 00:00:00 2001 From: mathur04 <90455442+mathur04@users.noreply.github.com> Date: Wed, 10 Jul 2024 23:05:57 +0200 Subject: [PATCH] Create jinc.cpp --- UTSR/jinc.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 UTSR/jinc.cpp diff --git a/UTSR/jinc.cpp b/UTSR/jinc.cpp new file mode 100644 index 0000000..7407ef4 --- /dev/null +++ b/UTSR/jinc.cpp @@ -0,0 +1,22 @@ +#include +#include +#include + +double jinc(double r) { + // Returns the jinc function [J1(2*pi*r)/(2*pi*r)] evaluated at r. + // Per this definition, the first zero of jinc function is at 0.61. + if (r == 0.0) { + return 0.5; + } + return std::real(std::cyl_bessel_j(1, r) / r); +} + +std::vector jinc(const std::vector& r) { + std::vector y(r.size()); + std::transform(r.begin(), r.end(), y.begin(), [](double x) { + return jinc(x); + }); + return y; +} + +