Opened 7 months ago

Last modified 5 days ago

#22982 needs_review enhancement

Global function fields

Reported by: klee Owned by: klee
Priority: major Milestone: sage-8.2
Component: algebra Keywords: global function field, algebraic geometry code
Cc: jsrn, danielaugot Merged in:
Authors: Kwankyu Lee Reviewers:
Report Upstream: N/A Work issues:
Branch: u/klee/22982 (Commits) Commit: c64bd0fdba125b2bf165ced247ce706af14b7609
Dependencies: #24170,#24195 Stopgaps:

Description (last modified by klee)

Function fields part of Sage has long been neglected and has little significant functionality besides basic arithmetic and frameworks. This ticket improves the situation by two tasks:

  1. Add global function fields (with complete functionality for the theory of AG codes)
  1. Clean existing code (mostly revising docstrings)

Some notes:

  • A pdf for a short introduction to global function fields in Sage is attached.
  • A branch merged with the latest release of Sage is available at u/klee/22982_stable.

The author was supported by Chosun University 2016 and by National Research Foundation of Korea 2017.

Attachments (1)

urv60minutes.pdf (335.7 KB) - added by klee 6 months ago.
A short introduction to global function fields in Sage

Download all attachments as: .zip

Change History (46)

comment:1 Changed 7 months ago by klee

  • Branch set to u/klee/22982

comment:2 Changed 7 months ago by git

  • Commit set to 269da475d09e3fe53987084de2a22c662097b464

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

4bb538eImprove docstrings
2847da0Trim code and docstrings
939fda6Refine docstrings
2ee70bdMerge branch 'derivations_trac16561'
a910bfaImprove docstrings
931c72cMerge branch 'develop'
665f508Add new features and revise docstrings
b1d1efdMerge branch 'develop'
4b5d8aaRaise doctest coverage by adding lots of them
269da47Add more maps

comment:3 Changed 7 months ago by klee

  • Description modified (diff)

comment:4 Changed 7 months ago by git

  • Commit changed from 269da475d09e3fe53987084de2a22c662097b464 to 6fa87ce3b5a5f9e0cd1e57a868f3b16a0e9eaf5e

Branch pushed to git repo; I updated commit sha1. New commits:

6fa87ceRemove redundant a or an

comment:5 Changed 7 months ago by git

  • Commit changed from 6fa87ce3b5a5f9e0cd1e57a868f3b16a0e9eaf5e to 7ef1becb310eddffae5d26b95d1a9032f0df203f

Branch pushed to git repo; I updated commit sha1. New commits:

1a0414cMerge branch 'develop'
da7cb4dImprove _test_derivative test
7ef1becMerge branch 'trac16561'

comment:6 Changed 7 months ago by klee

  • Description modified (diff)

comment:7 Changed 7 months ago by klee

  • Description modified (diff)

comment:8 Changed 7 months ago by klee

  • Description modified (diff)

comment:9 Changed 7 months ago by klee

  • Description modified (diff)

comment:10 Changed 7 months ago by klee

  • Dependencies set to #22841
  • Owner changed from (none) to klee

comment:11 Changed 7 months ago by git

  • Commit changed from 7ef1becb310eddffae5d26b95d1a9032f0df203f to 1034aacce3f14206dc0668cc6e85ce4da9e0989a

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

b292fb2Use reverse_rows_and_columns
df8ce31Fixes in docstrings and code
0e57cc1Improve docstrings
ad9a8c4Fix a bug in include_zero_rows
1894770Relocate _hermite_form_euclidean
bf6b339Fix a bug; add an example for ZZ
464f6deFix a docstring failure
734c862Merge branch 'develop' into hermite_trac22841
268f049Compute U also by low level operations
1034aacMerge branch 'hermite_trac22841' into function_fields_trac22982

comment:12 Changed 7 months ago by git

  • Commit changed from 1034aacce3f14206dc0668cc6e85ce4da9e0989a to a5ceb84d852397d8430a22049368e1885e65f90b

Branch pushed to git repo; I updated commit sha1. New commits:

a5ceb84Merge branch 'develop' into function_fields_trac22982

comment:13 Changed 6 months ago by klee

  • Keywords global function field algebraic geometry code added

comment:14 Changed 6 months ago by git

  • Commit changed from a5ceb84d852397d8430a22049368e1885e65f90b to ae89ab2d89986c3496871992f188851e4caa78a0

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

4cd0abcMerge branch 'develop' into hermite_trac22841
a96c3beRemove reversed hermite form methods
f1c8202Set hermite form immutable consistently
9c8408fMore static typing and setting immutable
3d7fd03Fix EXAMPLE to EXAMPLES
ff0b73eImprove normalization
bc890deMerge branch 'hermite_trac22841' into function_fields_trac22982
1b4881bFix reverse hermite form code
e59bd0dMerge branch 'develop' into function_fields_trac22982
ae89ab2Fix richcmp deprecation warnings

