1# Release 0.4.6 (2024-05-07)
2
3- [Upgrade to 2021 edition, **MSRV 1.60**][121]
4- [Add `const ZERO`/`ONE`/`I` and implement `ConstZero` and `ConstOne`][125]
5- [Add `c32` and `c64` functions to help construct `Complex` values][126]
6
7**Contributors**: @cuviper
8
9[121]: https://github.com/rust-num/num-complex/pull/121
10[125]: https://github.com/rust-num/num-complex/pull/125
11[126]: https://github.com/rust-num/num-complex/pull/126
12
13# Release 0.4.5 (2024-02-06)
14
15- [Relaxed `T` bounds on `serde::Deserialize` for `Complex<T>`.][119]
16
17**Contributors**: @cuviper, @WalterSmuts
18
19[119]: https://github.com/rust-num/num-complex/pull/119
20
21# Release 0.4.4 (2023-08-13)
22
23- [Fixes NaN value for `powc` of zero][116]
24
25**Contributors**: @cuviper, @domna
26
27[116]: https://github.com/rust-num/num-complex/pull/116
28
29# Release 0.4.3 (2023-01-19)
30
31- [`Complex` now optionally supports `bytecheck` 0.6 and `rkyv` 0.7][110].
32
33**Contributors**: @cuviper, @zyansheep
34
35[110]: https://github.com/rust-num/num-complex/pull/110
36
37# Release 0.4.2 (2022-06-17)
38
39- [The new `ComplexFloat` trait][95] provides a generic abstraction between
40  floating-point `T` and `Complex<T>`.
41- [`Complex::exp` now handles edge cases with NaN and infinite parts][104].
42
43**Contributors**: @cuviper, @JorisDeRidder, @obsgolem, @YakoYakoYokuYoku
44
45[95]: https://github.com/rust-num/num-complex/pull/95
46[104]: https://github.com/rust-num/num-complex/pull/104
47
48# Release 0.4.1 (2022-04-29)
49
50- [`Complex::from_str_radix` now returns an error for radix > 18][90], because
51  'i' and 'j' as digits are ambiguous with _i_ or _j_ imaginary parts.
52- [`Complex<T>` now implements `bytemuck` traits when `T` does][100].
53- [`Complex::cis` creates a complex with the given phase][101], _e_<sup>_i_ θ</sup>.
54
55**Contributors**: @bluss, @bradleyharden, @cuviper, @rayhem
56
57[90]: https://github.com/rust-num/num-complex/pull/90
58[100]: https://github.com/rust-num/num-complex/pull/100
59[101]: https://github.com/rust-num/num-complex/pull/101
60
61# Release 0.4.0 (2021-03-05)
62
63- `rand` support has been updated to 0.8, requiring Rust 1.36.
64
65**Contributors**: @cuviper
66
67# Release 0.3.1 (2020-10-29)
68
69- Clarify the license specification as "MIT OR Apache-2.0".
70
71**Contributors**: @cuviper
72
73# Release 0.3.0 (2020-06-13)
74
75### Enhancements
76
77- [The new "libm" feature passes through to `num-traits`][73], enabling `Float`
78  features on no-`std` builds.
79
80### Breaking Changes
81
82- `num-complex` now requires Rust 1.31 or greater.
83  - The "i128" opt-in feature was removed, now always available.
84- [Updated public dependences][65]:
85  - `rand` support has been updated to 0.7, requiring Rust 1.32.
86- [Methods for `T: Float` now take values instead of references][82], most
87  notably affecting the constructor `from_polar`.
88
89**Contributors**: @cuviper, @SOF3, @vks
90
91[65]: https://github.com/rust-num/num-complex/pull/65
92[73]: https://github.com/rust-num/num-complex/pull/73
93[82]: https://github.com/rust-num/num-complex/pull/82
94
95# Release 0.2.4 (2020-01-09)
96
97- [`Complex::new` is now a `const fn` for Rust 1.31 and later][63].
98- [Updated the `autocfg` build dependency to 1.0][68].
99
100**Contributors**: @burrbull, @cuviper, @dingelish
101
102[63]: https://github.com/rust-num/num-complex/pull/63
103[68]: https://github.com/rust-num/num-complex/pull/68
104
105# Release 0.2.3 (2019-06-11)
106
107- [`Complex::sqrt()` is now more accurate for negative reals][60].
108- [`Complex::cbrt()` computes the principal cube root][61].
109
110**Contributors**: @cuviper
111
112[60]: https://github.com/rust-num/num-complex/pull/60
113[61]: https://github.com/rust-num/num-complex/pull/61
114
115# Release 0.2.2 (2019-06-10)
116
117- [`Complex::l1_norm()` computes the Manhattan distance from the origin][43].
118- [`Complex::fdiv()` and `finv()` use floating-point for inversion][41], which
119  may avoid overflows for some inputs, at the cost of trigonometric rounding.
120- [`Complex` now implements `num_traits::MulAdd` and `MulAddAssign`][44].
121- [`Complex` now implements `Zero::set_zero` and `One::set_one`][57].
122- [`Complex` now implements `num_traits::Pow` and adds `powi` and `powu`][56].
123
124**Contributors**: @adamnemecek, @cuviper, @ignatenkobrain, @Schultzer
125
126[41]: https://github.com/rust-num/num-complex/pull/41
127[43]: https://github.com/rust-num/num-complex/pull/43
128[44]: https://github.com/rust-num/num-complex/pull/44
129[56]: https://github.com/rust-num/num-complex/pull/56
130[57]: https://github.com/rust-num/num-complex/pull/57
131
132# Release 0.2.1 (2018-10-08)
133
134- [`Complex` now implements `ToPrimitive`, `FromPrimitive`, `AsPrimitive`, and `NumCast`][33].
135
136**Contributors**: @cuviper, @termoshtt
137
138[33]: https://github.com/rust-num/num-complex/pull/33
139
140# Release 0.2.0 (2018-05-24)
141
142### Enhancements
143
144- [`Complex` now implements `num_traits::Inv` and `One::is_one`][17].
145- [`Complex` now implements `Sum` and `Product`][11].
146- [`Complex` now supports `i128` and `u128` components][27] with Rust 1.26+.
147- [`Complex` now optionally supports `rand` 0.5][28], implementing the
148  `Standard` distribution and [a generic `ComplexDistribution`][30].
149- [`Rem` with a scalar divisor now avoids `norm_sqr` overflow][25].
150
151### Breaking Changes
152
153- [`num-complex` now requires rustc 1.15 or greater][16].
154- [There is now a `std` feature][22], enabled by default, along with the
155  implication that building *without* this feature makes this a `#![no_std]`
156  crate.  A few methods now require `FloatCore`, and the remaining methods
157  based on `Float` are only supported with `std`.
158- [The `serde` dependency has been updated to 1.0][7], and `rustc-serialize`
159  is no longer supported by `num-complex`.
160
161**Contributors**: @clarcharr, @cuviper, @shingtaklam1324, @termoshtt
162
163[7]: https://github.com/rust-num/num-complex/pull/7
164[11]: https://github.com/rust-num/num-complex/pull/11
165[16]: https://github.com/rust-num/num-complex/pull/16
166[17]: https://github.com/rust-num/num-complex/pull/17
167[22]: https://github.com/rust-num/num-complex/pull/22
168[25]: https://github.com/rust-num/num-complex/pull/25
169[27]: https://github.com/rust-num/num-complex/pull/27
170[28]: https://github.com/rust-num/num-complex/pull/28
171[30]: https://github.com/rust-num/num-complex/pull/30
172
173
174# Release 0.1.43 (2018-03-08)
175
176- [Fix a usage typo in README.md][20].
177
178**Contributors**: @shingtaklam1324
179
180[20]: https://github.com/rust-num/num-complex/pull/20
181
182
183# Release 0.1.42 (2018-02-07)
184
185- [num-complex now has its own source repository][num-356] at [rust-num/num-complex][home].
186
187**Contributors**: @cuviper
188
189[home]: https://github.com/rust-num/num-complex
190[num-356]: https://github.com/rust-num/num/pull/356
191
192
193# Prior releases
194
195No prior release notes were kept.  Thanks all the same to the many
196contributors that have made this crate what it is!
197
198