Ticket #5082 (new enhancement)
Opened 4 years ago
remove power_mod method
| Reported by: | burcin | Owned by: | somebody |
|---|---|---|---|
| Priority: | minor | Milestone: | sage-wishlist |
| Component: | basic arithmetic | Keywords: | |
| Cc: | Work issues: | ||
| Report Upstream: | Reviewers: | ||
| Authors: | Merged in: | ||
| Dependencies: | Stopgaps: |
Description
The power_mod function is redundant, since python already supports this.
sage: pow?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function pow>
Namespace: Python builtin
Docstring:
pow(x, y[, z]) -> number
With two arguments, equivalent to x**y. With three arguments,
equivalent to (x**y) % z, but may be more efficient (e.g. for longs).
Class Docstring:
<attribute '__doc__' of 'builtin_function_or_method' objects>
This would call the __pow__ method of the function in question with the right arguments, so we can handle the modulo powering operation in the right place. Recall that the signature of the __pow__ method is actually:
__pow__(self, other[, modulus]).
So the objective of this ticket should be changed to:
- let sage.structure.element.generic_power_c handle modulus arguments
- change the __pow__ methods in sage.structure.element to accept and pass on the third argument
- deprecate sage.rings.arith.power_mod
- deprecate Integer.powermod
Note: See
TracTickets for help on using
tickets.
