#16664: Add a finite field implementation using FLINT's fq and fq_nmod modules
-------------------------------------+-------------------------------------
       Reporter:  jpflori            |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.4
      Component:  finite rings       |   Resolution:
       Keywords:  flint finite       |    Merged in:
  field                              |    Reviewers:
        Authors:  Jean-Pierre Flori  |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  9587ba65d705fd9480d380908e31ba000565d676
  u/jpflori/flint_fq_nmod            |     Stopgaps:
   Dependencies:  #15015, #17470     |
-------------------------------------+-------------------------------------

Comment (by vdelecroix):

 Hello,

 In `_element_constructor_` the following case should not happen
 {{{
 if isinstance(x, self.element_class) and x.parent() is self:
 }}}
 as if `parent(x)` is `self` then this is catched by the `__call__` of
 `Parent`. See line 1080-1083 of `parent.pyx`
 {{{
         cdef R = parent_c(x)
         cdef bint no_extra_args = len(args) == 0 and len(kwds) == 0
         if R is self and no_extra_args:
             return x
 }}}

 Instead of making `__nonzero__` relies on `is_unit` I would rather
 implement `__nonzero__` and call it in bot `is_unit` and `is_zero`. BTW
 for the latter this is what is in `Element.is_zero` by default, so you can
 even remove it. The reason why is that there is a special slot for
 `__nonzero__` in Python objects. So the fastest (Python) way to do things
 should be
 {{{
 if not my_element:
     XYZ
 }}}
 and not
 {{{
 if my_element.is_zero():
     XYZ
 }}}

 What are the status of the flint patches? Are there incorporated in
 flint-2.5? If that is so, it would make sense to first include it into
 Sage.

 Vincent

--
Ticket URL: <http://trac.sagemath.org/ticket/16664#comment:66>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to