comment:15 Changed 6 months ago by klee

  • Dependencies #22841 deleted
  • Description modified (diff)

comment:16 Changed 6 months ago by git

  • Commit changed from ae89ab2d89986c3496871992f188851e4caa78a0 to 8143ac6857cbd161575d08422e7be6b8f36a6deb

Branch pushed to git repo; I updated commit sha1. New commits:

d893d55Merge branch 'develop' into function_fields_trac22982
d12fd77Merge branch 'develop' into hermite_trac22841
dd0d065Add an example using normalization argument
7933860Merge branch 'develop' into hermite_trac22841
032ee67Merge branch 'hermite_trac22841' into function_fields_trac22982
8143ac6Fix a doctest failure

comment:17 Changed 6 months ago by git

  • Commit changed from 8143ac6857cbd161575d08422e7be6b8f36a6deb to 40af34a8bff9cb0d42cf0d008b5c71f2181c35d2

Branch pushed to git repo; I updated commit sha1. New commits:

40af34aFix a doctest that takes too long

comment:18 Changed 6 months ago by git

  • Commit changed from 40af34a8bff9cb0d42cf0d008b5c71f2181c35d2 to 5ae6dc4634455d0c1bc05c81f0e3f278e9154732

Branch pushed to git repo; I updated commit sha1. New commits:

7c1505dRemove __nonzero__ for compatibility with python3
5ae6dc4Fix blocks

Changed 6 months ago by klee

A short introduction to global function fields in Sage

comment:19 Changed 6 months ago by klee

  • Description modified (diff)

comment:20 Changed 6 months ago by klee

  • Description modified (diff)

comment:21 follow-up: Changed 6 months ago by saraedum

It's great to see progress in the function field code. What are your plans for this branch? Are you in contact with the people who were working on divisors recently at Sage Days 86.5?

comment:22 Changed 6 months ago by git

  • Commit changed from 5ae6dc4634455d0c1bc05c81f0e3f278e9154732 to 27b68b2c5f7c3ee74c7bbe707fe80e69a47c9a54

Branch pushed to git repo; I updated commit sha1. New commits:

27b68b2Fix an EXAMPLE block

comment:23 in reply to: ↑ 21 Changed 6 months ago by klee

Replying to saraedum:

What are your plans for this branch?

The branch is essentially a patch bomb, and is not suitable for a regular review yet. But I see no way to split the code as it consists of several parts dependent on one another. My plan is to have people to play with it for some time, and I do bug fixes and improve documentation until there appears someone who can review the whole code. I don't know how long this procedure would take. Though I want it to be merged to Sage as soon as possible from my heart :-)

I have done this task during my sabbatical year, which is going to end soon. After that, I will not have much time but to maintain the code just not to be bitrotting.

Are you in contact with the people who were working on divisors recently at Sage Days 86.5?

No. I won't have time to cooperate with other people.

I looked at their wiki page. It seems that his(?) task in "basic arithmetic in function fields" may overlap with what I did here. I implemented fractional ideals in the classical way using hermite normal form while he uses OM representation, about which I know nothing. Practically he may use my branch as a tool/base to experiment and build his system. It seems his approach is more suitable for global function fields defined by more complicated equations. Thus it could be the case that the classical approach and the OM representation approach complement each other.

comment:24 Changed 6 months ago by klee

  • Status changed from new to needs_info

comment:25 Changed 6 months ago by klee

  • Status changed from needs_info to needs_work

Some docstrings are not in good style.

comment:26 Changed 6 months ago by git

  • Commit changed from 27b68b2c5f7c3ee74c7bbe707fe80e69a47c9a54 to f0a1e0e3b3534b94ffe5c8338cf75e831d6dcba4

Branch pushed to git repo; I updated commit sha1. New commits:

f0a1e0eMerge branch 'develop' into function_fields_trac22982

comment:27 follow-up: Changed 6 months ago by jsrn

  • Cc jsrn danielaugot added

Great that you are working on this! This is something I also really want in Sage - I will try to play around with your implementation and provide feedback when I can.

comment:28 Changed 6 months ago by git

  • Commit changed from f0a1e0e3b3534b94ffe5c8338cf75e831d6dcba4 to fc92062e1d9e2b89ea1c2c32e04429b6d3804fd9

Branch pushed to git repo; I updated commit sha1. New commits:

7543316Format True, False, and None
fc92062Merge branch 'develop' into function_fields_trac22982

comment:29 Changed 5 months ago by klee

  • Description modified (diff)

comment:30 Changed 5 months ago by chapoton

There remains a call to cmp, not compatible with python3 (see patchbot report)

comment:31 in reply to: ↑ 27 ; follow-up: Changed 5 months ago by danielaugot

Replying to jsrn:

Great that you are working on this! This is something I also really want in Sage - I will try to play around with your implementation and provide feedback when I can.

