OK, fair enough. I first thought that some functionality was no longer available, but your point is that it is hidden. I think that there has been a move to have fewer things in the global namespace.
We can open a ticket just to add to the documentation, perhaps. John On Tue, 20 Sept 2022 at 11:20, David Loeffler <[email protected]> wrote: > > Hi John, > > My point is that once the deprecated top-level function is removed, > non-expert users wanting to compute these dimensions are unlikely to spot > that they can import extra stuff from "sage.modular.dims"; they're much more > likely to end up using CuspForms(...).dimension(), which is hugely slower > (and the docstring for that method does not say anything about the existence > of a faster alternative). > > (My email was prompted by a discussion on MathOverflow with a Sage newbie who > wanted to compute some modular form space dimensions.) > > David > > On Tue, 20 Sept 2022 at 11:21, John Cremona <[email protected]> wrote: >> >> In 9.6 and 9.7.rc1, I follow the suggestions at ticket #32647 and all >> seems well: >> >> sage: from sage.modular.dims import dimension_cusp_forms >> sage: time dimension_cusp_forms(Gamma0(99), 100) >> CPU times: user 4 ms, sys: 0 ns, total: 4 ms >> Wall time: 5.19 ms >> 1184 >> >> -- in particular it is fast and I see no deprecation warning. David, >> you didn't say which Sage version you were running. >> >> John >> >> On Tue, 20 Sept 2022 at 09:07, David Loeffler <[email protected]> >> wrote: >> > >> > How should one go about *quickly* computing the dimension of a space of >> > cuspidal modular forms (of weight >= 2) in Sage, without actually >> > computing a basis of the space? >> > >> > The standalone method "dimension_cusp_forms" used to be really good for >> > this, and was a command I personally used very very frequently. However, >> > ticket #32647 slapped a deprecation warning on it. If this indeed gets >> > removed, then the simplest way of getting at this functionality is by >> > typing "CuspForms(...).dimension()". >> > >> > Unfortunately, this approach is vastly slower than the old standalone >> > function was, since it seems to be doing some kind of unnecessary >> > O(dimension) loop over the basis elements at initialisation time: >> > >> > sage: time dimension_cusp_forms(Gamma0(99), 100) # deprecated >> > >> > [ deprecation warning text ] >> > >> > CPU times: user 8 ms, sys: 0 ns, total: 8 ms >> > >> > Wall time: 8.94 ms >> > >> > 1184 >> > >> > >> > sage: time CuspForms(Gamma0(99), 100).dimension() >> > >> > CPU times: user 1.06 s, sys: 124 ms, total: 1.18 s >> > >> > Wall time: 1.18 s >> > >> > 1184 >> > >> > >> > Note the huge difference in timings: 9 milliseconds vs 1.2 seconds! So the >> > non-deprecated method is 130 times slower than the deprecated one, which >> > seems a bit problematic to me. >> > >> > IMHO, Sage has shot itself in the foot here, axing a fast and effective >> > command in one of its "core competences" (modular forms) because some >> > developer's notion of code aesthetics has been prioritised over >> > ease-of-use and functionality. I'd like to call for this change made in >> > #32647 to be reversed, and not reintroduced unless CuspForms.__init__() >> > has been re-engineered to make the new code path as quick as the old one >> > was. >> > >> > (This problem only affects cusp form spaces, not the full modular form >> > space; "ModularForms(...).dimension()" takes about the same time as >> > "dimension_modular_forms()", as it should. If you're crafty, you can work >> > around this by importing "dimension_cusp_forms" from sage.modular.dims, or >> > using the dimension_cusp_forms() method of the Gamma0 group class; but >> > these won't be easy to find for non-expert Sage users.) >> > >> > Regards, David >> > >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "sage-nt" group. >> > To unsubscribe from this group and stop receiving emails from it, send an >> > email to [email protected]. >> > To view this discussion on the web visit >> > https://groups.google.com/d/msgid/sage-nt/CANDN%3DhzJRoKzD09Rn8pfwhMXOnU5tgTeD1j1yhCcPAKeCxYziw%40mail.gmail.com. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-nt" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/sage-nt/CAD0p0K5KCo08r0bZz_YtWja3Sr%2BcuaRSprtBXGZF-UMahOEyEQ%40mail.gmail.com. > > -- > You received this message because you are subscribed to the Google Groups > "sage-nt" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-nt/CANDN%3DhyqUbg6w4ZZvtCq46KqbohaFnF2KDoMZYQpyvFFGEzP1A%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "sage-nt" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-nt/CAD0p0K4z2zKOeNGaJsfs-jD9zpCJQP4ggCm7hU8fk_f7802DNQ%40mail.gmail.com.
