Opened 8 years ago

Last modified 18 months ago

#18333 new task

Cleanup and speedup in QQbar

Reported by: Vincent Delecroix Owned by:
Priority: major Milestone: sage-wishlist
Component: number fields Keywords:
Cc: Marc Mezzarobba, Martin von Gagern, Clemens Heuberger Merged in:
Authors: Vincent Delecroix Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by Vincent Delecroix)

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 QQbarQQ 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)

comment:1 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:2 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:3 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:4 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:5 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:6 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:7 Changed 8 years ago by Marc Mezzarobba

Cc: Marc Mezzarobba added

comment:8 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:9 Changed 8 years ago by Vincent Delecroix

Description: modified (diff)

comment:10 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)

comment:11 Changed 7 years ago by Paul Zimmermann

about slowness of QQbar, see #19910.

comment:12 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)
Milestone: sage-6.7sage-wishlist

comment:13 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)

comment:14 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)

comment:15 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)

comment:16 Changed 7 years ago by Nils Bruin

There's an issue on QQBar element powering reported in #18836 comment 9 that may have interaction with what you're doing here (perhaps you're solving the issue?). Perhaps it's worthwhile including that problem in this QQbar cleanup operation somewhere.

comment:17 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)

comment:18 Changed 7 years ago by Vincent Delecroix

Description: modified (diff)

comment:19 Changed 6 years ago by Martin von Gagern

Cc: Martin von Gagern added

comment:20 Changed 6 years ago by Vincent Delecroix

Description: modified (diff)

comment:21 Changed 6 years ago by Vincent Delecroix

Description: modified (diff)

comment:22 Changed 6 years ago by Clemens Heuberger

Cc: Clemens Heuberger added

comment:23 Changed 6 years ago by Vincent Delecroix

Description: modified (diff)

comment:24 Changed 5 years ago by Vincent Delecroix

Description: modified (diff)

comment:25 Changed 5 years ago by Jeroen Demeyer

Description: modified (diff)

comment:26 Changed 5 years ago by Jeroen Demeyer

Description: modified (diff)

comment:27 Changed 5 years ago by Jeroen Demeyer

Description: modified (diff)

comment:28 Changed 4 years ago by Marc Mezzarobba

Description: modified (diff)

comment:29 Changed 3 years ago by Vincent Delecroix

Description: modified (diff)

comment:31 Changed 18 months ago by Vincent Delecroix

Description: modified (diff)
Note: See TracTickets for help on using tickets.