typelevel / algebra

Experimental project to lay out basic algebra type classes
https://typelevel.org/algebra/
Other
378 stars 69 forks source link

Integrate intermediate steps between `CommutativeRing` and `Field` #233

Open denisrosset opened 5 years ago

denisrosset commented 5 years ago

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

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)

denisrosset commented 3 years ago

See #246 and #247