Skip to content

Commit 0669391

Browse files
committed
Use new transpose and transpose_over
1 parent 152e3d5 commit 0669391

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

lax/src/least_squares.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,9 @@ macro_rules! impl_least_squares {
6868
let mut a_t = None;
6969
let a_layout = match a_layout {
7070
MatrixLayout::C { .. } => {
71-
a_t = Some(unsafe { vec_uninit( a.len()) });
72-
transpose(a_layout, a, a_t.as_mut().unwrap())
71+
let (layout, t) = transpose(a_layout, a);
72+
a_t = Some(t);
73+
layout
7374
}
7475
MatrixLayout::F { .. } => a_layout,
7576
};
@@ -78,8 +79,9 @@ macro_rules! impl_least_squares {
7879
let mut b_t = None;
7980
let b_layout = match b_layout {
8081
MatrixLayout::C { .. } => {
81-
b_t = Some(unsafe { vec_uninit( b.len()) });
82-
transpose(b_layout, b, b_t.as_mut().unwrap())
82+
let (layout, t) = transpose(b_layout, b);
83+
b_t = Some(t);
84+
layout
8385
}
8486
MatrixLayout::F { .. } => b_layout,
8587
};
@@ -149,7 +151,7 @@ macro_rules! impl_least_squares {
149151
// Skip a_t -> a transpose because A has been destroyed
150152
// Re-transpose b
151153
if let Some(b_t) = b_t {
152-
transpose(b_layout, &b_t, b);
154+
transpose_over(b_layout, &b_t, b);
153155
}
154156

155157
Ok(LeastSquaresOutput {

lax/src/triangular.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ macro_rules! impl_triangular {
4343
let mut a_t = None;
4444
let a_layout = match a_layout {
4545
MatrixLayout::C { .. } => {
46-
a_t = Some(unsafe { vec_uninit(a.len()) });
47-
transpose(a_layout, a, a_t.as_mut().unwrap())
46+
let (layout, t) = transpose(a_layout, a);
47+
a_t = Some(t);
48+
layout
4849
}
4950
MatrixLayout::F { .. } => a_layout,
5051
};
@@ -53,8 +54,9 @@ macro_rules! impl_triangular {
5354
let mut b_t = None;
5455
let b_layout = match b_layout {
5556
MatrixLayout::C { .. } => {
56-
b_t = Some(unsafe { vec_uninit(b.len()) });
57-
transpose(b_layout, b, b_t.as_mut().unwrap())
57+
let (layout, t) = transpose(b_layout, b);
58+
b_t = Some(t);
59+
layout
5860
}
5961
MatrixLayout::F { .. } => b_layout,
6062
};
@@ -82,7 +84,7 @@ macro_rules! impl_triangular {
8284

8385
// Re-transpose b
8486
if let Some(b_t) = b_t {
85-
transpose(b_layout, &b_t, b);
87+
transpose_over(b_layout, &b_t, b);
8688
}
8789
Ok(())
8890
}

lax/src/tridiagonal.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,9 @@ macro_rules! impl_tridiagonal {
218218
let mut b_t = None;
219219
let b_layout = match b_layout {
220220
MatrixLayout::C { .. } => {
221-
b_t = Some(unsafe { vec_uninit( b.len()) });
222-
transpose(b_layout, b, b_t.as_mut().unwrap())
221+
let (layout, t) = transpose(b_layout, b);
222+
b_t = Some(t);
223+
layout
223224
}
224225
MatrixLayout::F { .. } => b_layout,
225226
};
@@ -242,7 +243,7 @@ macro_rules! impl_tridiagonal {
242243
}
243244
info.as_lapack_result()?;
244245
if let Some(b_t) = b_t {
245-
transpose(b_layout, &b_t, b);
246+
transpose_over(b_layout, &b_t, b);
246247
}
247248
Ok(())
248249
}

0 commit comments

Comments
 (0)