stan-dev / stanc3

The Stan transpiler (from Stan to C++ and beyond).
BSD 3-Clause "New" or "Revised" License
138 stars 44 forks source link

Expose `hypergeometric_2F1` and `hypergeometric_3F2` #1285

Open spinkney opened 1 year ago

spinkney commented 1 year ago

These functions are in stan-math from from the PRs https://github.com/stan-dev/math/pull/2792 and https://github.com/stan-dev/math/pull/2797.

Let's expose them.

There is demand on the forums https://discourse.mc-stan.org/t/gaussian-hypergeometric-function-for-exact-distribution-of-a-correlation/30606/3 https://discourse.mc-stan.org/t/hypergeometric-functions/252 https://discourse.mc-stan.org/t/confluent-hypergeometric-functions-to-estimate-population-size-and-detection-probability-from-spatially-replicated-counts/28758 (1F1 but still...)

WardBrian commented 1 year ago

Exposing these should be easy if you can provide the list of supported signatures

spinkney commented 1 year ago

@andrjohns, I don't see a rev version of hypergeometric_3F2 so we probably shouldn't expose that now. I also see that hypergeometric_pFq has a comment about not being exposed to users but I think it could be useful. What are your thoughts on that?

At the end, I believe we just have hypergeometric_2F1 which is quite a useful function.

A couple of questions for @andrjohns:

a arbitrary
b Must be greater 0
c Must be greater than b if |z| < 1, and c > b + a if z = 1
z |z| <= 1
WardBrian commented 5 months ago

More forum requests: https://discourse.mc-stan.org/t/how-to-use-stan-hypergeometric-2f1-in-stan/33840