series 0.15.0

Laurent series and polynomials
Documentation
# Version 0.15.0

- Implement `MulAssign<Self>` and `MulAssign<&'a Self>` for `Laurent`.

# Version 0.14.0

A major rewrite with many backwards-incompatible changes.

- Added macros `var!` and `once_var!` for defining light-weight
  variables with name set at compile time (`var!`) or once at runtime
  (`once_var!`).
- Added `Laurent` as a sum type of series and polynomials. `Laurent`
  replaces `InnerSeries`, which was removed.
- Redesigned `Polynomial` as a sum type of constants and non-constant
  polynomials. This type replaces the old `PolynomialIn`. Polynomials
  with anonymous variables (`Polynomial` in versions 0.12 and 0.13)
  are no longer supported.
- Renamed
  `SeriesIn` -> `Series`
  `Series` -> `AnonSeries`
- Multiplying series by zero now leads to a panic instead of an
  incorrect result.
- Rewrote `Display` implementations to support series and polynomials
  whose coefficients implement the new `SplitSign` and
  `NeedsCoeffBracket` traits. This includes integers and floats, as
  well as nested series and polynomials.
- Added `O!` macro for representing series without coefficients.
- Extended support for arithmetic operations, e.g. combining series
  and polynomials.
- Added basic `FromStr` implementations for series and polynomials via
  the `parse` feature.
- Added optional support for arbitrary-precision integer and rational
  coefficients via [rug]https://crates.io/crates/rug.
- Added `map` method to replace series and polynomial coefficients.
- Added `truncate_at` method to truncate series at a lower expansion order.
- Added `shift_pow` method to shift all powers in a series.
- Added `replace_var` method to replace the variable of a series or
  polynomial.
- Updated the crate to the 2024 Rust edition.

# Version 0.13.0

- Added `InnerSeries` type to support nested series.
- Added `for_each` and `apply_at` methods for modifying coefficients.
- Implemented `Default` for `Polynomial`.
- Fixed lifetimes of `var` methods in `PolynomialSliceIn`, `SeriesSliceIn`.
- Implemented `AddAssign` for references to the coefficient type.

# Version 0.12.0

- Added Conversions
  `SeriesIn` -> `Series`
  `PolynomialIn` -> `Polynomial`
  `SeriesSliceIn` -> `SeriesSlice`
  `PolynomialSliceIn` -> `PolynomialSlice`

# Version 0.11.0

- Fixed the behaviour of `powi` for series without coefficients,
  i.e. series of the form O(x^n).
- Replaced the custom `Pow` trait by the
  [`num_traits`]https://crates.io/crates/num-traits equivalent.

# Version 0.10.0

- `Series`, `SeriesSlice`, `Polynomial`, `PolynomialSlice` now
  represent Laurent series and polynomials in an anonymous expansion
  variable.
- Relaxed trait bounds on coefficient types.

# Version 0.9.0

- Renamed all structs:
  `Series` -> `SeriesIn`
  `Polynomial` -> `PolynomialIn`
  `SeriesSlice` -> `SeriesSliceIn`
  `PolynomialSlice` -> `PolynomialSliceIn`
  `SeriesParts` -> `SeriesInParts`
  `PolynomialParts` -> `PolynomialInParts`
- Fixed lifetime in `coeff` method return values.
- Fixed off-by-one error in the `PolynomialSlice` `coeff` method.

# Version 0.8.0

- Update to Rust 2021.
- Fixed broken `serde` support.
- Updated dependencies.

# Version 0.7.1

- Fixed typo in Readme.

# Version 0.7.0

- Implemented Laurent polynomials.
- Added `SeriesSlice` and `PolynomialSlice` as immutable views into
  series and polynomials.
- Implemented `Iter` and `IntoIter` for iteration over series and
  polynomial coefficients.
- Added multiplication benchmarks.

# Version 0.6.0

- Update to Rust 2018 (1.35.0)

# Version 0.5.0

- Implemented `powi` as a better method to compute a series to an
  integer power.
- Added support for destructuring series via the new `SeriesData` struct.
- Fixed regression: `pow` method once again works on series references.

# Version 0.4.0

- Implemented exponentiation with an exponent of the same type as the
  series coefficients.
- Renamed `max_pow` method to `cutoff_pow`.
- Added a constructor with explicit series cutoff power.

# Version 0.3.0

- Implemented multiplication and division by objects with the same type
  as the series coefficients.
- Implemented `Ord` and `PartialOrd` traits for `Series`.

# Version 0.2.0

- Fixed compilation issues with rustc 1.28.0.
- Implemented all arithmetic operations for all combinations of
  references and values.
- Updated traits for logarithm and exponential function and added trait
  for powers.