Open jpflori opened 10 years ago
Branch pushed to git repo; I updated commit sha1. New commits:
72dbde0 | Merge remote-tracking branch 'trac/develop' into flint_fq_nmod |
fff00d4 | Cleanup/reorganization of FLINT imports |
07780b1 | Merge remote-tracking branch 'trac/u/jdemeyer/ticket/16428' into flint_fq_nmod |
ce22602 | Cleanup/reorganization of FLINT imports |
ef5c338 | Merge remote-tracking branch 'trac/u/jdemeyer/ticket/16428' into flint_fq_nmod |
Could you please explicitly list in "Dependencies" the tickets which are merged in this branch? I'm a bit lost in the git forest.
I don't really like the fact that element_flint_fq_nmod.pyx
and element_flint_fq.pyx
are almost identical. Wouldn't it make sense to implement a common base class for them or use templating techniques?
Also, be aware of #16983 and #16855 which could potentially conflict.
This is really work in progress, so it's not really ready for review.
I thought very hard of templating but it was too much work for the time I had.
Note that the pari_ffelt
class at least (and maybe the pari_mod
one) is also very similar, so the templating/common base class should surely cover a wider area.
I'll fill in the dependencies asap.
Replying to @jpflori:
This is really work in progress, so it's not really ready for review.
Sure, I just wanted to give some comments based on a first glance.
Replying to @jpflori:
Note that the
pari_ffelt
class at least (and maybe thepari_mod
one) is also very similar, so the templating/common base class should surely cover a wider area.
Perhaps. I noticed you moved some functions to element_base.pyx
in your branch, could that be made into a separate ticket?
Ok, I'll try to do that (because I do agree it would be the good way to go and feel guilty about my dirty commits). There are also some other things related to the PARI FF implem that I'll try to move out of this ticket.
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
1607b8f | Merge remote-tracking branch 'origin/develop' into ticket/15015 |
7725122 | Cosmetic changes |
6957f17 | Merge remote-tracking branch 'origin/develop' into ticket/15015 |
aca71cb | Upgrade to mpir-2.7.0-alpha12 |
67babeb | Fix doctests due to changed xgcd results |
8c7fbbd | Re-enable "not tested" test from #4357 |
08fdc35 | Merge remote-tracking branch 'trac/u/jdemeyer/ticket/15015' into mpir |
2cd2132 | Merge branch 'flint_pxd' into flint_fq_nmod |
ab4e114 | Use flint long types. |
3fb1b2c | Avoid conversion from long to integer when building flint ff element. |
Changed dependencies from #15767 to #15767, #17165
Groumpf, I accidently merged #17148 and #15015 into this one... Not really a problem as we'll probably have to wait for a proper FLINT 2.5 for this one, and that should come after the actual MPIR 2.7.0 release.
Branch pushed to git repo; I updated commit sha1. New commits:
6365775 | Use FLINT long types for FF classes. |
Changed dependencies from #15767, #17165 to ???
Changed dependencies from ??? to #15015, #17470 ???
Changed dependencies from #15015, #17470 ??? to #15015, #17470
I guess the dependencies are correct now.
Apart from bug fixing and heavy testing, the real question is whether I should try to make some code factoring/templating now.
Branch pushed to git repo; I updated commit sha1. New commits:
08d4719 | Merge branch 'ticket/17165' into flint_fq_nmod |
dcec4b9 | Merge branch 'ticket/17165' into flint_fq_nmod |
44b6b40 | Merge remote-tracking branch 'trac/develop' into flint_fq_nmod |
7651317 | Merge remote-tracking branch 'trac/u/jpflori/flint_fq_nmod' into flint_fq_nmod |
Like I said before, I still don't like that the fq
files are almost identical to the fq_nmod
files.
And instead of writing comments like
# JPF: the following should definitely go into element_base.pyx.
just do it (on a different ticket please, same for def rational_reconstruction
Branch pushed to git repo; I updated commit sha1. New commits:
2ef5f6b | Remove rational reconstruction code from FF base class. |
Work Issues: rebasing
Branch pushed to git repo; I updated commit sha1. New commits:
a6d7614 | Fix `_cmp_` and cdefs.pxi for flint FF implem. |
Changed work issues from rebasing to none
Branch pushed to git repo; I updated commit sha1. New commits:
83e7194 | Merge branch 'develop' into flint_fq_nmod |
@jdemeyer: where would you put the distutils magic to simplify linking with flint?
In only one pxd file in src/sage/libs/flint
which is included by all other ones?
Or in each of them?
Replying to @jpflori:
@jdemeyer: where would you put the distutils magic to simplify linking with flint? In only one pxd file in
src/sage/libs/flint
which is included by all other ones? Or in each of them?
First of all, I would prefer to move all changes to libs/flint
to a different ticket.
If you want distutils
magic, I would put it in every .pxd
file which defines library functions (in practice, this is probably all of them except types.pxd
).
Note #18837 which makes FLINT-related changes to module_list.py
. The new ticket should probably depend on #18837.
Another small comment: you can replace
ctypedef struct X:
pass
by
ctypedef struct X
Branch pushed to git repo; I updated commit sha1. New commits:
d597b9a | Merge remote-tracking branch 'trac/develop' into flint_fq_nmod |
4b08519 | Metaclass for inheriting comparison functions |
ac96e64 | Merge branch 'develop' into t/18329/ticket/18329 |
0e0301a | Fix documentation |
f6058e7 | Use sage_getfile instead of inspect.getfile |
54ff301 | Merge remote-tracking branch 'trac/u/jdemeyer/ticket/18329' into flint_fq_nmod |
f5e05a4 | Remove comparison boilerplate. |
Replying to @jdemeyer:
Replying to @jpflori:
@jdemeyer: where would you put the distutils magic to simplify linking with flint? In only one pxd file in
src/sage/libs/flint
which is included by all other ones? Or in each of them?First of all, I would prefer to move all changes to
libs/flint
to a different ticket.
I only add new files needed by this ticket, I'm not sure it would make sense to add these files in another ticket.
Ok, there is also a slight modification to types.h
.
Replying to @jdemeyer:
Another small comment: you can replace
ctypedef struct X: pass
by
ctypedef struct X
Noted.
Note though that the other types in types.h
use the syntax with pass
.
So I'm not sure if we should not modify all of them at once later.
Branch pushed to git repo; I updated commit sha1. New commits:
9587ba6 | Merge remote-tracking branch 'trac/develop' into flint_fq_nmod |
Implement finite fields using flint fq and fq_nmod types.
Depends on #19646
CC: @defeo @pjbruin @sagetrac-erousseau
Component: finite rings
Keywords: flint finite field
Author: Jean-Pierre Flori
Branch/Commit: u/jpflori/flint_fq_nmod @
9587ba6
Issue created by migration from https://trac.sagemath.org/ticket/16664