Skip to content

Forbid zero ring in polynomial ring/series constructions #1856

@thofma

Description

@thofma

After looking at the code, we (@fingolfin and myself) came to the conclusion that it would be best to forbid zero rings in polynomial ring constructors (both univariate and multivariate) for now.

Why? Most of the code is wrong and it gives silently wrong results. This is because it heavily relies on is_zero(a), but this is not the right thing to check. In the presence of zero rings, one needs to replace this by is_zero(a) && !is_one(a).

  1. This is quite intrusive and we don't have the resources to change this consistently. One probably would need to check any is_zero call.
  2. We would need some optimized is_zero_and_not_one to not make this check twice as slow for most rings.

The next thing to do is to add an is_trivial(R) check to the various constructors and throw an "not implemented (yet)" error.

We can revisit this decision once the need for this construction arises.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions