Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

A register of function names, by what a mathematician calls each

Abierto
#2,182 13 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Documentación
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp

Línea de trabajo

Start by reading the naming rules, the proposed function table, and the related issues #2180–#2194 listed in the issue. The issue identifies no source files or tests; it calls for settling conventions across many proposed functions, including the zeta naming rule that is still marked “To decide.” Done means the names, accepted aliases, LaTeX forms, and reserved names are settled consistently.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

The names and conventions of functions the library does not have yet, fixed before any of them is implemented, so that they land in any order without being argued again. This replaces a first version that copied an older table and its rule that SymPy's spelling wins. That rule gave lambertw beside zeta, and SymPy's cryptic ff and rf.

The rule
  1. A function is named by what a mathematician calls it. That is its Wikipedia article and MathWorld entry, in lower case, without spaces or the word "function": lambertw (Lambert W function), harmonicnumber, doublefactorial, fallingfactorial.
  2. Where mathematicians call a function by its standard symbol alone, the symbol's name is used: zeta (ζ), beta (B). This is how gamma (Γ) and erf are already named. Where mathematics writes an operator rather than a function, the operator is the spelling: the double factorial is the postfix n!!, as the factorial is n!, and congruence is a = b (mod n).
  3. A name that already means something else in mathematics is not used.
    • div is the divergence, so the integer quotient is quotient.
    • delta is Kronecker's and Dirac's, so the forward difference is forwarddifference.
    • catalan alone is also Catalan's constant, and harmonic also the harmonic mean, so catalannumber and harmonicnumber.
    • pochhammer, and the notation (x)_n, mean the rising factorial in special functions and the falling one in combinatorics, so neither is used.
  4. Mathematica's name is accepted on input where it is another spelling of the same function, and SymPy's where it is unambiguous. Only the chosen name is printed.
  5. Nothing is added that the library already writes another way. isprime(n) is n in PP, clamp(x, a, b) is min(max(x, a), b), the fractional part is x mod 1 (floored, so in [0, 1)) and the integer quotient is floor(a/b). The Heaviside step function is the same case. Its sources disagree on its value at 0, so heaviside would have to pick one: Wikipedia lists 0, 1/2, 1, [0, 1] and none, MathWorld gives 1/2, DLMF 1.16.13 0, Mathematica's UnitStep 1 and its HeavisideTheta none. Each is already written exactly: iverson(x > 0), iverson(x >= 0) and (1 + sgn(x))/2, so neither heaviside nor unitstep is added; both are refused with those three spellings (see #2182).

The sources are listed for each row as evidence, not as the reason.

LaTeX reads back as what it came from. A Greek letter or a capital that could be a variable is wrapped in \operatorname, as phi(n) already draws as \operatorname{\varphi}\left(n\right), since mu * (n + 1) draws as \mu \left(n+1\right). Braces are left for sets. A constant is upright, as pi is \mathrm{\pi}.

Shipped

floor, ceil, round, mod, min, max, gcd, lcm, phi, binomial, sum, product, erf, erfc, digamma, polygamma, gamma, and congruence as a = b (mod n). Also prime(n), valuation, iverson, det, transpose, dot, cross and resultant (#2180), conjugate/conj and arg (#2181), Re and Im (#2185), the double factorial n!! (#2187), and mobius, divisorsigma, primenu, primeomega and primepi (#2188). laplacian, jacobian and hessian (#2190). In review: fallingfactorial, factorialpower and risingfactorial (#2194).

Proposed
Name Also accepted Wikipedia MathWorld Mathematica SymPy LaTeX Convention
fallingfactorial(x, n) factorialpower Falling and rising factorials Falling Factorial FactorialPower ff x^{\underline{n}} x (x - 1) ... (x - n + 1); Knuth's underbar, from Concrete Mathematics
risingfactorial(x, n) Falling and rising factorials Rising Factorial Pochhammer rf x^{\overline{n}} x (x + 1) ... (x + n - 1); Knuth's overbar. A conjugate in an exponent then draws in parentheses, x^{\left(\overline{n}\right)}, so the two read apart
harmonicnumber(n), (n, m) Harmonic number Harmonic Number HarmonicNumber harmonic \operatorname{H}_{n}, \operatorname{H}_{n}^{(m)} the sum of 1/k^m for k up to n
catalannumber(n) Catalan number Catalan Number CatalanNumber catalan \operatorname{C}_{n} binomial(2n, n)/(n + 1)
multinomial(n_1, ..., n_k) Multinomial theorem Multinomial Coefficient Multinomial \binom{n_1 + ... + n_k}{n_1, ..., n_k}
beta(a, b) Beta function Beta Function Beta beta \operatorname{B}\left(a, b\right)
lambertw(z), (k, z) productlog Lambert W function Lambert W-Function ProductLog[z], ProductLog[k, z] LambertW(z, k) \operatorname{W}_{k}\left(z\right) the branch first, as the subscript and Mathematica read; 0 without it
zeta(s), zeta(s, a) Riemann zeta function, Hurwitz zeta function Riemann Zeta Function, Hurwitz Zeta Function Zeta, HurwitzZeta zeta \operatorname{\zeta}\left(s\right), \operatorname{\zeta}\left(s, a\right) To decide: rule 2 gives zeta, rule 1 gives riemannzeta and hurwitzzeta
forwarddifference(f, k) Finite difference Forward Difference DifferenceDelta \operatorname{\Delta}_{k} f f(k + 1) - f(k)
norm(v), (v, p) Norm (mathematics) Vector Norm Norm Matrix.norm \left| v \right|_{p} p = 2 by default; p = +oo is the largest modulus
grad(f, x) gradient Gradient Gradient Grad gradient \nabla f a column
div(F, x) divergence Divergence Divergence Div divergence \nabla \cdot F
curl(F, x) Curl (mathematics) Curl Curl curl \nabla \times F three dimensions only

One constant: eulergamma, \mathrm{\gamma}, needed by digamma, harmonicnumber and zeta. Wikipedia calls it Euler's constant, MathWorld the Euler-Mascheroni Constant, and Mathematica and SymPy EulerGamma. It is spelled out because gamma is already the Γ function.

Reserved until implemented

An unknown name followed by a bracket is read as a product, so zeta(s) is zeta * s today, silently. #2184 refuses the long names by name until each is implemented. Short names that could be somebody's variable before a bracket are not reserved: beta, norm, grad, div, curl, frac.

Related: #809 (the research), #2145, #2147.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Lenguaje dominante
C#
Estrellas
831
Forks
79
Merge medio
1 h 16 min
PR fusionados (30 d)
521

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ASC-Community/AngouriMath

Todos los issues de ASC-Community/AngouriMath

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.