Spire v0.14.0 Release Notes

Release Date: 2017-03-19 // about 7 years ago
  • ๐Ÿš€ This release is a major milestone for Spire.

    First of all, it introduces a dependency on typelevel/algebra (and thus on typelevel/cats-kernel). This provides immediate compatibility with Cats and Algebird.

    Second of all, Spire is now published to the org.typelevel organization (which was previously org.spire-math).

    โž• Additions:

    • Added GCDRing, part of the commutative ring hierarchy
    • Clarified the laws of EuclideanRing
    • Added DivisionRing, a ring in which division is possible (generalization of fields to the noncommutative case; used now by Spire's quaternions).

    ๐Ÿ”„ Changes:

    • Many type classes are now aliases to algebra's type classes
    • Algebra provides commutative rings and fields, but the intemediate structures (GCDRing/EuclideanRing) are added by Spire; thus Spire Field differs from algebra Field by extending GCDRing and EuclideanRing.
    • The EuclidenRing operations for Field have been corrected; in particular, Float, Double no longer perform truncated division but a /~ b = 0 for nonzero b, as a can always be divided by b in a field.
    • Signed now extends Order, thus IsReal only extends Signed.
    • IsReal has been replaced by Signed for some operations in e.g. Complex, making them more precise/general.
    • Many different efficiency improvements

    ๐Ÿ›  Fixes:

    • Instances for Complex and Quaternion are more precise
    • Numeric[Complex[A]] is no longer provided
    • Many bug fixes