Detected SAGE64 flag
Building Sage on OS X in 64-bit mode
# HG changeset patch
# User Chris Hall <chall14@uwyo.edu>
# Date 1305045830 21600
# Node ID 60499ea563eb6eb589b1f6f4e0170cc5ca1ec9d0
# Parent  361a4ad7d52c69b64ae2e658ffd0820af0d87e93
Trac 10635: added hooks in roots() and factor() for field-provided routines

diff -r 361a4ad7d52c -r 60499ea563eb sage/rings/polynomial/polynomial_element.pyx
--- a/sage/rings/polynomial/polynomial_element.pyx	Fri Feb 25 18:56:01 2011 +0000
+++ b/sage/rings/polynomial/polynomial_element.pyx	Tue May 10 10:43:50 2011 -0600
@@ -2742,6 +2742,9 @@
         from sage.rings.rational_field import is_RationalField
 
         n = None
+        if hasattr(R, '_factor_univariate_polynomial'):
+            return R._factor_univariate_polynomial(self)
+
         if is_IntegerModRing(R) or is_IntegerRing(R) or is_RationalField(R):
 
             try:
@@ -4710,6 +4713,9 @@
 
         K = self.parent().base_ring()
         L = K if ring is None else ring
+
+        if hasattr(K, '_roots_univariate_polynomial'):
+            return K._roots_univariate_polynomial(self, ring=ring, multiplicities=multiplicities, algorithm=algorithm)
         
         late_import()
 
