-
Notifications
You must be signed in to change notification settings - Fork 371
ndarray::stack changed behavior w.r.t layout between 0.15.1 and 0.15.2 #1070
Copy link
Copy link
Open
Labels
docsIssues relating primarily to documentation or API visibility.Issues relating primarily to documentation or API visibility.
Description
Before 0.15.3, stack would return an array with C-layout when given C-layout views. But with 0.15.3, this behavior changed and now we get F-layout outputs. This demonstration program will succeed if you pin ndarray to "=0.15.2" and fail if you pin to "=0.15.3":
use ndarray::{arr2, stack, Axis};
fn main() {
// Here are some 2x3 arrays.
let a = arr2(&[[1, 2, 3], [4, 5, 6]]);
let b = &a * 2;
assert_eq!(a.shape(), b.shape());
assert_eq!(a.shape(), [2, 3]);
// When we stack them with Axis(2), we'll get a 2x3x4 array
// with the last dimension stored continuously.
let c = stack(Axis(2), &[a.view(), b.view(), a.view(), b.view()]).unwrap();
assert_eq!(c.shape(), [2, 3, 4]);
assert!(c.is_standard_layout());
dbg!(&c);
}I don't see anything about the layout of stack's return value in the docs so I assumed that it would match the inputs. So even if no code behavior change is warranted, the docs should really include a note explaining that you might get a different layout than your inputs.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
docsIssues relating primarily to documentation or API visibility.Issues relating primarily to documentation or API visibility.