#9337: Add toric divisors
----------------------------------+-----------------------------------------
Reporter: vbraun | Owner: AlexGhitza
Type: enhancement | Status: needs_info
Priority: major | Milestone: sage-4.6
Component: algebraic geometry | Keywords:
Author: Volker Braun | Upstream: N/A
Reviewer: Andrey Novoseltsev | Merged:
Work_issues: |
----------------------------------+-----------------------------------------
Changes (by novoselt):
* status: needs_review => needs_info
Comment:
Replying to [comment:18 vbraun]:
> About the `divisor_group_*` methods, I agree with your argument but I
also hate to give the longer name to the most useful method. And I don't
want to introduce a unified parent for divisors, the current inheritance
tree fits OOP as well as mathematics nicely. So I propose the following,
we'll have only one `divisor_group` method
{{{
def divisor_group(divisors='T-Weil', base_ring=ZZ):
}}}
That'll easily generalize to any other notion of divisor that one might
want to introduce and, by default, returns the most useful case for toric
varieties.
One solution to long names is to introduce aliases in the spirit of recent
cohomology patches. That is direct reflection of mathematical conventions
where you can name a thing either "in words" or using some special
combination of symbols.
In principle, I am OK with passing divisor type as an argument, but this
way makes it impossible to use TAB-completion and involves actually more
typing. So we can keep it if you want, but I'd rather not.
My main objection however, is that "divisor group" is still used to refer
to "'''toric''' divisor group" and these are mathematically different. So
if we do keep only `divisor_group` method, the default behaviour should be
returning the group of general divisors. This is probably inconvenient,
but I am definitely not OK with the current default.
Returning to my first point, how about the following names (all take one
optional parameter `base_ring`):
* `X.divisor_group()` -- returns the general group of Weil divisors on
`X`;
* `X.Div()` -- the same, done by `Div = divisor_group` in the class
definition;
* `X.toric_divisor_group()` -- returns the group of T-Weil divisors,
which is the one providing actual toric functionality;
* `X.TDiv()` -- the same, done by `TDiv = toric_divisor_group`.
(I would be even happy with the short names only, but since
`divisor_group` is already used in Sage in other classes, I think that we
better have two sets here.)
Fulton uses `Div_T(X)` for T-Cartier divisors, but in Hartshorne `Div(X)`
stands for Weil divisors. He has no notation for Cartier ones, as far as I
can tell, but `CaCl(X)` stands for the class group of Cartier divisors. I
like Hartshorne's naming scheme better - when I think about a "divisor", I
think about a Weil divisor and they are definitely more natural and easy
to handle objects in toric world. So I propose names as above with `CaDiv`
and `TCaDiv` reserved for possible future methods (with appropriate long
versions).
Let me know what you think!
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9337#comment:20>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.