Opened 15 months ago

Last modified 5 months ago

#31852 new enhancement

parents with multiple implementations (or backend)

Reported by: vdelecroix Owned by:
Priority: major Milestone: sage-9.7
Component: misc Keywords:
Cc: gh-kliem Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by vdelecroix)

In sage several parents propose several implementations of the same parent such as FiniteField, MatrixSpace, PolynomialRing, Polyhedra

sage: FiniteField(79, impl='modn')
Finite Field of size 79
sage: FiniteField(79, impl='givaro')
Finite Field of size 79
sage: MatrixSpace(QQ, 3, 3, implementation='generic')
Full MatrixSpace of 3 by 3 dense matrices over Rational Field (using Matrix_generic_dense)
sage: MatrixSpace(QQ, 3, 3, implementation='gap')
Full MatrixSpace of 3 by 3 dense matrices over Rational Field (using Matrix_gap)
sage: PolynomialRing(ZZ, 'x', implementation='FLINT')
Univariate Polynomial Ring in x over Integer Ring
sage: PolynomialRing(ZZ, 'x', implementation='NTL')
Univariate Polynomial Ring in x over Integer Ring (using NTL)
sage: Polyhedra(QQ, 3, backend='ppl')
Polyhedra in QQ^3
sage: Polyhedra(QQ, 3, backend='cdd')
Polyhedra in QQ^3

This ticket intends to extend, standardize, optimize and test parents with multiple implementations. Especially regarding

  • argument names (implementation vs impl vs backend)
  • string representation
  • reconstruction (should be part of TestSuite)
  • conversion of elements between implementations
  • handling of default constructor

Related tickets: #31668

Change History (8)

comment:1 Changed 15 months ago by vdelecroix

  • Description modified (diff)

comment:2 Changed 15 months ago by vdelecroix

  • Description modified (diff)

comment:3 Changed 15 months ago by vdelecroix

  • Description modified (diff)

comment:4 Changed 15 months ago by vdelecroix

  • Description modified (diff)

comment:5 Changed 14 months ago by mkoeppe

  • Cc gh-kliem added

comment:6 Changed 13 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5

comment:7 Changed 8 months ago by mkoeppe

  • Milestone changed from sage-9.5 to sage-9.6

comment:8 Changed 5 months ago by mkoeppe

  • Milestone changed from sage-9.6 to sage-9.7
Note: See TracTickets for help on using tickets.