# HG changeset patch
# User Simon King <simon.king@uni-jena.de>
# Date 1308724342 -7200
# Node ID 3c3ab5b6421b9183a1b900b2dc28ab51c3b3eeab
# Parent 6ca08864b80c1e04599ba23ba295bfcf6a61f19b
#11530: Proper use of a custom variable name in _pari_init_ of finite field elements
diff -r 6ca08864b80c -r 3c3ab5b6421b sage/rings/finite_rings/element_base.pyx
|
a
|
b
|
|
| 338 | 338 | 'Mod(b, Mod(1, 5)*b^2 + Mod(4, 5)*b + Mod(2, 5))' |
| 339 | 339 | sage: (2*b+3)._pari_init_() |
| 340 | 340 | 'Mod(2*b + 3, Mod(1, 5)*b^2 + Mod(4, 5)*b + Mod(2, 5))' |
| | 341 | |
| | 342 | TESTS: |
| | 343 | |
| | 344 | The following tests against a bug fixed in trac ticket #11530:: |
| | 345 | |
| | 346 | sage: F.<d> = GF(3^2) |
| | 347 | sage: d._pari_() |
| | 348 | Mod(d, Mod(1, 3)*d^2 + Mod(2, 3)*d + Mod(2, 3)) |
| | 349 | sage: d._pari_init_("p") |
| | 350 | 'Mod(p, Mod(1, 3)*p^2 + Mod(2, 3)*p + Mod(2, 3))' |
| | 351 | sage: d._pari_init_("M") |
| | 352 | 'Mod(M, Mod(1, 3)*M^2 + Mod(2, 3)*M + Mod(2, 3))' |
| | 353 | sage: d._pari_init_("b") |
| | 354 | 'Mod(b, Mod(1, 3)*b^2 + Mod(2, 3)*b + Mod(2, 3))' |
| | 355 | |
| 341 | 356 | """ |
| 342 | | g = self.parent()._finite_field_ext_pari_modulus_as_str() |
| 343 | | f = str(self.polynomial()) |
| 344 | | s = 'Mod(%s, %s)'%(f, g) |
| 345 | 357 | if var is None: |
| 346 | | return s |
| 347 | | return s.replace(self.parent().variable_name(), var) |
| | 358 | var = self.parent().variable_name() |
| | 359 | g = repr(self.parent().modulus()._pari_with_name(var)) |
| | 360 | f = str(self.polynomial(var)) |
| | 361 | return 'Mod({0}, {1})'.format(f, g) |
| 348 | 362 | |
| 349 | 363 | def charpoly(self, var='x', algorithm='matrix'): |
| 350 | 364 | """ |