const ZERO
/ONE
/I
and implement ConstZero
and ConstOne
c32
and c64
functions to help construct Complex
valuesContributors: @cuviper
Contributors: @cuviper, @WalterSmuts
Contributors: @cuviper, @domna
Contributors: @cuviper, @zyansheep
ComplexFloat
trait provides a generic abstraction between floating-point T
and Complex<T>
.Complex::exp
now handles edge cases with NaN and infinite parts.Contributors: @cuviper, @JorisDeRidder, @obsgolem, @YakoYakoYokuYoku
Complex::from_str_radix
now returns an error for radix > 18, because ‘i’ and ‘j’ as digits are ambiguous with i or j imaginary parts.Complex<T>
now implements bytemuck
traits when T
does.Complex::cis
creates a complex with the given phase, ei θ.Contributors: @bluss, @bradleyharden, @cuviper, @rayhem
rand
support has been updated to 0.8, requiring Rust 1.36.Contributors: @cuviper
Contributors: @cuviper
num-traits
, enabling Float
features on no-std
builds.num-complex
now requires Rust 1.31 or greater.rand
support has been updated to 0.7, requiring Rust 1.32.T: Float
now take values instead of references, most notably affecting the constructor from_polar
.Contributors: @cuviper, @SOF3, @vks
Contributors: @burrbull, @cuviper, @dingelish
Complex::sqrt()
is now more accurate for negative reals.Complex::cbrt()
computes the principal cube root.Contributors: @cuviper
Complex::l1_norm()
computes the Manhattan distance from the origin.Complex::fdiv()
and finv()
use floating-point for inversion, which may avoid overflows for some inputs, at the cost of trigonometric rounding.Complex
now implements num_traits::MulAdd
and MulAddAssign
.Complex
now implements Zero::set_zero
and One::set_one
.Complex
now implements num_traits::Pow
and adds powi
and powu
.Contributors: @adamnemecek, @cuviper, @ignatenkobrain, @Schultzer
Contributors: @cuviper, @termoshtt
Complex
now implements num_traits::Inv
and One::is_one
.Complex
now implements Sum
and Product
.Complex
now supports i128
and u128
components with Rust 1.26+.Complex
now optionally supports rand
0.5, implementing the Standard
distribution and a generic ComplexDistribution
.Rem
with a scalar divisor now avoids norm_sqr
overflow.num-complex
now requires rustc 1.15 or greater.std
feature, enabled by default, along with the implication that building without this feature makes this a #![no_std]
crate. A few methods now require FloatCore
, and the remaining methods based on Float
are only supported with std
.serde
dependency has been updated to 1.0, and rustc-serialize
is no longer supported by num-complex
.Contributors: @clarcharr, @cuviper, @shingtaklam1324, @termoshtt
Contributors: @shingtaklam1324
Contributors: @cuviper
No prior release notes were kept. Thanks all the same to the many contributors that have made this crate what it is!