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; +} + +