All Versions
Latest Version
Avg Release Cycle
131 days
Latest Release
1826 days ago

Changelog History
Page 1

  • v0.17.0-M1

    June 16, 2019
  • v0.16.2

    May 24, 2019
  • v0.16.1

    March 25, 2019
  • v0.16.1-SNAPSHOT Changes

    • Disabled benchmarked depending on Caliper; waiting for migration to a modern benchmarking framework
    • Fixes to polynomials
    • Revised integer Euclidean division semantics: remainder is usually nonnegative (and that's important to define polynomial rings over integers)
    • The ranges provided to sorting algorithms are now consistent across methods, see : "All these strategies operate in place on segments of arrays that start and end at specified indices. In the QuickSort implementation, the end index was inclusive, while it was exclusive in MergeSort and InsertionSort. This has been fixed in this changeset to make the end index exclusive in all three implementations, following the convention in the Java Collections library."
  • v0.16.0 Changes

    June 15, 2018

    ๐Ÿ‘ This version implements major changes; most importantly, Scala 2.10 has been dropped. The commutative ring tower has been precised: Euclidean division has better semantics, and unique factorization domains have been introduced, generalizing Some species of division with remainder are now described by TruncatedDivision. An involution typeclass abstracts over complex conjugation. We also revised the use of commutative vs. noncommtutative rings, mostly in the construction of complex numbers/quaternions, and in the definition of modules.

    ๐Ÿšš Preliminary work has been done towards the modularization of Spire. A platform module abstracts over the JVM/JS differences, while Opt has been moved to the util module. Other modules are not used yet (data, legacy) but will be in the future.

    • Removed support for Scala 2.10
    • Upgraded SBT version to 1.1.5
    • Upgraded to Scala 2.12.6
    • Introduced the platform and util modules
    • Added a few modules for future modularization: legacy, data
    • Introduced unique factorization domains.
    • Renamed quot/mod to equot/emod (Euclidean rings).
    • Introduced principled truncated division semantics (see ).
    • Added return types to public methods
    • Version upgrades for Scalacheck, Scalatest, Shapeless, Discipline, Machinist and Scala versions
    • Added a docs project using tut, README is compiled under tut.
    • Bug fixes to signum
    • Fixes to Modules (i.e. generalizations of vector spaces) with respect to commutativity, introduced left and right modules
    • Complex numbers and quaternions are now defined on a commutative ring
    • Introduced limited range tests for primitive types,
    • Involution typeclass
  • v0.15.0 Changes

    February 23, 2018

    ๐Ÿš€ This version upgrades dependencies to algebra 1.0.0 which supports the cats 1.0 release.

    • Upgraded to algebra 1.0.0
    • Small bug fixes to intervals, sparse polynomials, complex numbers, big decimals
  • v0.14.1 Changes

    March 28, 2017

    ๐Ÿ›  This version add laws for gcd/lcm operations, and fixes corner cases for the standard types such as Rational.

    โž• Additions:

    • Law tests for gcd/lcm

    ๐Ÿ”„ Changes:

    • gcd/lcm are associative and commutative, the Rational gcd/lcm have been aligned to be compatible with the integer gcd/lcm.
    • Corner cases such as gcd(a, 0) are handled correctly
  • v0.14.0 Changes

    March 19, 2017

    ๐Ÿš€ 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
  • v0.13.0 Changes

    November 29, 2016

    โž• Additions:

    • Added Eq[Bound[A]] instance
    • Added Interval#overlap and supporting machinery

    ๐Ÿ”„ Changes:

    • Improve Polynomial performance
    • Support negative roots for Real
    • Migrate to newer ScalaCheck

    ๐Ÿ›  Fixes:

    • Fix bugs in root isolation/refinement for Algebraic
    • Speed up convergence for Rational#limitTo
  • v0.12.0 Changes

    August 18, 2016

    โž• Additions:

    • IntervalSeq and IntervalTrie added to spire-extras
    • .toReal and .toAlgebraic methods on Rational

    ๐Ÿ”„ Changes:

    • Package restructuring and improvements
    • Make Interval serializable
    • Deprecate use of SecureJava.fromBytes

    ๐Ÿ›  Fixes:

    • Numerous bug fixes