# Announcing my first Julia package, 'HypergeoMat'

**URL:** <https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751>\
**Category:** Package Announcements\
**Tags:** math\
**Created:** [December 13, 2020, 1:51am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751 "2020-12-13T01:51:48Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [December 13, 2020, 1:51am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/1 "2020-12-13T01:51:48Z")

</div>

Hello,

Just to announce [my first Julia package](https://stla.github.io/HypergeoMat.jl/dev/).

Cheers.

---

<div class="post-metadata">

**Author:** ![logankilpatrick](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/logankilpatrick/32/38123_2.png) [@logankilpatrick](https://discourse.julialang.org/u/logankilpatrick)\
**Post date:** [December 13, 2020, 3:49am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/2 "2020-12-13T03:49:21Z")

</div>

This is awesome! The math is way over my head but new packages with detailed docs is a beautiful thing to see. Congrats!

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [December 13, 2020, 12:10pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/3 "2020-12-13T12:10:07Z")

</div>

Thanks for sharing this package. In addition to the references provided, it would be nice if you will, to indicate some applications of these hypergeometric functions of a matrix argument, providing some links in the documentation to use cases where such code is required.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 13, 2020, 12:12pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/4 "2020-12-13T12:12:42Z")

</div>

A small blurb describing the package is generally helpful in the announcement (you can still edit your post).

---

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [December 13, 2020, 1:21pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/5 "2020-12-13T13:21:06Z")

</div>

The package is described in the doc 😄

I don’t know a ton of applications. The only ones I know are related to random matrix theory: these hypergeometric functions appear in the density functions, Laplace transforms or Fourier transforms of several kind of random matrices.

---

<div class="post-metadata">

**Author:** ![Ayush\_Rawat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ayush_rawat/32/18961_2.png) [@Ayush\_Rawat](https://discourse.julialang.org/u/Ayush_Rawat)\
**Post date:** [December 13, 2020, 11:49pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/6 "2020-12-13T23:49:08Z")

</div>

That’s an excellent enough application in itself!

---

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [December 15, 2020, 12:15pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/7 "2020-12-15T12:15:16Z")

</div>

Thanks.

Here is [my second Julia package](https://stla.github.io/JackPolynomials.jl/dev/) (Jack polynomials), related to the first one.

---

<div class="post-metadata">

**Author:** ![Ayush\_Rawat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ayush_rawat/32/18961_2.png) [@Ayush\_Rawat](https://discourse.julialang.org/u/Ayush_Rawat)\
**Post date:** [December 16, 2020, 9:00pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/8 "2020-12-16T21:00:45Z")

</div>

Damn, fast production! 🙂

---

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [December 17, 2020, 9:51am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/9 "2020-12-17T09:51:26Z")

</div>

Lol, no, I had this code for a while, and I just packaged it, now that I know how to do a package 🙂

---

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [February 14, 2022, 10:05am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/10 "2022-02-14T10:05:17Z")

</div>

Now my R package [jack](https://github.com/stla/jackR) can calculate the Jack polynomials with Julia (thanks to the, **JuliaConnectoR** package). Observe the difference of speed (Julia 1.6):

```julia
## Unit: milliseconds
## expr min lq mean median uq max
## R 15767.690900 16131.731601 16546.8662 16381.9088 17123.5399 17329.460
## Julia 8.395101 9.733001 458.8062 11.0415 90.6334 2174.228

```

1600x faster than R! Amazing.

---

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [February 14, 2022, 10:19am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/11 "2022-02-14T10:19:09Z")

</div>

That’s strange. On my Linux laptop I have Julia 1.7 and it is slower:

```julia
Unit: milliseconds
  expr min lq mean median uq max neval cld
     R 21411.06068 21418.31391 21475.3985 21423.03423 21531.32397 21593.260 5 b
 Julia 48.71635 49.13159 312.7035 52.17541 84.16258 1329.331 5 a 

```

---

<div class="post-metadata">

**Author:** ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)\
**Post date:** [February 14, 2022, 2:11pm UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/12 "2022-02-14T14:11:42Z")

</div>

Hmm looks like the slowness is due to the R version. If I benchmark directly in Julia 1.7, it takes only 3ms.

```julia
julia> @benchmark Jack([1/2; 2/3; 1; 2/3; -1; -2; 1], [5;3;2;2;1], 3.0)
BenchmarkTools.Trial: 1575 samples with 1 evaluation.
 Range (min … max): 2.823 ms … 7.333 ms ┊ GC (min … max): 0.00% … 47.20%
 Time (median): 2.873 ms ┊ GC (median): 0.00%
 Time (mean ± σ): 3.162 ms ± 945.253 μs ┊ GC (mean ± σ): 8.44% ± 14.43%

```

---

<div class="post-metadata">

**Author:** ![\_stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/_stla/32/35613_2.png) [@\_stla](https://discourse.julialang.org/u/_stla)\
**Post date:** [July 18, 2022, 1:09am UTC](https://discourse.julialang.org/t/announcing-my-first-julia-package-hypergeomat/51751/13 "2022-07-18T01:09:09Z")

</div>

Update of **JackPolyomials.jl** , now it can deal with a symbolic parameter `alpha`:

```julia
julia> jack = JackPolynomial(2, [2 ; 1])
(alpha + 2)*x_1^2*x_2 + (alpha + 2)*x_1*x_2^2

julia> jack(1,2)
6*alpha + 12

```

Thanks to **AbstractAlgebra**.
