JuliaSIMD / JuliaSIMD/LoopVectorization.jl

tracking Special Functions' support

Ouverte
#233 5 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Julia
Étoiles
789
Forks
73
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

This is a follow-up of #232. Right now I would be interested in LV's support of the whole `erf` family (`erfc` and `erfcx` in particular), but since we are at it maybe it is useful to track the whole [special functions' family](https://juliamath.github.io/SpecialFunctions.jl/dev/functions_overview/):

- [ ] gamma(z) gamma function \Gamma(z)Γ(z)
- [ ] loggamma(x) accurate log(gamma(x)) for large x
- [ ] logabsgamma(x) accurate log(abs(gamma(x))) for large x
- [ ] logfactorial(x) accurate log(factorial(x)) for large x; same as loggamma(x+1) for x > 1, zero otherwise
- [ ] digamma(x) digamma function (i.e. the derivative of loggamma at x)
- [ ] invdigamma(x) invdigamma function (i.e. inverse of digamma function at x using fixed-point iteration algorithm)
- [ ] trigamma(x) trigamma function (i.e the logarithmic second derivative of gamma at x)
- [ ] polygamma(m,x) polygamma function (i.e the (m+1)-th derivative of the loggamma function at x)
- [ ] gamma(a,z) upper incomplete gamma function \Gamma(a,z)Γ(a,z)
- [ ] loggamma(a,z) accurate log(gamma(a,x)) for large arguments
- [ ] gamma_inc(a,x,IND) incomplete gamma function ratio P(a,x) and Q(a,x)
- [ ] beta_inc(a,b,x,y) incomplete beta function ratio Ix(a,b) and Iy(a,b)
- [ ] gamma_inc_inv(a,p,q) inverse of incomplete gamma function ratio P(a,x) and Q(a,x)
- [ ] beta(x,y) beta function at x,y
- [ ] logbeta(x,y) accurate log(beta(x,y)) for large x or y
- [ ] logabsbeta(x,y) accurate log(abs(beta(x,y))) for large x or y
- [ ] logabsbinomial(x,y) accurate log(abs(binomial(n,k))) for large n and k near n/2
- [ ] expint(ν, z) exponential integral
- [ ] expinti(x) exponential integral
- [ ] expintx(x) scaled exponential integral
- [ ] sinint(x) sine integral
- [ ] cosint(x) cosine integral
- [x] erf(x) : ref. #232
- [ ] erf(x,y)
- [ ] erfc(x) complementary error function,
- [ ] erfcinv(x) inverse function to erfc()
- [ ] erfcx(x) scaled complementary error function
- [ ] logerfc(x) log of the complementary error function
- [ ] logerfcx(x) log of the scaled complementary error function
- [ ] erfi(x) imaginary error function defined as -i \operatorname{erf}(ix)−ierf(ix)
- [ ] erfinv(x) inverse function to erf()
- [ ] dawson(x) scaled imaginary error function, a.k.a. Dawson function,
- [ ] airyai(z) Airy Ai function at z
- [ ] airyaiprime(z) derivative of the Airy Ai function at z
- [ ] airybi(z) Airy Bi function at z
- [ ] airybiprime(z) derivative of the Airy Bi function at z
- [ ] airyaix(z), airyaiprimex(z), airybix(z), airybiprimex(z) scaled Airy Ai function and kth derivatives at z
- [ ] besselj(nu,z) Bessel function of the first kind of order nu at z
- [ ] besselj0(z) besselj(0,z)
- [ ] besselj1(z) besselj(1,z)
- [ ] besseljx(nu,z) scaled Bessel function of the first kind of order nu at z
- [ ] sphericalbesselj(nu,z) Spherical Bessel function of the first kind of order nu at z
- [ ] bessely(nu,z) Bessel function of the second kind of order nu at z
- [ ] bessely0(z) bessely(0,z)
- [ ] bessely1(z) bessely(1,z)
- [ ] besselyx(nu,z) scaled Bessel function of the second kind of order nu at z
- [ ] sphericalbessely(nu,z) Spherical Bessel function of the second kind of order nu at z
- [ ] besselh(nu,k,z) Bessel function of the third kind (a.k.a. Hankel function) of order nu at z; k must be either 1 or 2
- [ ] hankelh1(nu,z) besselh(nu, 1, z)
- [ ] hankelh1x(nu,z) scaled besselh(nu, 1, z)
- [ ] hankelh2(nu,z) besselh(nu, 2, z)
- [ ] hankelh2x(nu,z) scaled besselh(nu, 2, z)
- [ ] besseli(nu,z) modified Bessel function of the first kind of order nu at z
- [ ] besselix(nu,z) scaled modified Bessel function of the first kind of order nu at z
- [ ] besselk(nu,z) modified Bessel function of the second kind of order nu at z
- [ ] besselkx(nu,z) scaled modified Bessel function of the second kind of order nu at z
- [ ] jinc(x) scaled Bessel function of the first kind divided by x. A.k.a. sombrero or besinc
- [ ] ellipk(m) complete elliptic integral of 1st kind K(m)K(m)
- [ ] ellipe(m) complete elliptic integral of 2nd kind E(m)E(m)
- [ ] eta(x) Dirichlet eta function at x
- [ ] zeta(x) Riemann zeta function at x
- [ ] binomial(n, p)

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par lire l’issue de suivi #232 et la vue d’ensemble des fonctions de SpecialFunctions.jl qui y est liée, puis identifiez les fonctions incluses dans le périmètre au-delà de l’élément erf déjà vérifié. L’issue ne nomme aucun fichier source ni aucun test, et ne définit pas de cible délimitée ; il faudrait donc convenir d’un ensemble de fonctions plus restreint et définir pour celui-ci des vérifications de couverture et de correction afin de terminer le travail.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
julia
Domaine
performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.