Code Monkey home page Code Monkey logo

hankel.jl's People

Contributors

chrisbrahms avatar github-actions[bot] avatar maxfreu avatar mzgubic avatar sethaxen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hankel.jl's Issues

incorrect nodes at high orders due to incorrect zeros

Thanks for a great package!

Since this package depends on FunctionZeros, it suffers from JuliaMath/FunctionZeros.jl#10 (that package doesn't work for orders larger than a few) and thus Hankel.jl cannot set up a plan for those orders. For example, here's a quick selection of nodes,

using Hankel
R = 1.0
N = 32
q = QDHT(10, R, N)
print(q.r[4:7])
[0.21586560553503556, 0.3827577984254705, 3.847210992460738, 0.24445021648591286]

These nodes aren't monotonically increasing!

I imagine this can be fixed by using a more reliable source of zeros, perhaps GSL? FunctionZeros is a very tiny package, so maybe a pure Julia replacement using more robust methods might be helpful.

Register v0.2

It looks like v0.2 failed to register because the v0.2.0 tag already existed. v0.1.1 is the current version in the registry.

Bumping to v0.2.1 and registering would work, else the v0.2.0 tag would need to be deleted.

using Bessels.jl for your besselj and gamma calls

Thank you for this package! I remember using it tangentially for research last year and found it very helpful.

One thing I was curious about is if Bessels.jl would provide any added benefit here? In general, the besselj and gamma functions are several times faster than the ones provided by SpecialFunctions.jl (we also provide spherical Bessel functions). An advantage is that besselj doesn't allocate so that should be a very helpful memory boost.

I went ahead and cloned the library and swapped in Bessels.jl instead and it did pass all the tests except the ones for BigFloat. That is a current limitation as we only provide single and double precision so far. Are there any particular features that would be helpful here that we could add at Bessels? Or is there a nice example that I could try out to test any performance improvements?

Best,
Michael

Scope and relationship to other packages

Nice package!

I'm planning to implement a discrete spherical Hankel transform, also following the pattern of AbstractFFTs. Since you have the Hankel package name in the registry, would your package be a good place to contribute this (else I would create a SphericalHankel.jl)? It would be nice if the interfaces were similar.

I noticed you currently implement only the zero-order DHT. There's also @jagot's package https://github.com/jagot/Hankel.jl, which is stale but implements additional orders, seemingly following the same papers.

besselj_zero not exported

you may want to export besselj_zero or change your example in the documentations such that the function can be found.
It took me quite long to realize that this function is provided by this package, but not exported ;-)

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Question: Derivative with respect to real space coordinate

Hi! I used the QDHT to calculate the convolution of two radially symmetric functions via multiplication in Fourier space and then transforming back. What I am now interested in is the derivative of the convolution result with respect to the radial variable. Math-wise it should be something like this I think:

$$ \frac{d}{dr}f(r) = \frac{d}{dr}H_0^{-1}(F(k)) = \frac{d}{dr} \int_0^\infty F(k) J_0(kr)k\ dk = - \int_0^\infty F(k) J_1(kr)k^2\ dk = -H_1^{-1}(kF(k))$$

Question: Is there a nice way to obtain the result using QDHT? So far I think no, as $H_0$ and $H_1$ use different discretizations of the real and reciproke space, but I'd be happy if there's a workaround.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.