# Wrong use of asymptotic notation in the Multi-dimensional Arrays page

**URL:** https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464
**Category:** New to Julia
**Tags:** documentation
**Created:** [May 30, 2020, 10:36am UTC](https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464 "2020-05-30T10:36:01Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![natema](https://avatars.discourse-cdn.com/v4/letter/n/ba9def/32.png) [@natema](https://discourse.julialang.org/u/natema)
#### Post date: [May 30, 2020, 10:36am UTC](https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464/1 "2020-05-30T10:36:01Z")

</div>

I’m learning Julia and, reading the documentations in the past days, I wrote down few comments on typos, unclear sentences, etc. I’m new to the community and I’m unsure whether I should directly open an issue on GitHub, and/or create a pull request.

For example, in the third sentence of the second paragraph of the [Implementation section of the Multi-dimensional Arrays documentation page](https://docs.julialang.org/en/v1/manual/arrays/#Implementation-1) it is written

> It is recommended that these operations have nearly constant time complexity, or technically Õ(1) complexity, as otherwise some array functions may be unexpectedly slow.

AFAIK, `Õ(1) ` is quite an abuse of notation, since \tilde O(f(n)) := O(f(n)\textrm{polylog}(f(n))), that is O(f(n)) _up to polylogarithms of f(n)_ (see e.g. [Wikipedia](https://en.wikipedia.org/wiki/Big_O_notation#Extensions_to_the_Bachmann%E2%80%93Landau_notations)), while here it is used as if it meant _up to polylogarithms of n_.

---

<div class="post-metadata">

### Author: ![Syx\_Pek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/syx_pek/32/6364_2.png) [@Syx\_Pek](https://discourse.julialang.org/u/Syx_Pek)
#### Post date: [May 30, 2020, 12:27pm UTC](https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464/2 "2020-05-30T12:27:10Z")

</div>

I do think it should say O(\text{polylog}(n)) or \cup\_{\epsilon \> 0} O(n^\epsilon) to be clearer, and to be honest this is the first time seeing the soft O notation, so I am not as certain if it is commonly used.

---

<div class="post-metadata">

### Author: ![natema](https://avatars.discourse-cdn.com/v4/letter/n/ba9def/32.png) [@natema](https://discourse.julialang.org/u/natema)
#### Post date: [May 30, 2020, 1:22pm UTC](https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464/3 "2020-05-30T13:22:07Z")

</div>

I guess you mean \cap\_{\epsilon\>0} O(n^\epsilon), which I would call _sub-polynomial_, where with _polynomial_ I refer to any function of the form n^c with c\>0 (the latter terminology is customary in theoretical computer science, AFAIK). However, I think that here `nearly-constant` means _at most polylogarithmic_.

Perhaps I should open a pull request where I propose to remove the `Õ(1)`, and avoid proposing to substitute it with something else.

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [May 31, 2020, 2:23am UTC](https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464/4 "2020-05-31T02:23:50Z")

</div>

> [@natema](#):
>
> I’m new to the community and I’m unsure whether I should directly open an issue on GitHub, and/or create a pull request.

I don’t know that there’s a true standard across the community, but my general impression is that issues are fine, but if there’s an obvious and concrete fix, and you’re willing to make the PR, just go for it. If there’s a CONTRIBUTING.md, read that first, just in case.

The only time I’d say it might be better to lead with an issue is if the fix will take a lot of effort, and you’re not sure that the fix is actually desired by the package maintainers.

---

<div class="post-metadata">

### Author: ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)
#### Post date: [May 31, 2020, 2:59am UTC](https://discourse.julialang.org/t/wrong-use-of-asymptotic-notation-in-the-multi-dimensional-arrays-page/40464/5 "2020-05-31T02:59:48Z")

</div>

> [@Syx\_Pek](#):
>
> I do think it should say O(polylog(n))O(\text{polylog}(n))

compare Polylogarithm function:

> **[Polylogarithm](https://en.wikipedia.org/wiki/Polylogarithm)**
>
> In mathematics, the polylogarithm (also known as Jonquière's function, for Alfred Jonquière) is a special function Lis(z) of order s and argument z. Only for special values of s does the polylogarithm reduce to an elementary function such as the natural logarithm or a rational function. In quantum statistics, the polylogarithm function appears as the closed form of integrals of the Fermi–Dirac distribution and the Bose–Einstein distribution, and is also known as the Fermi–Dirac integral or the ...

with polynomial in the logarithm:

> **[Polylogarithmic function](https://en.wikipedia.org/wiki/Polylogarithmic_function)**
>
> In mathematics, a polylogarithmic function in n is a polynomial in the logarithm of n,
> The notation logkn is often used as a shorthand for (log n)k, analogous to sin2θ for (sin θ)2.
> In computer science, polylogarithmic functions occur as the order of time or memory used by some algorithms (e.g., "it has polylogarithmic order"), such as in the definition of QPTAS (see PTAS).
> All polylogarithmic functions of n are o(nε) for every exponent ε \> 0 (for the meaning of this symbol, see small o notati...

it would be good if you’re changing the docs not to make that confusion.
