Skip to content

Commit 6245aac

Browse files
committed
Fix ndarray to use from_shape_vec constructors
1 parent 373bd4c commit 6245aac

File tree

6 files changed

+26
-24
lines changed

6 files changed

+26
-24
lines changed

src/data_traits.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ unsafe impl<A> DataMut for Rc<Vec<A>>
8383
// Create a new vec if the current view is less than half of
8484
// backing data.
8585
unsafe {
86-
*self_ = ArrayBase::from_vec_dim_unchecked(self_.dim.clone(),
87-
self_.iter()
86+
*self_ = ArrayBase::from_shape_vec_unchecked(self_.dim.clone(),
87+
self_.iter()
8888
.cloned()
8989
.collect());
9090
}

src/free_functions.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use imp_prelude::*;
1313
/// Create a zero-dimensional array with the element `x`.
1414
pub fn arr0<A>(x: A) -> OwnedArray<A, ()>
1515
{
16-
unsafe { ArrayBase::from_vec_dim_unchecked((), vec![x]) }
16+
unsafe { ArrayBase::from_shape_vec_unchecked((), vec![x]) }
1717
}
1818

1919
/// Create a one-dimensional array with elements from `xs`.
@@ -129,7 +129,7 @@ pub fn arr2<A: Clone, V: FixedInitializer<Elem = A>>(xs: &[V]) -> OwnedArray<A,
129129
result.extend_from_slice(snd.as_init_slice());
130130
}
131131
unsafe {
132-
ArrayBase::from_vec_dim_unchecked(dim, result)
132+
ArrayBase::from_shape_vec_unchecked(dim, result)
133133
}
134134
}
135135

@@ -167,7 +167,7 @@ pub fn arr3<A: Clone, V: FixedInitializer<Elem=U>, U: FixedInitializer<Elem=A>>(
167167
}
168168
}
169169
unsafe {
170-
ArrayBase::from_vec_dim_unchecked(dim, result)
170+
ArrayBase::from_shape_vec_unchecked(dim, result)
171171
}
172172
}
173173

src/impl_constructors.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
//! Constructor methods for ndarray
1010
//!
11+
//!
12+
13+
#![allow(deprecated)] // from_shape_vec
1114

1215
use libnum::{Zero, One, Float};
1316

@@ -39,7 +42,8 @@ pub trait ShapeBuilder {
3942
type Dim: Dimension;
4043

4144
fn f(self) -> Shape<Self::Dim>;
42-
fn strides(self, st: Self::Dim) -> StrideShape<Self::Dim>;
45+
fn set_f(self, is_f: bool) -> Shape<Self::Dim>;
46+
fn strides(self, strides: Self::Dim) -> StrideShape<Self::Dim>;
4347
}
4448

