On Sunday, 26 March 2023 at 05:54:09 UTC-7 kenta kobayashi wrote:

Question 1: 
Would it be appropriate to push these functions as a ‘Geometry and 
Topology’ library in Sage?
 
Nowadays, for brand new code that isn't obviously extending or improving 
already existing capabilities in sage, it's probably a good idea to start 
with packaging the code into a stand-alone repository. It's your choice how 
nicely packaged you want to make it: you can just make it a directory that 
people can download and then link into sage (at their barest, python 
modules really just consist of a directory with python files), or you can 
wrap it up in a pip-installable package on github and/or publish it on pypi.
(see for instance https://github.com/nbruin/RiemannTheta for an 
"intermediately polished" example)

It has the advantage that the code is available immediately and that for 
the first while you can respond very quickly to bugs and issues that arise 
(so SageMath development cycle or review to contend with!). It also allows 
for a period to gauge how people actually use the code, which can be quite 
different from what you envisaged.

Once the usage has stabilized a bit, it's worth pushing for inclusion into 
the sagemath library itself, so that your code is kept up-to-date with 
other changes in the library (over longer time spans this becomes 
important). At that point you can archive the original repo with a pointer 
to the relevant code in sagemath.

This process also has the advantage that there is a specific place for you 
to point at to show what you've accomplished (for job and grant 
applications).
 

Question 2: 
I cannot find  any SageMath polynomial library that supports polynomials of 
rational degrees. 
However, elliptic genera are Laurent polynomial series of rational degrees. 
What is the most appropriate representation for this?


LaurentPolynomialRing (for finite series) and LaurentSeriesRing
 

Question 3: 
In my code, I have redefined the zeta function only for negative integers 
due to computation time. 
Is it acceptable to use such ad-hoc coding, or should I use the zeta 
function of the SageMath library in the code to be published?


You could look if this redefinition is already available somewhere in sage 
and then you can import it from there. In general, you should probably use 
whatever feature is already available that significantly fills your need, 
to avoid duplication of effort and also because your (first) version would 
probably not handle edge cases and variations of inputs as gracefully as 
more mature code does.

Your redefinition obviously needs to stay confined to your own modules and 
then for maintainability it should probably be named "modified_zeta" to 
match (so that other people reading your code understand it's not the usual 
zeta function).

-- 
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/3f0b0133-77ab-4c26-bf4c-556d273d6035n%40googlegroups.com.

Reply via email to