Yes this is great ! Thank you for this. I will try this and tell the news to colleagues. If it is good, it should be integrated in Sage, even if reviewing the ticket takes time.

comment:32 Changed 5 months ago by git

  • Commit changed from fc92062e1d9e2b89ea1c2c32e04429b6d3804fd9 to f6ef7cb382288f6a92087e67f6b3ee04ff48ddc2

Branch pushed to git repo; I updated commit sha1. New commits:

7336f26Remove cmp from ideal.py
f6ef7cbMerge branch 'develop' into function_fields_trac22982

comment:33 in reply to: ↑ 31 Changed 5 months ago by klee

Replying to danielaugot:

If it is good, it should be integrated in Sage, even if reviewing the ticket takes time.

Compared with Magma, the biggest problem is speed. I worked hard to improve this, but I guess there is still wide room for improvement, though certainly there is a limit somewhere due to Python vs C.

comment:34 Changed 4 months ago by git

  • Commit changed from f6ef7cb382288f6a92087e67f6b3ee04ff48ddc2 to 4aae96066f53cb211078e3e61949a987359226e1

Branch pushed to git repo; I updated commit sha1. New commits:

4aae960Remove redundant code in ideal.py

comment:35 Changed 3 months ago by git

  • Commit changed from 4aae96066f53cb211078e3e61949a987359226e1 to f6f29d411d82a7f67cff2a4e5fb2ac1f7683268b

Branch pushed to git repo; I updated commit sha1. New commits:

f6f29d4Merge branch 'develop' into function_fields_trac22982

comment:36 Changed 3 months ago by git

  • Commit changed from f6f29d411d82a7f67cff2a4e5fb2ac1f7683268b to d6b906019a63bee1f71a27f06d93dcd3eaac18de

Branch pushed to git repo; I updated commit sha1. New commits:

d6b9060Merge branch 'develop' into function_fields_trac22982

comment:37 Changed 3 months ago by klee

  • Description modified (diff)

comment:38 Changed 2 months ago by git

  • Commit changed from d6b906019a63bee1f71a27f06d93dcd3eaac18de to 8b590ab47a9a6f6c10035f57d1db50c9964e13ee

Branch pushed to git repo; I updated commit sha1. New commits:

9bf1a41Merge branch 'function_fields_trac22982' into function_fields_trac22982_dev
7b7b31fMerge branch 'function_fields_trac22982'
8b590abResolve conflicts

comment:39 Changed 2 months ago by git

  • Commit changed from 8b590ab47a9a6f6c10035f57d1db50c9964e13ee to 18bd03cffbfcac9b9794791d026ee25a329d11f2

Branch pushed to git repo; I updated commit sha1. New commits:

18bd03cMerge branch 'function_fields_trac22982' into function_fields_trac22982_dev

comment:40 Changed 8 weeks ago by git

  • Commit changed from 18bd03cffbfcac9b9794791d026ee25a329d11f2 to 4e252a14a5d8736d929c0354018b4068ce4f1997

Branch pushed to git repo; I updated commit sha1. New commits:

4e252a1Merge branch 'function_fields_trac22982' into function_fields_trac22982_dev

comment:41 Changed 3 weeks ago by git

  • Commit changed from 4e252a14a5d8736d929c0354018b4068ce4f1997 to 1a4999c218ba863a43cd5e76a6e37b990e7eabad

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

036168224170: extend vector_space method of finite fields
2d3ec2c24170: implement _call_ instead of local functions
6024257Allow morphism as subfield and add inclusion_map
cef982dMerge branch 'finite_field_vector_space_trac24170' into function_fields_trac22982_dev
e9dcfebMerge develop
6e5577bUse vector_space
f468265Improve residue_field() methods
02b6c3eMerge develop
d205018Set C and Cinv immutable
1a4999cMerge trac24170

comment:42 Changed 3 weeks ago by klee

  • Dependencies set to #24170,#24195

comment:43 Changed 6 days ago by git

  • Commit changed from 1a4999c218ba863a43cd5e76a6e37b990e7eabad to 015a0becb01dcbe352ad511c8768c6bbbe44fa67

Branch pushed to git repo; I updated commit sha1. New commits:

557f689Merge develop
3bc8422Change hasse to higher
0159b20Add VectorSpace to FunctionFieldIsomorphism
015a0beChange Isomorphism morphism to Isomorphism

comment:44 Changed 6 days ago by klee

  • Milestone changed from sage-feature to sage-8.2
  • Status changed from needs_work to needs_review

comment:45 Changed 5 days ago by git

  • Commit changed from 015a0becb01dcbe352ad511c8768c6bbbe44fa67 to c64bd0fdba125b2bf165ced247ce706af14b7609

Branch pushed to git repo; I updated commit sha1. New commits:

c64bd0fFix Isomorphism morphism to Isomorphism
Note: See TracTickets for help on using tickets.