On Mon, Sep 12, 2022 at 11:24 AM davida...@gmail.com <davidayott...@gmail.com> wrote: > > > Why don't we create a B+ and a B-? > > This was one of the idea of the ticket > https://trac.sagemath.org/ticket/34521. A new option to the bernoulli > function was added ("plus=False"), giving the option to the user to choose > their prefered value. However, I think that the ticket was set to invalid and > closed prematurely without any possibility for a meaningful discussion. I > think that the debate here would be: what is the default value of this new > option. There is two choices: > > "plus=False": bernoulli(1) = -1/2, nothing changes. > "plus=True": bernoulli(1) = +1/2 (new value). Deprecation needs to be > implemented. > > The choice two was chosen in ticket #34521. If two is chosen, I believe that, > as mentioned by William, there should be a 1-year deprecation period before > the change actually takes place. However, if the community prefer (1), I > believe this can be done also (discussion is useful). In any case, I think > that something should be done about this, because FLINT has been changed to > return +1/2 (and FLINT is the default for small Bernoulli numbers) >
My vote is for (1) for 2 reasons. (a) It makes it clear the SageMath community acknowledges there is no clear standard. (b) The ticket is relatively easy to implement since it won't break anything. Once implemented, debate on the default behavior can be moved to a new ticket, if desired. > David A. > > Le lundi 12 septembre 2022 à 10:51:15 UTC-4, David Joyner a écrit : >> >> On Mon, Sep 12, 2022 at 9:49 AM Dima Pasechnik <dim...@gmail.com> wrote: >> > >> > On Mon, Sep 12, 2022 at 2:21 PM Jeremy Tan <redde...@gmail.com> wrote: >> > > >> > > Perhaps I need your help, William. The associated trac ticket >> > > https://trac.sagemath.org/ticket/34521 was marked invalid offhand by the >> > > release manager Frédéric Chapoton despite me managing to fix all the >> > > doctests simply and the ticket itself not conflicting with any Sage >> > > policies. >> > > >> > > He claims that "Mr Luschny has not published any mathematical article" – >> > > but his manifesto is indistinguishable from an article in letter from >> > > (it is a reply to Donald Knuth) and his introduction to the Bernoulli >> > > function is even more of an article. I believe I have responded in kind >> > > to his claim that B_1 = -½ is "standard". >> > > >> > > There must be a way to get Chapoton out of the way here so we can effect >> > > the deprecation. >> > >> >> I'm probably too late on this, but I'd like to suggest a sort of compromise: >> >> According to wikipedia, there is no standard. There's a B+ (favored by >> NIST and "modern authors") and a B- (favored by Donald Knuth some others). >> Why don't we create a B+ and a B-? This will make the OP happy. >> To make William Stein happy (or happiest), we (temporarily?) set B=B+, so >> he doesn't have to change any code. >> >> >> > Frederic has not been helpful here, unfortunately - sorry, Jeremy. >> > I've made a comment to this effect on the ticket. People communicated >> > here on the topic, it was deemed to have a merit, and closing tickets >> > like this is just putting people off. >> > >> > Dima >> > >> > > >> > > On Sunday, 11 September 2022 at 01:49:48 UTC+8 wst...@gmail.com wrote: >> > >> >> > >> On Sat, Sep 10, 2022 at 10:04 AM davida...@gmail.com >> > >> <davida...@gmail.com> wrote: >> > >> > >> > >> > > I'm curious if the change breaks any code anywhere else in Sage >> > >> > > (e.g., maybe for computing q-expansions of modular forms?)... >> > >> > >> > >> > You guessed right. I did a quick local change to the bernoulli >> > >> > function and it indeed breaks some tests in sage/modular/modform: >> > >> >> > >> I created all of the files listed below. My guess is that code for >> > >> computing q-expansions of Eisenstein series assume B(1) is what it is, >> > >> and one would just need to change that code by changing a sign >> > >> somewhere. >> > >> >> > >> William >> > >> >> > >> > >> > >> > ~/sage$ ./sage -t src/sage/modular/modform >> > >> > sage -t --random-seed=279226112023210448433794639443228726052 >> > >> > src/sage/modular/modform/ambient.py # 1 doctest failed >> > >> > sage -t --random-seed=279226112023210448433794639443228726052 >> > >> > src/sage/modular/modform/element.py # 11 doctests failed >> > >> > sage -t --random-seed=279226112023210448433794639443228726052 >> > >> > src/sage/modular/modform/ambient_g1.py # 1 doctest failed >> > >> > sage -t --random-seed=279226112023210448433794639443228726052 >> > >> > src/sage/modular/modform/eisenstein_submodule.py # 4 doctests failed >> > >> > sage -t --random-seed=279226112023210448433794639443228726052 >> > >> > src/sage/modular/modform/ring.py # 3 doctests failed >> > >> > sage -t --random-seed=279226112023210448433794639443228726052 >> > >> > src/sage/modular/modform/constructor.py # 1 doctest failed >> > >> > >> > >> > >> > >> > However, I would be in favor for this change. I would also be glad to >> > >> > lend a hand for fixing those doctests. >> > >> > Le samedi 10 septembre 2022 à 12:50:44 UTC-4, wst...@gmail.com a >> > >> > écrit : >> > >> >> >> > >> >> On Sat, Sep 10, 2022 at 7:17 AM Jeremy Tan <redde...@gmail.com> >> > >> >> wrote: >> > >> >> > >> > >> >> > My name is Jeremy Tan, or Parcly Taxel in the furry/MLP art scene. >> > >> >> > As of this post I am a recent graduate from the National >> > >> >> > University of Singapore with two degrees in maths and computer >> > >> >> > science. >> > >> >> > >> > >> >> > Over the past month I had a good read of Peter Luschny's Bernoulli >> > >> >> > Manifesto >> > >> >> > (http://luschny.de/math/zeta/The-Bernoulli-Manifesto.html) and was >> > >> >> > thoroughly convinced that B_1 (the first Bernoulli number) has to >> > >> >> > be +½, not -½. (Much of Luschny's argument centres on being able >> > >> >> > to (1) interpolate the Bernoulli numbers when B_1 = +½ with an >> > >> >> > entire function intimately related to the zeta function, and (2) >> > >> >> > extend the range of validity of or simplify several important >> > >> >> > equations like the Euler–Maclaurin formula. Have a read yourself >> > >> >> > though – it is close to divine truth.) >> > >> >> > >> > >> >> > So I went to SymPy – one of SageMath's dependencies, and where a >> > >> >> > discussion on this topic was open >> > >> >> > (https://github.com/sympy/sympy/issues/23866) – and successfully >> > >> >> > merged several PRs there >> > >> >> > (https://github.com/sympy/sympy/pull/23926) implementing both that >> > >> >> > change and some functions in Luschny's "An introduction to the >> > >> >> > Bernoulli function" (https://arxiv.org/abs/2009.06743). >> > >> >> > >> > >> >> > I thought I was also done with changing B_1 = +½ for SageMath, but >> > >> >> > then someone pointed out that the latter currently uses other >> > >> >> > libraries that all have B_1 = -½. I have already opened a PR for >> > >> >> > one such library, FLINT, to change B_1 = +½ there >> > >> >> > (https://github.com/wbhart/flint2/pull/1179). However Fredrik >> > >> >> > Johansson has advised me that I take the discussion right here, to >> > >> >> > sage-devel, because (in his words) >> > >> >> > >> > >> >> > > if FLINT and Arb change their definitions but the Sage >> > >> >> > > developers decide that they don't like it, they will just treat >> > >> >> > > the new behavior as a bug and add a special case in the wrapper >> > >> >> > > to return B_1 = -½. >> > >> >> > >> > >> >> > So my proposal is to special-case it the other way – before the >> > >> >> > backend selection in Sage's Bernoulli code >> > >> >> > (https://github.com/sagemath/sage/blob/08202bc1ba7caea46327908db8e3715d1adf6f9a/src/sage/arith/misc.py#L349), >> > >> >> > add a check for argument 1 and immediately return +½ if that is >> > >> >> > the case. This also has the advantage of bypassing libraries that >> > >> >> > haven't or don't want to change. >> > >> >> > >> > >> >> > What do you think? >> > >> >> >> > >> >> It could be done via the "1 year deprecation policy". I.e., return >> > >> >> the >> > >> >> current value by default with a warning message >> > >> >> (and note about an option to change it) for the next year, then when >> > >> >> there is a release in late 2023 (?), the default would change. This >> > >> >> would give people time to update their code. >> > >> >> >> > >> >> I have no comment on the pros and cons of this personally, though I'm >> > >> >> curious if the change breaks any code anywhere else in Sage (e.g., >> > >> >> maybe for computing q-expansions of modular forms?)... >> > >> >> >> > >> >> > >> > >> >> > Jeremy Tan / Parcly Taxel >> > >> >> > >> > >> >> > -- >> > >> >> > You received this message because you are subscribed to the Google >> > >> >> > Groups "sage-devel" group. >> > >> >> > To unsubscribe from this group and stop receiving emails from it, >> > >> >> > send an email to sage-devel+...@googlegroups.com. >> > >> >> > To view this discussion on the web visit >> > >> >> > https://groups.google.com/d/msgid/sage-devel/CAGYgO94gF%3DBKo7gRnUj8c3H0bJyuLp_Apr%3D8Y9NC%2BFM%2BSZHNOg%40mail.gmail.com. >> > >> >> >> > >> >> >> > >> >> >> > >> >> -- >> > >> >> William (http://wstein.org) >> > >> > >> > >> > -- >> > >> > You received this message because you are subscribed to the Google >> > >> > Groups "sage-devel" group. >> > >> > To unsubscribe from this group and stop receiving emails from it, >> > >> > send an email to sage-devel+...@googlegroups.com. >> > >> > To view this discussion on the web visit >> > >> > https://groups.google.com/d/msgid/sage-devel/da3c85ec-1442-4c60-a714-fba2f14f908bn%40googlegroups.com. >> > >> >> > >> >> > >> >> > >> -- >> > >> William (http://wstein.org) >> > > >> > > -- >> > > You received this message because you are subscribed to the Google >> > > Groups "sage-devel" group. >> > > To unsubscribe from this group and stop receiving emails from it, send >> > > an email to sage-devel+...@googlegroups.com. >> > > To view this discussion on the web visit >> > > https://groups.google.com/d/msgid/sage-devel/3fe77fe4-266e-4650-ae15-cc0f436b1b28n%40googlegroups.com. >> > >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "sage-devel" group. >> > To unsubscribe from this group and stop receiving emails from it, send an >> > email to sage-devel+...@googlegroups.com. >> > To view this discussion on the web visit >> > https://groups.google.com/d/msgid/sage-devel/CAAWYfq2CbfNa8d_sw9BaWPH_-vFEERq7Mqy5vSqoFnpryBv_-A%40mail.gmail.com. > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-devel/3b526211-160d-4135-9c53-0c2bc33c7990n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAEQuuAXZFSf2DADrzFLRkknYafttLphKVmyFP4QmzJniNjJ4tQ%40mail.gmail.com.