74
74
from sage .structure .sequence import Sequence
75
75
from sage .modules .free_module_element import vector
76
76
77
- from sage .misc .superseded import deprecated_function_alias
78
-
79
77
80
78
class UnwrappingMorphism (Morphism ):
81
79
r"""
@@ -308,24 +306,13 @@ def discrete_exp(self, v):
308
306
sage: el = A.random_element()
309
307
sage: A.discrete_exp(A.discrete_log(el)) == el
310
308
True
311
-
312
- TESTS:
313
-
314
- Check that :meth:`_discrete_exp` still works (for now)::
315
-
316
- sage: A._discrete_exp(list(range(1,6)))
317
- doctest:warning ...
318
- DeprecationWarning: _discrete_exp is deprecated. ...
319
- (1, 2, 3, 4, 5)
320
309
"""
321
310
from sage .misc .verbose import verbose
322
311
v = self .V ()(v )
323
312
verbose ("Calling discrete exp on %s" % v )
324
313
# DUMB IMPLEMENTATION!
325
314
return sum ([self ._gen_elements [i ] * ZZ (v [i ]) for i in range (len (v ))], self .universe ()(0 ))
326
315
327
- _discrete_exp = deprecated_function_alias (32384 , discrete_exp )
328
-
329
316
def discrete_log (self , x , gens = None ):
330
317
r"""
331
318
Given an element of the ambient group, attempt to express it in terms
@@ -374,18 +361,6 @@ def discrete_log(self, x, gens=None):
374
361
Traceback (most recent call last):
375
362
...
376
363
NotImplementedError: No black-box discrete log for infinite abelian groups
377
-
378
- TESTS:
379
-
380
- Check that :meth:`_discrete_log` still works (for now)::
381
-
382
- sage: orders = [2, 2*3, 2*3*5, 2*3*5*7, 2*3*5*7*11]
383
- sage: G = AdditiveAbelianGroup(orders)
384
- sage: A = AdditiveAbelianGroupWrapper(G.0.parent(), G.gens(), orders)
385
- sage: A._discrete_log(sum(i*g for i,g in enumerate(G.gens(),1)))
386
- doctest:warning ...
387
- DeprecationWarning: _discrete_log is deprecated. ...
388
- (1, 2, 3, 4, 5)
389
364
"""
390
365
from sage .arith .misc import CRT_list
391
366
from sage .rings .infinity import Infinity
@@ -421,8 +396,6 @@ def discrete_log(self, x, gens=None):
421
396
assert x == sum (r * g for r , g in zip (res , gens ))
422
397
return res
423
398
424
- _discrete_log = deprecated_function_alias (32384 , discrete_log )
425
-
426
399
def torsion_subgroup (self , n = None ):
427
400
r"""
428
401
Return the `n`-torsion subgroup of this additive abelian group
@@ -594,7 +567,7 @@ def _base(j, k, c):
594
567
595
568
assert k - j == 1
596
569
aajk = subbasis (j , k )
597
- assert not any (p * a for a in aajk ) # orders are in {1,p}
570
+ assert not any (p * a for a in aajk ) # orders are in {1,p}
598
571
idxs = [i for i , a in enumerate (aajk ) if a ]
599
572
600
573
rs = [([0 ], [0 ]) for i in range (len (aajk ))]
@@ -627,18 +600,18 @@ def _rec(j, k, c):
627
600
return _base (j , k , c )
628
601
629
602
w = 2
630
- js = list (range (j , k , (k - j + w - 1 ) // w )) + [k ]
603
+ js = list (range (j , k , (k - j + w - 1 ) // w )) + [k ]
631
604
assert len (js ) == w + 1
632
605
633
606
x = vector ([0 ] * len (aa ))
634
607
for i in reversed (range (w )):
635
608
636
609
gamma = p ** (js [i ] - j ) * c - dotprod (x , subbasis (js [i ], k ))
637
610
638
- v = _rec (js [i ], js [i + 1 ], gamma )
611
+ v = _rec (js [i ], js [i + 1 ], gamma )
639
612
640
- assert not any (q1 % q2 for q1 , q2 in zip (qq (js [i ], js [i + 1 ]), qq (js [i ], k )))
641
- x += vector (q1 // q2 * r for q1 , q2 , r in zip (qq (js [i ], js [i + 1 ]), qq (js [i ], k ), v ))
613
+ assert not any (q1 % q2 for q1 , q2 in zip (qq (js [i ], js [i + 1 ]), qq (js [i ], k )))
614
+ x += vector (q1 // q2 * r for q1 , q2 , r in zip (qq (js [i ], js [i + 1 ]), qq (js [i ], k ), v ))
642
615
643
616
return x
644
617
@@ -700,7 +673,7 @@ def _expand_basis_pgroup(p, alphas, vals, beta, h, rel):
700
673
701
674
# step 1
702
675
min_r = rel [- 1 ] or float ('inf' )
703
- for i in range (k - 1 ):
676
+ for i in range (k - 1 ):
704
677
if not rel [i ]:
705
678
continue
706
679
if rel [i ] < 0 :
@@ -712,16 +685,16 @@ def _expand_basis_pgroup(p, alphas, vals, beta, h, rel):
712
685
if min_r == float ('inf' ):
713
686
raise ValueError ('rel must have at least one nonzero entry' )
714
687
val_rlast = rel [- 1 ].valuation (p )
715
- # assert rel[-1] == p ** val_rlast
716
- # assert not sum(r*a for r,a in zip(rel, alphas+[beta]))
688
+ # assert rel[-1] == p ** val_rlast
689
+ # assert not sum(r*a for r,a in zip(rel, alphas+[beta]))
717
690
718
691
# step 2
719
692
if rel [- 1 ] == min_r :
720
- for i in range (k - 1 ):
721
- beta += alphas [i ] * (rel [i ]// rel [- 1 ])
693
+ for i in range (k - 1 ):
694
+ beta += alphas [i ] * (rel [i ] // rel [- 1 ])
722
695
alphas .append (beta )
723
696
vals .append (val_rlast )
724
- # assert alphas[-1].order() == p**vals[-1]
697
+ # assert alphas[-1].order() == p**vals[-1]
725
698
return
726
699
727
700
# step 3
0 commit comments