#14832: Unified construction of irreducible polynomials over finite fields
--------------------------------+-------------------------------------------
       Reporter:  pbruin        |         Owner:  cpernet                       
        
           Type:  enhancement   |        Status:  needs_work                    
        
       Priority:  major         |     Milestone:  sage-5.12                     
        
      Component:  finite rings  |    Resolution:                                
        
       Keywords:  polynomials   |   Work issues:  double colons, check for 
finite fields
Report Upstream:  N/A           |     Reviewers:  Jean-Pierre Flori             
        
        Authors:  Peter Bruin   |     Merged in:                                
        
   Dependencies:  #14817        |      Stopgaps:                                
        
--------------------------------+-------------------------------------------

Comment (by pbruin):

 Replying to [comment:5 jpflori]:
 > Is there any reason for removing the implementation arg to the PR_field
 constructor?
 > I agree it's not used, but maybe at some point :)
 >
 > And why not test in the PR_field constructor if the field is finite and
 call the new constructor in that case?

 I think it is better to be conservative with the `implementation`
 parameter: allow it for the generic `PolynomialRing` constructor and pass
 it to subclasses that actually have different implementations, but do not
 add (or keep) the flag in subclasses where it does not do anything.

 > By the way, I'm not sure using is_FiniteField is the right way to check
 for finite fields.
 > Using the category framework and doing something like "R in
 FiniteFields()" is surely better unless you really rely on implementation
 details of the FiniteField class and subclasses.

 I did not introduce this way of checking for finite fields; I just moved
 it to a more specific `__init__` method.  Having said that, I wouldn't
 agree that using the category framework here is a good thing.

 First, a finite field might be in different categories (e.g.
 `FiniteFields` or the future category of subfields of an algebraic closure
 of '''F''',,''p'',, that we were discussing at #8335); probably the
 polynomial ring constructor shouldn't have to care about that.

 Second, one reason to have different implementations of `PolynomialRing`
 ''is'' so that we can take advantage of implementation details of
 (subclasses of) `FiniteField`.  There already is an implementation for
 polynomials over NTL finite fields; similarly, for PARI finite fields it
 would be desirable to have an implementation for polynomials over those
 fields.  (I have some code that is much slower than necessary because it
 uses PARI finite field elements but NTL polynomials over the same finite
 fields.)

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14832#comment:8>
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/groups/opt_out.


Reply via email to