Skip to content
This repository was archived by the owner on Feb 8, 2022. It is now read-only.
This repository was archived by the owner on Feb 8, 2022. It is now read-only.

Integrate intermediate steps between CommutativeRing and Field #233

@denisrosset

Description

@denisrosset

Right now, spire has a finer grained distinction of commutative rings, namely:

  • the availability of gcd and lcm operations,
  • the availability of Euclidean division (emod, equot),

in the type classes GCDRing and EuclideanRing. As the corresponding operations are already part of the Java/Scala API for e.g. integers, it would be natural to include them in algebra. The corresponding type classes are pretty uncontroversial and map to the mathematical hierarchy.

Another step in the hierarchy, UniqueFactorizationDomain relates to the availability of factorization into prime elements. There, the API is less clear. For various reasons, this type class is present outside the ring hierarchy in Spire, and I suggest it is not included in algebra.

(There is also the story of Signed -- for abs -- and TruncatedDivision, but that should be discussed separately)

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