sagemath / sage

Main repository of SageMath. Now open for Issues and Pull Requests.
https://www.sagemath.org
Other
1.2k stars 413 forks source link

Add a finite field implementation using FLINT's fq and fq_nmod modules #16664

Open jpflori opened 9 years ago

jpflori commented 9 years ago

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

jpflori commented 9 years ago
comment:1

I've set up something at u/jpflori/flint_fq. Completely incomplete though.

jpflori commented 9 years ago

Commit: 1ba3dbf

jpflori commented 9 years ago

Branch: u/jpflori/flint_fq

jpflori commented 9 years ago

New commits:

1ba3dbfFirst draty implementation of finite fields using FLINT's fq module.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 1ba3dbf to fa877df

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

95106baUse fq_inv function.
b83f88cMerge remote-tracking branch 'trac/develop' into flint_fq
fa877dfThe fq_div function does not exist in FLINT 2.4 branch.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

ae3034cMake sure that the fq_ctx_t object is initialized when attempting to clean it.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from fa877df to ae3034c

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from ae3034c to c7990f8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

c7990f8Implement correct polynomial method for FiniteFieldElement_flint_fq.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from c7990f8 to e9bfa58

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

986a850Let build finite field using flint via the GF constructor.
008a4c3Homogenize the representation of fq_t element.
e9bfa58Fix most tests for now GF flint implem.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

4efb03aFix comparison for gf flint implem.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from e9bfa58 to 4efb03a

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 4efb03a to 96d5d9d

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

96d5d9dFix return value of type for gf flint implem.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 96d5d9d to 4b8c871

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

92306aeConversion from PARI gen to GF Flint type.
e5bdf4cUpgrade to PARI-2.7.1
ab6bdffMerge remote-tracking branch 'trac/u/jdemeyer/ticket/15767' into flint_fq
4b8c871Fix conversion from pari to Flint implem of GF.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

9e9d2efFix for pari conversion of flint implem of GF.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 4b8c871 to 9e9d2ef

jpflori commented 9 years ago

Dependencies: #15767

jpflori commented 9 years ago

Description changed:

--- 
+++ 
@@ -1 +1 @@
-
+Implement finite fields using flint fq type
jpflori commented 9 years ago
comment:12

Not thouroughly tested but it at least passes its testsuite.

Comments welcome.

jpflori commented 9 years ago
comment:13

I've also pushed another branch including an implem using the fq_nmod type at u/jpflori/flint_fq_nmod. Note that you'll need a FLINT version including my latest git commits from https://github.com/jpflori/flint2 At least now, FLINT seems to provide implementation faster than PARI for basic arithmetic over all ranges.

Doing the same thing for the fq_zech type should be as easy as for the fq_nmod type. But there is so much code duplication that it should definitely be templated (that should already be done for the fq and fq_nmod types alone). And not sure that the fq_zech type will be so useful as we have Givaro.

jpflori commented 9 years ago

Author: Jean-Pierre Flori

jpflori commented 9 years ago
comment:14

Still depends on git version of FLINT, my changes are now merged upstream.


New commits:

5d119abMerge remote-tracking branch 'trac/develop' into flint_fq
586fc84Add GF implem using fq_nmod FLINT type.
b202170Only use pxd files for FLINT includes.
jpflori commented 9 years ago

Changed branch from u/jpflori/flint_fq to u/jpflori/flint_fq_nmod

jpflori commented 9 years ago

Changed commit from 9e9d2ef to b202170

jpflori commented 9 years ago

Description changed:

--- 
+++ 
@@ -1 +1 @@
-Implement finite fields using flint fq type
+Implement finite fields using flint fq and fq_nmod types.
jpflori commented 9 years ago
comment:15

I'll do the templating stuff in a later tickets. It really needs more thoughts than what I already did here, especially if I want to convert some other implementations to it.

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

9bc2cafInitial fix for conversion from pari to flint for ff.
5eaa6bbMerge branch 'ticket/16664' into flint_fq
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from b202170 to 5eaa6bb

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 5eaa6bb to 80079e4

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

24138ebMove square root functions for finite fields to base class.
ced21cfUse correct name for variable in pari implem of ffs.
80079e4Fix conversion from flint to pari ffs elements.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 80079e4 to bc81680

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

eedb413Port fixes for flint_fq implem of ffs to flint_fq_nmod implem.
bc81680Faster square root for generic finite field implem.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from bc81680 to 0661730

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

0661730Produce different (and non-zero...) hashes for FLINT implems of FFs.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 0661730 to 16243d1

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

16243d1Fix comparison for FLINT implems of FFs.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 16243d1 to de8d00f

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

fe5bce1Give a little more info in pxd files about flint fq structure.
de8d00fMerge remote-tracking branch 'trac/develop' into flint_fq_nmod
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from de8d00f to b4fa9ea

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

b4fa9eaFix for FFs implem using flint fq_nmod module.
jdemeyer commented 9 years ago
comment:24

Needs to be merged.

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from b4fa9ea to dfef37b

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

dfef37bA little more info for fmpz_poly struct.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from dfef37b to ea72beb

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

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

ea72bebMerge remote-tracking branch 'trac/develop' into flint_fq_nmod
jpflori commented 9 years ago
comment:27

Should merge cleanly now.

Still needs a git version of FLINT though.