4549
impl<D> From<D> for Shape<D>
@@ -83,8 +87,9 @@ impl<D> ShapeBuilder for D
8387
where D: Dimension
8488
{
8589
type Dim = D;
86-
fn f(self) -> Shape<D> {
87-
Shape::from(self).f()
90+
fn f(self) -> Shape<D> { self.set_f(true) }
91+
fn set_f(self, is_f: bool) -> Shape<D> {
92+
Shape::from(self).set_f(is_f)
8893
}
8994
fn strides(self, st: D) -> StrideShape<D> {
9095
Shape::from(self).strides(st)
@@ -95,8 +100,9 @@ impl<D> ShapeBuilder for Shape<D>
95100
where D: Dimension
96101
{
97102
type Dim = D;
98-
fn f(mut self) -> Self {
99-
self.is_c = false;
103+
fn f(self) -> Self { self.set_f(true) }
104+
fn set_f(mut self, is_f: bool) -> Self {
105+
self.is_c = !is_f;
100106
self
101107
}
102108
fn strides(self, st: D) -> StrideShape<D> {
@@ -124,7 +130,7 @@ impl<S> ArrayBase<S, Ix>
124130
/// let array = OwnedArray::from_vec(vec![1., 2., 3., 4.]);
125131
/// ```
126132
pub fn from_vec(v: Vec<S::Elem>) -> ArrayBase<S, Ix> {
127-
unsafe { Self::from_vec_dim_unchecked(v.len() as Ix, v) }
133+
unsafe { Self::from_shape_vec_unchecked(v.len() as Ix, v) }
128134
}
129135

130136
/// Create a one-dimensional array from an iterable.

src/impl_methods.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ impl<A, S, D> ArrayBase<S, D> where S: Data<Elem=A>, D: Dimension
9191
(self.iter().cloned().collect(), self.dim.default_strides())
9292
};
9393
unsafe {
94-
ArrayBase::from_vec_dim_stride_unchecked(self.dim.clone(), strides, data)
94+
ArrayBase::from_shape_vec_unchecked(self.dim.clone().strides(strides), data)
9595
}
9696
}
9797

@@ -427,7 +427,7 @@ impl<A, S, D> ArrayBase<S, D> where S: Data<Elem=A>, D: Dimension
427427
let mut dim = self.dim();
428428
dim.set_axis(axis, 0);
429429
unsafe {
430-
OwnedArray::from_vec_dim_unchecked(dim, vec![])
430+
OwnedArray::from_shape_vec_unchecked(dim, vec![])
431431
}
432432
} else {
433433
stack(axis, &subs).unwrap()
@@ -800,7 +800,7 @@ impl<A, S, D> ArrayBase<S, D> where S: Data<Elem=A>, D: Dimension
800800
} else {
801801
let v = self.iter().map(|x| x.clone()).collect::<Vec<A>>();
802802
unsafe {
803-
ArrayBase::from_vec_dim_unchecked(shape, v)
803+
ArrayBase::from_shape_vec_unchecked(shape, v)
804804
}
805805
}
806806
}
@@ -1150,13 +1150,13 @@ impl<A, S, D> ArrayBase<S, D> where S: Data<Elem=A>, D: Dimension
11501150
if let Some(slc) = self.as_slice_memory_order() {
11511151
let v = ::iterators::to_vec(slc.iter().map(f));
11521152
unsafe {
1153-
ArrayBase::from_vec_dim_stride_unchecked(
1154-
self.dim.clone(), self.strides.clone(), v)
1153+
ArrayBase::from_shape_vec_unchecked(
1154+
self.dim.clone().strides(self.strides.clone()), v)
11551155
}
11561156
} else {
11571157
let v = ::iterators::to_vec(self.iter().map(f));
11581158
unsafe {
1159-
ArrayBase::from_vec_dim_unchecked(self.dim.clone(), v)
1159+
ArrayBase::from_shape_vec_unchecked(self.dim.clone(), v)
11601160
}
11611161
}
11621162
}

src/linalg/impl_linalg.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,11 +230,7 @@ impl<A, S, S2> Dot<ArrayBase<S2, (Ix, Ix)>> for ArrayBase<S, (Ix, Ix)>
230230
let mut c;
231231
unsafe {
232232
v.set_len(m * n);
233-
if !column_major {
234-
c = OwnedArray::from_vec_dim_unchecked((m, n), v);
235-
} else {
236-
c = OwnedArray::from_vec_dim_unchecked_f((m, n), v);
237-
}
233+
c = OwnedArray::from_shape_vec_unchecked((m, n).set_f(column_major), v);
238234
}
239235
mat_mul_impl(A::one(), &a, &b, A::zero(), &mut c.view_mut());
240236
c
@@ -293,7 +289,7 @@ impl<A, S, S2> Dot<ArrayBase<S2, Ix>> for ArrayBase<S, (Ix, Ix)>
293289
}
294290
}
295291
unsafe {
296-
ArrayBase::from_vec_dim_unchecked(m, res_elems)
292+
ArrayBase::from_shape_vec_unchecked(m, res_elems)
297293
}
298294
}
299295
}

src/stacking.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub fn stack<'a, A, D>(axis: Axis, arrays: &[ArrayView<'a, A, D>])
5757
unsafe {
5858
v.set_len(size);
5959
}
60-
let mut res = try!(OwnedArray::from_vec_dim(res_dim, v));
60+
let mut res = try!(OwnedArray::from_shape_vec(res_dim, v));
6161

6262
{
6363
let mut assign_view = res.view_mut();

0 commit comments

Comments
 (0)