@@ -126,7 +126,7 @@ from sage.misc.cachefunc import cached_function
126
126
from sage.categories.map cimport Map
127
127
from sage.categories.morphism cimport Morphism
128
128
129
- from sage.misc.superseded import deprecation_cython as deprecation
129
+ from sage.misc.superseded import deprecation_cython as deprecation, deprecated_function_alias
130
130
from sage.misc.cachefunc import cached_method
131
131
132
132
from sage.rings.number_field.order import is_NumberFieldOrder
@@ -8925,7 +8925,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
8925
8925
else :
8926
8926
raise NotImplementedError (" %s does not provide an xgcd implementation for univariate polynomials" % self .base_ring())
8927
8927
8928
- def rational_reconstruct (self , m , n_deg = None , d_deg = None ):
8928
+ def rational_reconstruction (self , m , n_deg = None , d_deg = None ):
8929
8929
r """
8930
8930
Return a tuple of two polynomials ``( n, d) ``
8931
8931
where ``self * d`` is congruent to ``n`` modulo ``m`` and
@@ -8950,7 +8950,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
8950
8950
sage: z = PolynomialRing( QQ, 'z') . gen( )
8951
8951
sage: p = -z** 16 - z** 15 - z** 14 + z** 13 + z** 12 + z** 11 - z** 5 - z** 4 - z** 3 + z** 2 + z + 1
8952
8952
sage: m = z** 21
8953
- sage: n, d = p. rational_reconstruct ( m)
8953
+ sage: n, d = p. rational_reconstruction ( m)
8954
8954
sage: print(( n ,d))
8955
8955
( z^ 4 + 2* z^ 3 + 3* z^ 2 + 2* z + 1, z^ 10 + z^ 9 + z^ 8 + z^ 7 + z^ 6 + z^ 5 + z^ 4 + z^ 3 + z^ 2 + z + 1)
8956
8956
sage: print((( p* d - n) % m ) . is_zero( ))
@@ -8961,7 +8961,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
8961
8961
sage: z = PolynomialRing( ZZ, 'z') . gen( )
8962
8962
sage: p = -z** 16 - z** 15 - z** 14 + z** 13 + z** 12 + z** 11 - z** 5 - z** 4 - z** 3 + z** 2 + z + 1
8963
8963
sage: m = z** 21
8964
- sage: n, d = p. rational_reconstruct ( m)
8964
+ sage: n, d = p. rational_reconstruction ( m)
8965
8965
sage: print(( n ,d))
8966
8966
( z^ 4 + 2* z^ 3 + 3* z^ 2 + 2* z + 1, z^ 10 + z^ 9 + z^ 8 + z^ 7 + z^ 6 + z^ 5 + z^ 4 + z^ 3 + z^ 2 + z + 1)
8967
8967
sage: print((( p* d - n) % m ) . is_zero( ))
@@ -8973,12 +8973,12 @@ cdef class Polynomial(CommutativeAlgebraElement):
8973
8973
sage: x = P. gen( )
8974
8974
sage: p = 7* x^ 5 - 10* x^ 4 + 16* x^ 3 - 32* x^ 2 + 128* x + 256
8975
8975
sage: m = x^ 5
8976
- sage: n, d = p. rational_reconstruct ( m, 3, 2)
8976
+ sage: n, d = p. rational_reconstruction ( m, 3, 2)
8977
8977
sage: print(( n ,d))
8978
8978
( -32* x^ 3 + 384* x^ 2 + 2304* x + 2048, 5* x + 8)
8979
8979
sage: print((( p* d - n) % m ) . is_zero( ))
8980
8980
True
8981
- sage: n, d = p. rational_reconstruct ( m, 4, 0)
8981
+ sage: n, d = p. rational_reconstruction ( m, 4, 0)
8982
8982
sage: print(( n ,d))
8983
8983
( -10* x^ 4 + 16* x^ 3 - 32* x^ 2 + 128* x + 256, 1)
8984
8984
sage: print((( p* d - n) % m ) . is_zero( ))
@@ -8993,7 +8993,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
8993
8993
sage: # p = ( 1 + t^ 2* z + z^ 4) / ( 1 - t* z)
8994
8994
sage: p = ( 1 + t^ 2* z + z^ 4) * ( 1 - t* z) . inverse_mod( z^ 9)
8995
8995
sage: m = z^ 9
8996
- sage: n, d = p. rational_reconstruct ( m)
8996
+ sage: n, d = p. rational_reconstruction ( m)
8997
8997
sage: print(( n ,d))
8998
8998
( -1/t* z^ 4 - t* z - 1/t, z - 1/t)
8999
8999
sage: print((( p* d - n) % m ) . is_zero( ))
@@ -9002,7 +9002,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
9002
9002
sage: n = -10* t^ 2* z^ 4 + ( -t^ 2 + t - 1) * z^ 3 + ( -t - 8) * z^ 2 + z + 2* t^ 2 - t
9003
9003
sage: d = z^ 4 + ( 2* t + 4) * z^ 3 + ( -t + 5) * z^ 2 + ( t^ 2 + 2) * z + t^ 2 + 2* t + 1
9004
9004
sage: prec = 9
9005
- sage: nc, dc = Pz(( n. subs( z = w) /d. subs( z = w) + O( w^ prec)) . list( )) . rational_reconstruct ( z^ prec)
9005
+ sage: nc, dc = Pz(( n. subs( z = w) /d. subs( z = w) + O( w^ prec)) . list( )) . rational_reconstruction ( z^ prec)
9006
9006
sage: print( ( nc, dc) == ( n, d) )
9007
9007
True
9008
9008
@@ -9014,7 +9014,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
9014
9014
sage: # p = ( 1 + t^ 2* z + z^ 4) / ( 1 - t* z) mod z^ 9
9015
9015
sage: p = ( 1 + t^ 2* z + z^ 4) * sum(( t* z) ** i for i in range( 9))
9016
9016
sage: m = z^ 9
9017
- sage: n, d = p. rational_reconstruct ( m,)
9017
+ sage: n, d = p. rational_reconstruction ( m,)
9018
9018
sage: print(( n ,d))
9019
9019
( -z^ 4 - t^ 2* z - 1, t* z - 1)
9020
9020
sage: print((( p* d - n) % m ) . is_zero( ))
@@ -9025,7 +9025,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
9025
9025
sage: x = PolynomialRing( Qp( 5) ,'x') . gen( )
9026
9026
sage: p = 4* x^ 5 + 3* x^ 4 + 2* x^ 3 + 2* x^ 2 + 4* x + 2
9027
9027
sage: m = x^ 6
9028
- sage: n, d = p. rational_reconstruct ( m, 3, 2)
9028
+ sage: n, d = p. rational_reconstruction ( m, 3, 2)
9029
9029
sage: print((( p* d - n) % m ) . is_zero( ))
9030
9030
True
9031
9031
@@ -9036,34 +9036,34 @@ cdef class Polynomial(CommutativeAlgebraElement):
9036
9036
sage: x = P. gen( )
9037
9037
sage: p = P( exp( z) . list( ))
9038
9038
sage: m = x^ 5
9039
- sage: n, d = p. rational_reconstruct ( m, 4, 0)
9039
+ sage: n, d = p. rational_reconstruction ( m, 4, 0)
9040
9040
sage: print(( n ,d))
9041
9041
( 1/24* x^ 4 + 1/6* x^ 3 + 1/2* x^ 2 + x + 1, 1)
9042
9042
sage: print((( p* d - n) % m ) . is_zero( ))
9043
9043
True
9044
9044
sage: m = x^ 3
9045
- sage: n, d = p. rational_reconstruct ( m, 1, 1)
9045
+ sage: n, d = p. rational_reconstruction ( m, 1, 1)
9046
9046
sage: print(( n ,d))
9047
9047
( -x - 2, x - 2)
9048
9048
sage: print((( p* d - n) % m ) . is_zero( ))
9049
9049
True
9050
9050
sage: p = P( log( 1-z) . list( ))
9051
9051
sage: m = x^ 9
9052
- sage: n, d = p. rational_reconstruct ( m, 4, 4)
9052
+ sage: n, d = p. rational_reconstruction ( m, 4, 4)
9053
9053
sage: print(( n ,d))
9054
9054
( 25/6* x^ 4 - 130/3* x^ 3 + 105* x^ 2 - 70* x, x^ 4 - 20* x^ 3 + 90* x^ 2 - 140* x + 70)
9055
9055
sage: print((( p* d - n) % m ) . is_zero( ))
9056
9056
True
9057
9057
sage: p = P( sqrt( 1+ z) . list( ))
9058
9058
sage: m = x^ 6
9059
- sage: n, d = p. rational_reconstruct ( m, 3, 2)
9059
+ sage: n, d = p. rational_reconstruction ( m, 3, 2)
9060
9060
sage: print(( n ,d))
9061
9061
( 1/6* x^ 3 + 3* x^ 2 + 8* x + 16/3, x^ 2 + 16/3* x + 16/3)
9062
9062
sage: print((( p* d - n) % m ) . is_zero( ))
9063
9063
True
9064
9064
sage: p = P( exp( 2* z) . list( ))
9065
9065
sage: m = x^ 7
9066
- sage: n, d = p. rational_reconstruct ( m, 3, 3)
9066
+ sage: n, d = p. rational_reconstruction ( m, 3, 3)
9067
9067
sage: print(( n ,d))
9068
9068
( -x^ 3 - 6* x^ 2 - 15* x - 15, x^ 3 - 6* x^ 2 + 15* x - 15)
9069
9069
sage: print((( p* d - n) % m ) . is_zero( ))
@@ -9076,26 +9076,26 @@ cdef class Polynomial(CommutativeAlgebraElement):
9076
9076
sage: x = P. gen( )
9077
9077
sage: p = P( exp( 2* z) . list( ))
9078
9078
sage: m = x^ 7
9079
- sage: n, d = p. rational_reconstruct ( m, 3, 3)
9079
+ sage: n, d = p. rational_reconstruction ( m, 3, 3)
9080
9080
sage: print(( n ,d)) # absolute tolerance 1e-10
9081
9081
( -x^ 3 - 6. 0* x^ 2 - 15. 0* x - 15. 0, x^ 3 - 6. 0* x^ 2 + 15. 0* x - 15. 0)
9082
9082
9083
9083
.. SEEALSO::
9084
9084
9085
9085
* :mod:`sage. matrix. berlekamp_massey`,
9086
- * :meth:`sage. rings. polynomial. polynomial_zmod_flint. Polynomial_zmod_flint. rational_reconstruct `
9086
+ * :meth:`sage. rings. polynomial. polynomial_zmod_flint. Polynomial_zmod_flint. rational_reconstruction `
9087
9087
"""
9088
9088
P = self .parent()
9089
9089
if not P.base_ring().is_field():
9090
9090
if not P.base_ring().is_integral_domain():
9091
- raise NotImplementedError (" rational_reconstruct () "
9091
+ raise NotImplementedError (" rational_reconstruction () "
9092
9092
" is only implemented when the base ring is a field "
9093
9093
" or a integral domain, "
9094
9094
" a workaround is to do a multimodular approach" )
9095
9095
Pf = P.base_extend(P.base_ring().fraction_field())
9096
9096
sF = Pf(self )
9097
9097
mF = Pf(m)
9098
- n, d = sF.rational_reconstruct( mF, n_deg, d_deg)
9098
+ n, d = sF.rational_reconstruction( mF, n_deg, d_deg)
9099
9099
l = lcm([n.denominator(), d.denominator()])
9100
9100
n *= l
9101
9101
d *= l
@@ -9135,6 +9135,8 @@ cdef class Polynomial(CommutativeAlgebraElement):
9135
9135
t1 = t1 / c
9136
9136
return t1, t0
9137
9137
9138
+ rational_reconstruct = deprecated_function_alias(12696 , rational_reconstruction)
9139
+
9138
9140
def variables (self ):
9139
9141
"""
9140
9142
Return the tuple of variables occurring in this polynomial.
0 commit comments