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.

Reply via email to