A register of function names, by what a mathematician calls each
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- ドキュメント
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- csharp
調査の方向性
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
- 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. - Where mathematicians call a function by its standard symbol alone, the symbol's name is used:
zeta(ζ),beta(B). This is howgamma(Γ) anderfare already named. Where mathematics writes an operator rather than a function, the operator is the spelling: the double factorial is the postfixn!!, as the factorial isn!, and congruence isa = b (mod n). - A name that already means something else in mathematics is not used.
divis the divergence, so the integer quotient isquotient.deltais Kronecker's and Dirac's, so the forward difference isforwarddifference.catalanalone is also Catalan's constant, andharmonicalso the harmonic mean, socatalannumberandharmonicnumber.pochhammer, and the notation(x)_n, mean the rising factorial in special functions and the falling one in combinatorics, so neither is used.
- 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.
- Nothing is added that the library already writes another way.
isprime(n)isn in PP,clamp(x, a, b)ismin(max(x, a), b), the fractional part isx mod 1(floored, so in[0, 1)) and the integer quotient isfloor(a/b). The Heaviside step function is the same case. Its sources disagree on its value at 0, soheavisidewould have to pick one: Wikipedia lists0,1/2,1,[0, 1]and none, MathWorld gives1/2, DLMF 1.16.130, Mathematica'sUnitStep1and itsHeavisideThetanone. Each is already written exactly:iverson(x > 0),iverson(x >= 0)and(1 + sgn(x))/2, so neitherheavisidenorunitstepis 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
- 主要言語
- C#
- スター
- 831
- フォーク
- 79
- 平均マージ
- 1時間 16分
- マージ済み PR(30日)
- 521
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ASC-Community/AngouriMath のほかの issue
-
Substituting for a derivative's variable is dropped: derivative(x^3, x) at x = 1 evaluates to 3 x^2オープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
ASC-Community/AngouriMath#2189 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
ASC-Community/AngouriMath#2164 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
ASC-Community/AngouriMath#2160 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
ASC-Community/AngouriMath#2153 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
ASC-Community/AngouriMath#2152 ·
メンテナーはふだん 1 日以内に返信
ASC-Community/AngouriMath の issue をすべて見る
似ている issue
-
bug 優先: 低
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
-
.NET area: storage bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Larson-Logan/medal-sync#61 ·
メンテナーはふだん 1 日以内に返信
-
area-ai bug untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
dotnet/extensions#7893 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100