id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,merged,author,reviewer,upstream,work_issues,branch,commit,dependencies,stopgaps
18333,Cleanup and speedup in QQbar,vdelecroix,,"This is a task ticket for speed up and cleaning in `sage.rings.qqbar`
Prerequisites on number fields/polynomials/interval arithmetic
- #18332: implement `is_integer` and `is_rational` on number field elements
- #18334: implement `unique_sign` and `unique_trunc` on interval field elements
- #18337: implement `real` and `imag` on real intervals
- #17830: consider the natural order induced from `RR` for number fields with real embedding
- #19362, #28191: refine root
- #18356: implement composed_op from [BFSS]
- #19824: faster comparison for (real) embedded number fields
- #24503: enhanced `LazyAlgebraic`
Tasks in `AA/QQbar`:
- #18303: better comparisons
- #17886, #18242: faster exactification operations using power series and resultants (see also #18356)
- #15600: exactification is slow in `do_polred`
- #16222, #18122, #31889: enhanced minpoly
- #19954 and #19955: remove all descriptors except `ANRoot`, `ANExtension` and `ANRational`
- #20074: simplify method dispatcher for binary operators
- #12745: conversion issue `QQbar -> AA`
- #18106: introduce a polynomial descriptor, make sum and product be n-ary instead of binary and get rid of recursive calls
- #12715: number field embeddings should always have target in `AA` or `QQbar`
- #19356: QQbar.polynomial_root(): allow approximate root
- #21095: slowness in exactification
- #21838: do not make appear the imaginary (or real) part in QQbar when it is known to be zero
- #5574: Implement QQbar^QQ^ as action
- use firstly interval arithmetic for `sign`/`floor`/`ceil`/`trunc`/`round` instead of the `_floor_ceil` helper
- remove the following methods from `ANDescr`:
- `rational_value`
- `is_field_element`
- `is_exact`
- (?) enhanced `sage_input` for `ANExtension`
- better powering (`__pow__`) using `ANExtension` and fix convention for powering in `AA` vs `QQbar`
- reimplement `_real_refine_interval` without these ugly dictionaries (see also #17895)
- use directly embedded number fields in `AlgebraicGenerator` as comparison there is faster (see #17830 and #19824). We might want that these embedded number field carries an interval of fixed precision with them (let say `64`) to avoid reevaluation in most cases
- #26944: improve hashing to avoid exact computations
- more generally, track down code in qqbar.py that may lead to larger extensions than necessary if an exact computation is triggered (for example, see if the formulas in `ANUnaryExpr.exactify()` can be optimized).
- #31767: more capable sign
Bugs
- #20209: `QQbar -> RIF` conversion fails
- #12745: Coercion problem with Algebraic Real Field
- #20288: representation and mutability of the description",task,new,major,sage-wishlist,number fields,,,mmezzarobba gagern cheuberg,,Vincent Delecroix,,N/A,,,,,