Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#2,182 コメント 13 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
ドキュメント
明瞭さ
おおむね明確
活発さ
活発
技術スタック
csharp
領域
documentation

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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

主要言語
C#
スター
831
フォーク
79
平均マージ
1時間 16分
マージ済み PR(30日)
521

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ASC-Community/AngouriMath のほかの issue

ASC-Community/AngouriMath の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。