Ticket #4000 (needs_review enhancement)
Implement QQ['x'] via Flint ZZ['x'] + denominator
| Reported by: | malb | Owned by: | somebody |
|---|---|---|---|
| Priority: | major | Milestone: | sage-5.0 |
| Component: | basic arithmetic | Keywords: | |
| Cc: | burcin, spancratz, mhansen, malb | Author(s): | Sebastian Pancratz, Martin Albrecht |
| Report Upstream: | N/A | Reviewer(s): | |
| Merged in: | Work issues: |
Description
Bill Hart wrote on [sage-devel]:
""" Almost everything over Q should probably be converted to a problem over Z. I haven't seen any polynomial problems over Q which should not be dealt with this way so far, but I suppose they may exist. """
Further justification:
sage: f = R.random_element(2000) sage: g = R.random_element(2000) sage: fD = f.denominator() sage: gD = g.denominator() sage: fZ = (fD * f).change_ring(ZZ) sage: gZ = (gD * g).change_ring(ZZ) sage: %time _ = f*g CPU times: user 0.63 s, sys: 0.02 s, total: 0.66 s Wall time: 0.67 s sage: %time _ = (fZ*gZ) CPU times: user 0.01 s, sys: 0.00 s, total: 0.01 s Wall time: 0.01 s sage: %time _ = (fZ*gZ)/(fD*gD) CPU times: user 0.06 s, sys: 0.00 s, total: 0.06 s Wall time: 0.06 s sage: fM = magma(f) sage: gM = magma(g) sage: t = magma.cputime() sage: _ = fM*gM sage: magma.cputime(t) 0.059999999999999998
sage: f = R.random_element(4000) sage: g = R.random_element(4000) sage: fD = f.denominator() sage: gD = g.denominator() sage: fZ = (fD * f).change_ring(ZZ) sage: gZ = (gD * g).change_ring(ZZ) sage: %time _ = f*g CPU times: user 2.11 s, sys: 0.00 s, total: 2.12 s Wall time: 2.14 s sage: %time _ = (fZ*gZ) CPU times: user 0.02 s, sys: 0.00 s, total: 0.02 s Wall time: 0.02 s sage: %time _ = (fZ*gZ)/(fD*gD) CPU times: user 0.14 s, sys: 0.01 s, total: 0.15 s Wall time: 0.15 s sage: fM = magma(f) sage: gM = magma(g) sage: t = magma.cputime() sage: _ = fM*gM sage: magma.cputime(t) 0.10000000000000001
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

