@@ -4,28 +4,115 @@ Version 0.15.0 (Not released yet)
44New features
55------------
66
7- - Support for compiling ndarray as ` no_std ` (using core and alloc) by [ @xd009642 ]
7+ - Support inserting new axes while slicing by [ @jturner314 ] . This is an example:
88
9- https://github.com/rust-ndarray/ndarray/pull/861
9+ ``` rust
10+ let view = arr . slice (s! [.. , - 1 , 2 .. ;- 1 , NewAxis ]);
11+ ```
12+
13+ https://github.com/rust-ndarray/ndarray/pull/570
14+
15+ - Support two-sided broadcasting in arithmetic operations with arrays by [ @SparrowLii ]
16+
17+ Note that this means that a new trait bound is required in some places when
18+ mixing dimensionality types of arrays in arithmetic operations.
19+
20+ https://github.com/rust-ndarray/ndarray/pull/898
21+
22+ - Support for compiling ndarray as ` no_std ` (using core and alloc) by
23+ [ @xd009642 ] and [ @bluss ]
24+
25+ https://github.com/rust-ndarray/ndarray/pull/861 <br >
26+ https://github.com/rust-ndarray/ndarray/pull/889
1027
1128- New methods ` .cell_view() ` and ` ArrayViewMut::into_cell_view ` that enable
1229 new ways of working with array elements as if they were in Cells - setting
13- elements through shared views and broadcast views.
30+ elements through shared views and broadcast views, by [ @ bluss ] .
1431
1532 https://github.com/rust-ndarray/ndarray/pull/877
1633
34+ - New methods ` slice_each_axis/_mut/_inplace ` that make it easier to slice
35+ a dynamic number of axes in some situations, by [ @jturner314 ]
36+
37+ https://github.com/rust-ndarray/ndarray/pull/913
38+
39+ - New method ` a.assign_to(b) ` with the inverse argument order compared to the
40+ existing ` b.assign(a) ` and some extra features like assigning into
41+ uninitialized arrays, By [ @bluss ] .
42+
43+ https://github.com/rust-ndarray/ndarray/pull/947
1744
1845Enhancements
1946------------
2047
21- - Fix ` Zip ` for the 0-dimensional case by [ @jturner314 ]
48+ - New constructors ` Array::from_iter ` and ` Array::from_vec ` by [ @bluss ] .
49+ No new functionality, just that these constructors are avaiable without trait
50+ imports.
2251
23- https://github.com/rust-ndarray/ndarray/pull/862
52+ https://github.com/rust-ndarray/ndarray/pull/921
53+
54+ - Ndarray can now correctly determine that arrays can be contiguous, even if
55+ they have negative strides, by [ @SparrowLii ]
56+
57+ https://github.com/rust-ndarray/ndarray/pull/885
58+
59+ - ` NdProducer::raw_dim ` is now a documented method by [ @jturner314 ]
60+
61+ https://github.com/rust-ndarray/ndarray/pull/918
62+
63+ - ` AxisDescription ` is now a struct with field names, not a tuple struct by
64+ [ @jturner314 ]
65+
66+ https://github.com/rust-ndarray/ndarray/pull/915
67+
68+ - Improvements to ` map_inplace ` by [ @jturner314 ]
69+
70+ https://github.com/rust-ndarray/ndarray/pull/911
71+
72+ - ` .into_dimensionality ` performance was improved for the ` IxDyn ` to ` IxDyn `
73+ case by [ @bluss ]
74+
75+ https://github.com/rust-ndarray/ndarray/pull/906
76+
77+ - Improved performance for scalar + &array and &array + scalar operations by
78+ [ @jturner314 ]
79+
80+ https://github.com/rust-ndarray/ndarray/pull/890
81+
82+ - Methods for array comparison ` abs_diff_eq ` and ` relative_eq ` are now
83+ exposed as inherent methods too (no trait import needed), still under the approx
84+ feature flag by [ @bluss ]
85+
86+ https://github.com/rust-ndarray/ndarray/pull/946
2487
2588API changes
2689-----------
2790
28- - Removed deprecated methods by [ @bluss ] :
91+ - Changes to the slicing-related types and macro by [ @jturner314 ] and [ @bluss ] :
92+
93+ - Remove the ` Dimension::SliceArg ` associated type, and add a new ` SliceArg `
94+ trait for this purpose.
95+ - Change the return type of the ` s![] ` macro to an owned ` SliceInfo ` rather
96+ than a reference.
97+ - Replace the ` SliceOrIndex ` enum with ` SliceInfoElem ` , which has an
98+ additional ` NewAxis ` variant and does not have a ` step_by ` method.
99+ - Change the type parameters of ` SliceInfo ` in order to support the ` NewAxis `
100+ functionality and remove some tricky ` unsafe ` code.
101+ - Mark the ` SliceInfo::new ` method as ` unsafe ` . The new implementations of
102+ ` TryFrom ` can be used as a safe alternative.
103+ - Remove the ` AsRef<SliceInfo<[SliceOrIndex], D>> for SliceInfo<T, D> `
104+ implementation. Add the similar `From<&'a SliceInfo<T, Din, Dout>> for
105+ SliceInfo<&'a [ SliceInfoElem] , Din, Dout>` conversion as an alternative.
106+ - Change the * expr* ` ; ` * step* case in the ` s![] ` macro to error at compile
107+ time if an unsupported type for * expr* is used, instead of panicking at
108+ runtime.
109+
110+ https://github.com/rust-ndarray/ndarray/pull/570 <br >
111+ https://github.com/rust-ndarray/ndarray/pull/940 <br >
112+ https://github.com/rust-ndarray/ndarray/pull/943 <br >
113+ https://github.com/rust-ndarray/ndarray/pull/945 <br >
114+
115+ - Removed already deprecated methods by [ @bluss ] :
29116
30117 - Remove deprecated ` .all_close() ` - use approx feature and methods like ` .abs_diff_eq ` instead
31118 - Mark ` .scalar_sum() ` as deprecated - use ` .sum() ` instead
@@ -34,21 +121,106 @@ API changes
34121
35122 https://github.com/rust-ndarray/ndarray/pull/874
36123
37- - Remove deprecated methods: rows, cols (for row and column count; the new
38- names are nrows and ncols) by [ @bluss ]
124+ - Remove already deprecated methods: rows, cols (for row and column count; the
125+ new names are nrows and ncols) by [ @bluss ]
39126
40127 https://github.com/rust-ndarray/ndarray/pull/872
41128
42- - Renamed methods (old names are now deprecated) by [ @bluss ]
129+ - Renamed ` Zip ` methods by [ @bluss ] and [ @SparrowLii ] :
130+
131+ - ` apply ` -> ` for_each `
132+ - ` apply_collect ` -> ` map_collect `
133+ - ` apply_collect_into ` -> ` map_collect_into `
134+ - (` par_ ` prefixed methods renamed accordingly)
135+
136+ https://github.com/rust-ndarray/ndarray/pull/894 <br >
137+ https://github.com/rust-ndarray/ndarray/pull/904 <br >
138+
139+ - Deprecate ` Array::uninitialized ` and revamped its replacement by [ @bluss ]
140+
141+ Please use new new ` Array::uninit ` which is based on ` MaybeUninit ` (renamed
142+ from ` Array::maybe_uninit ` , the old name is also deprecated).
143+
144+ https://github.com/rust-ndarray/ndarray/pull/902 <br >
145+ https://github.com/rust-ndarray/ndarray/pull/876
146+
147+ - Renamed methods (old names are now deprecated) by [ @bluss ] and [ @jturner314 ]
43148
44149 - ` genrows/_mut ` -> ` rows/_mut `
45150 - ` gencolumns/_mut ` -> ` columns/_mut `
151+ - ` stack_new_axis ` -> ` stack ` (the new name already existed)
152+ - ` visit ` -> ` for_each `
46153
47- https://github.com/rust-ndarray/ndarray/pull/872
154+ https://github.com/rust-ndarray/ndarray/pull/872 <br >
155+ https://github.com/rust-ndarray/ndarray/pull/937 <br >
156+ https://github.com/rust-ndarray/ndarray/pull/907 <br >
157+
158+ - ` blas-src ` dependency updated to 0.7.0 by [ @bluss ]
159+
160+ https://github.com/rust-ndarray/ndarray/pull/891
161+
162+ - Updated ` matrixmultiply ` dependency to 0.3.0 by [ @bluss ]
163+ and adding new feature flag ` matrixmultiply-threading ` to enable its threading
164+
165+ https://github.com/rust-ndarray/ndarray/pull/888 <br >
166+ https://github.com/rust-ndarray/ndarray/pull/938 <br >
167+
168+
169+ Bug fixes
170+ ---------
171+
172+ - Fix ` Zip::indexed ` for the 0-dimensional case by [ @jturner314 ]
173+
174+ https://github.com/rust-ndarray/ndarray/pull/862
175+
176+ - Fix bug in layout computation that broke parallel collect to f-order
177+ array in some circumstances by [ @bluss ]
178+
179+ https://github.com/rust-ndarray/ndarray/pull/900
180+
181+ - Fix an unwanted panic in shape overflow checking by [ @bluss ]
182+
183+ https://github.com/rust-ndarray/ndarray/pull/855
184+
185+ - Mark the ` SliceInfo::new ` method as ` unsafe ` due to the requirement that
186+ ` indices.as_ref() ` always return the same value when called multiple times,
187+ by [ @bluss ] and [ @jturner314 ]
188+
189+ https://github.com/rust-ndarray/ndarray/pull/570
48190
49191Other changes
50192-------------
51193
194+ - Various improvements to tests and CI by [ @jturner314 ]
195+
196+ https://github.com/rust-ndarray/ndarray/pull/934 <br >
197+ https://github.com/rust-ndarray/ndarray/pull/924 <br >
198+
199+ - The ` sort-axis.rs ` example file's implementation of sort was bugfixed and now
200+ has tests, by [ @dam5h ] and [ @bluss ]
201+
202+ https://github.com/rust-ndarray/ndarray/pull/916 <br >
203+ https://github.com/rust-ndarray/ndarray/pull/930
204+
205+ - We now link to the #rust-sci room on matrix in the readme by [ @jturner314 ]
206+
207+ https://github.com/rust-ndarray/ndarray/pull/619
208+
209+ - Internal cleanup with builder-like methods for creating arrays by [ @bluss ]
210+
211+ https://github.com/rust-ndarray/ndarray/pull/908
212+
213+ - Implementation fix of ` .swap(i, j) ` by [ @bluss ]
214+
215+ https://github.com/rust-ndarray/ndarray/pull/903
216+
217+ - Minimum supported Rust version (MSRV) is Rust 1.49.
218+
219+ https://github.com/rust-ndarray/ndarray/pull/902
220+
221+ - Minor improvements to docs by [ @insideoutclub ]
222+
223+ https://github.com/rust-ndarray/ndarray/pull/887
52224
53225
54226Version 0.14.0 (2020-11-28)
@@ -1069,21 +1241,24 @@ Earlier releases
10691241[ @bluss ] : https://github.com/bluss
10701242[ @jturner314 ] : https://github.com/jturner314
10711243[ @LukeMathWalker ] : https://github.com/LukeMathWalker
1072- [ @max-sixty ] : https://github.com/max-sixty
1244+ [ @acj ] : https://github.com/acj
1245+ [ @andrei-papou ] : https://github.com/andrei-papou
1246+ [ @dam5h ] : https://github.com/dam5h
1247+ [ @d-dorazio ] : https://github.com/d-dorazio
1248+ [ @Eijebong ] : https://github.com/Eijebong
1249+ [ @insideoutclub ] : https://github.com/insideoutclub
10731250[ @JP-Ellis ] : https://github.com/JP-Ellis
1074- [ @sebasv ] : https://github.com/sebasv
1251+ [ @lifuyang ] : https://github.com/liufuyang
1252+ [ @max-sixty ] : https://github.com/max-sixty
10751253[ @mneumann ] : https://github.com/mneumann
1076- [ @termoshtt ] : https://github.com/termoshtt
1077- [ @rth ] : https://github.com/rth
1078- [ @nitsky ] : https://github.com/nitsky
1079- [ @d-dorazio ] : https://github.com/d-dorazio
1254+ [ @mockersf ] : https://github.com/mockersf
10801255[ @nilgoyette ] : https://github.com/nilgoyette
1256+ [ @nitsky ] : https://github.com/nitsky
1257+ [ @rth ] : https://github.com/rth
1258+ [ @sebasv ] : https://github.com/sebasv
1259+ [ @SparrowLii ] : https://github.com/SparrowLii
1260+ [ @termoshtt ] : https://github.com/termoshtt
10811261[ @TheLortex ] : https://github.com/TheLortex
1082- [ @mockersf ] : https://github.com/mockersf
10831262[ @viniciusd ] : https://github.com/viniciusd
1084- [ @lifuyang ] : https://github.com/liufuyang
1085- [ @acj ] : https://github.com/acj
1086- [ @Eijebong ] : https://github.com/Eijebong
1087- [ @andrei-papou ] : https://github.com/andrei-papou
10881263[ @xd009642 ] : https://github.com/xd009642
10891264[ @Zuse64 ] : https://github.com/Zuse64
0 commit comments