Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parents with multiple implementations (or backend) #31852

Open
videlec opened this issue May 24, 2021 · 4 comments
Open

parents with multiple implementations (or backend) #31852

videlec opened this issue May 24, 2021 · 4 comments

Comments

@videlec
Copy link
Contributor

videlec commented May 24, 2021

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

CC: @kliem

Component: misc

Issue created by migration from https://trac.sagemath.org/ticket/31852

@videlec videlec added this to the sage-9.4 milestone May 24, 2021
@videlec

This comment has been minimized.

@videlec

This comment has been minimized.

@videlec

This comment has been minimized.

@videlec

This comment has been minimized.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 14, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Mar 5, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 31, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.8, sage-9.9 Jan 7, 2023
@mkoeppe mkoeppe removed this from the sage-10.0 milestone Mar 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants