Cleanup and speedup in QQbar
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 nary 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
Change History (31)
Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Cc: 
Marc Mezzarobba added

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Milestone: 
sage6.7 →
sagewishlist

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Cc: 
Martin von Gagern added

Description: 
modified (diff)

Description: 
modified (diff)

Cc: 
Clemens Heuberger added

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

Description: 
modified (diff)

about slowness of QQbar, see #19910.