stdlib-js / stdlib-js/stdlib

[RFC]: Add C implementations to base special math functions (tracking issue)

Abierto
#649 36 comentarios 0 reacciones 0 asignados Ver en GitHub
Accepted difficulty: 3 Enhancement Math Native Addons priority: High RFC Tracking Issue
Lenguaje dominante
JavaScript
Estrellas
6k
Forks
1.3k
Merge medio
1 d 3 h
PR fusionados (30 d)
611

Descripción

### Description

This RFC proposes adding C implementations to all base special math functions. The purpose of this issue is to serve as a tracking issue for adding C implementations.

### Packages

- [x] abs
- [x] abs2
- [x] abs2f
- [x] absf
- [x] acos
- [x] acosf
- [x] acosd
- [x] acosdf
- [x] acosh
- [ ] acoshf
- [x] acot
- [x] acotf
- [x] acotd
- [x] acotdf
- [x] acoth
- [ ] acothf
- [x] acovercos
- [x] acovercosf
- [x] acoversin
- [x] acoversinf
- [x] acsc
- [x] acscf
- [x] acscd
- [x] acscdf
- [x] acsch
- [ ] acschf
- [x] ahavercos
- [x] ahavercosf
- [x] ahaversin
- [x] ahaversinf
- [x] asec
- [x] asecf
- [x] asecd
- [x] asecdf
- [x] asech
- [ ] asechf
- [x] asin
- [x] asinf
- [x] asind
- [x] asindf
- [x] asinf
- [x] asinh
- [ ] asinhf
- [x] atan
- [x] atanf
- [x] atan2
- [x] atan2f
- [x] atand
- [x] atandf
- [x] atanh
- [ ] atanhf
- [x] avercos
- [x] avercosf
- [x] aversin
- [x] aversinf
- [x] bernoulli
- [x] bernoullif
- [x] besselj0
- [ ] besselj0f
- [x] besselj1
- [ ] besselj1f
- [x] bessely0
- [ ] bessely0f
- [x] bessely1
- [ ] bessely1f
- [x] beta
- [ ] betaf
- [ ] betainc
- [ ] betaincf
- [ ] betaincinv
- [ ] betaincinvf
- [x] betaln
- [ ] betalnf
- [x] binet
- [ ] binetf
- [x] binomcoef
- [x] binomcoeff
- [x] binomcoefln
- [ ] binomcoeflnf
- [x] boxcox
- [ ] boxcoxf
- [x] boxcox1p
- [ ] boxcox1pf
- [x] boxcox1pinv
- [ ] boxcox1pinvf
- [x] boxcoxinv
- [ ] boxcoxinvf
- [x] cabs
- [x] cabs2
- [x] cabs2f
- [x] cabsf
- [x] cbrt
- [x] cbrtf
- [x] cceil
- [x] cceilf
- [x] cceiln
- [ ] cceilnf
- [x] ccis
- [ ] ccisf
- [x] ceil
- [x] ceil10
- [ ] ceil10f
- [x] ceil2
- [ ] ceil2f
- [x] ceilb
- [ ] ceilbf
- [x] ceilf
- [x] ceiln
- [ ] ceilnf
- [x] ceilsd
- [ ] ceilsdf
- [x] cexp
- [ ] cexpf
- [x] cflipsign
- [x] cflipsignf
- [x] cfloor
- [x] cfloorf
- [x] cfloorn
- [ ] cfloornf
- [x] cidentity
- [x] cidentityf
- [x] cinv
- [x] cinvf
- [x] clamp
- [x] clampf
- [x] copysign
- [x] copysignf
- [x] cos
- [x] cosf
- [x] cosd
- [x] cosdf
- [x] cosh
- [ ] coshf
- [x] cosm1
- [x] cosm1f
- [x] cospi
- [x] cospif
- [x] cot
- [x] cotf
- [x] cotd
- [x] cotdf
- [x] coth
- [ ] cothf
- [x] covercos
- [x] covercosf
- [x] coversin
- [x] coversinf
- [x] cphase
- [x] cphasef
- [x] cpolar
- [x] cpolarf
- [x] cround
- [x] croundf
- [x] croundn
- [ ] croundnf
- [x] csc
- [x] cscf
- [x] cscd
- [x] cscdf
- [x] csch
- [ ] cschf
- [x] csignum
- [x] csignumf
- [x] deg2rad
- [x] deg2radf
- [x] digamma
- [ ] digammaf
- [x] dirac-delta
- [x] dirac-deltaf
- [x] dirichlet-eta
- [ ] dirichlet-etaf
- [x] ellipe
- [ ] ellipef
- [x] ellipj
- [ ] ellipjf
- [x] ellipk
- [ ] ellipkf
- [x] erf
- [ ] erff
- [x] erfc
- [ ] erfcf
- [x] erfcinv
- [ ] erfcinvf
- [x] erfcx
- [ ] erfcxf
- [x] erfinv
- [ ] erfinvf
- [x] exp
- [ ] expf
- [x] exp10
- [ ] exp10f
- [x] exp2
- [ ] exp2f
- [x] expit
- [ ] expitf
- [x] expm1
- [ ] expm1f
- [x] expm1rel
- [ ] expm1relf
- [x] factorial
- [ ] factorialf
- [x] factorial2
- [x] factorial2f
- [x] factorialln
- [x] factoriallnf
- [x] falling-factorial
- [ ] falling-factorialf
- [x] fast/\*
- [x] fibonacci
- [x] fibonaccif
- [x] fibonacci-index
- [x] fibonacci-indexf
- [x] flipsign
- [x] flipsignf
- [x] floor
- [x] floor10
- [ ] floor10f
- [x] floor2
- [ ] floor2f
- [x] floorb
- [ ] floorbf
- [x] floorf
- [x] floorn
- [ ] floornf
- [x] floorsd
- [ ] floorsdf
- [x] fmod
- [x] fmodf
- [x] fresnel
- [ ] fresnelf
- [x] fresnelc
- [ ] fresnelcf
- [x] fresnels
- [ ] fresnelsf
- [x] frexp
- [x] frexpf
- [x] gamma
- [ ] gammaf
- [x] gamma-delta-ratio
- [ ] gamma-delta-ratiof
- [x] gamma-lanczos-sum
- [ ] gamma-lanczos-sumf
- [x] gamma-lanczos-sum-expg-scaled
- [x] gamma-lanczos-sum-expg-scaledf
- [x] gamma1pm1
- [ ] gamma1pm1f
- [x] gammainc
- [ ] gammaincf
- [ ] gammaincinv
- [ ] gammaincinvf
- [x] gammaln
- [ ] gammalnf
- [x] gammasgn
- [x] gammasgnf
- [x] gcd
- [x] gcdf
- [x] hacovercos
- [x] hacovercosf
- [x] hacoversin
- [x] hacoversinf
- [x] havercos
- [x] havercosf
- [x] haversin
- [x] haversinf
- [ ] heaviside
- [x] heavisidef
- [x] hypot
- [x] hypotf
- [x] identity
- [x] identityf
- [x] inv
- [x] invf
- [ ] kernel-betainc
- [ ] kernel-betaincf
- [ ] kernel-betaincinv
- [ ] kernel-betaincinvf
- [x] kernel-cos
- [x] kernel-cosf
- [x] kernel-sin
- [x] kernel-sinf
- [x] kernel-tan
- [x] kernel-tanf
- [x] kronecker-delta
- [x] kronecker-deltaf
- [x] labs
- [x] lcm
- [x] lcmf
- [x] ldexp
- [x] ldexpf
- [x] ln
- [x] lnf
- [x] log
- [x] logf
- [x] log10
- [ ] log10f
- [x] log1mexp
- [ ] log1mexpf
- [x] log1p
- [x] log1pf
- [x] log1pexp
- [ ] log1pexpf
- [x] log1pmx
- [ ] log1pmxf
- [x] log2
- [ ] log2f
- [x] logaddexp
- [ ] logaddexpf
- [x] logit
- [x] logitf
- [x] lucas
- [x] lucasf
- [x] max
- [x] maxf
- [x] maxabs
- [x] maxabsf
- [ ] ~~maxabsn~~
- [ ] ~~maxn~~
- [x] min
- [x] minf
- [x] minabs
- [x] minabsf
- [ ] ~~minabsn~~
- [x] minmax
- [x] minmaxf
- [x] minmaxabs
- [x] minmaxabsf
- [ ] ~~minmaxabsn~~
- [ ] ~~minmaxn~~
- [ ] ~~minn~~
- [x] modf
- [x] modff
- [x] nanmax
- [x] nanmaxf
- [x] nanmin
- [x] nanminf
- [x] negafibonacci
- [x] negafibonaccif
- [x] negalucas
- [x] negalucasf
- [x] nonfibonacci
- [x] nonfibonaccif
- [x] pdiff
- [x] pdifff
- [ ] polygamma
- [ ] polygammaf
- [x] pow
- [x] powf
- [x] powm1
- [ ] powm1f
- [x] rad2deg
- [x] rad2degf
- [x] ramp
- [x] rampf
- [x] rcbrt
- [x] rcbrtf
- [x] rempio2
- [x] rempio2f
- [x] riemann-zeta
- [ ] riemann-zetaf
- [x] rising-factorial
- [ ] rising-factorialf
- [x] round
- [x] roundf
- [x] round10
- [ ] round10f
- [x] round2
- [ ] round2f
- [x] roundb
- [ ] roundbf
- [x] roundn
- [ ] roundnf
- [x] roundsd
- [ ] roundsdf
- [x] rsqrt
- [x] rsqrtf
- [x] sec
- [x] secd
- [x] secdf
- [x] secf
- [ ] sici
- [ ] sicif
- [x] signum
- [x] signumf
- [x] sin
- [x] sinf
- [x] sinc
- [x] sincf
- [x] sincos
- [x] sincosd
- [ ] sincosdf
- [x] sincosf
- [x] sincospi
- [ ] sincospif
- [x] sinh
- [x] sinhf
- [x] sinpi
- [x] sinpif
- [x] spence
- [x] spencef
- [x] sqrt
- [x] sqrt1pm1
- [ ] sqrt1pm1f
- [x] sqrtf
- [x] sqrtpi
- [x] sqrtpif
- [x] tan
- [x] tanf
- [x] tand
- [x] tandf
- [x] tanh
- [ ] tanhf
- [x] tribonacci
- [x] tribonaccif
- [x] trigamma
- [x] trigammaf
- [x] trunc
- [x] trunc10
- [ ] trunc10f
- [x] trunc2
- [ ] trunc2f
- [x] truncb
- [ ] truncbf
- [x] truncf
- [x] truncn
- [ ] truncnf
- [x] truncsd
- [ ] truncsdf
- [x] vercos
- [x] vercosf
- [x] versin
- [x] versinf
- [x] wrap
- [x] wrapf
- [x] xlog1py
- [ ] xlog1pyf
- [x] xlogy
- [x] xlogyf

### Related Issues

None.

### Questions

No.

### Other

No.

### Checklist

- [X] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with `RFC:`.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.