Skip to content

Commit

Permalink
Use new transpose and transpose_over
Browse files Browse the repository at this point in the history
  • Loading branch information
termoshtt committed Sep 1, 2022
1 parent 152e3d5 commit 0669391
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 13 deletions.
12 changes: 7 additions & 5 deletions lax/src/least_squares.rs
Expand Up @@ -68,8 +68,9 @@ macro_rules! impl_least_squares {
let mut a_t = None;
let a_layout = match a_layout {
MatrixLayout::C { .. } => {
a_t = Some(unsafe { vec_uninit( a.len()) });
transpose(a_layout, a, a_t.as_mut().unwrap())
let (layout, t) = transpose(a_layout, a);
a_t = Some(t);
layout
}
MatrixLayout::F { .. } => a_layout,
};
Expand All @@ -78,8 +79,9 @@ macro_rules! impl_least_squares {
let mut b_t = None;
let b_layout = match b_layout {
MatrixLayout::C { .. } => {
b_t = Some(unsafe { vec_uninit( b.len()) });
transpose(b_layout, b, b_t.as_mut().unwrap())
let (layout, t) = transpose(b_layout, b);
b_t = Some(t);
layout
}
MatrixLayout::F { .. } => b_layout,
};
Expand Down Expand Up @@ -149,7 +151,7 @@ macro_rules! impl_least_squares {
// Skip a_t -> a transpose because A has been destroyed
// Re-transpose b
if let Some(b_t) = b_t {
transpose(b_layout, &b_t, b);
transpose_over(b_layout, &b_t, b);
}

Ok(LeastSquaresOutput {
Expand Down
12 changes: 7 additions & 5 deletions lax/src/triangular.rs
Expand Up @@ -43,8 +43,9 @@ macro_rules! impl_triangular {
let mut a_t = None;
let a_layout = match a_layout {
MatrixLayout::C { .. } => {
a_t = Some(unsafe { vec_uninit(a.len()) });
transpose(a_layout, a, a_t.as_mut().unwrap())
let (layout, t) = transpose(a_layout, a);
a_t = Some(t);
layout
}
MatrixLayout::F { .. } => a_layout,
};
Expand All @@ -53,8 +54,9 @@ macro_rules! impl_triangular {
let mut b_t = None;
let b_layout = match b_layout {
MatrixLayout::C { .. } => {
b_t = Some(unsafe { vec_uninit(b.len()) });
transpose(b_layout, b, b_t.as_mut().unwrap())
let (layout, t) = transpose(b_layout, b);
b_t = Some(t);
layout
}
MatrixLayout::F { .. } => b_layout,
};
Expand Down Expand Up @@ -82,7 +84,7 @@ macro_rules! impl_triangular {

// Re-transpose b
if let Some(b_t) = b_t {
transpose(b_layout, &b_t, b);
transpose_over(b_layout, &b_t, b);
}
Ok(())
}
Expand Down
7 changes: 4 additions & 3 deletions lax/src/tridiagonal.rs
Expand Up @@ -218,8 +218,9 @@ macro_rules! impl_tridiagonal {
let mut b_t = None;
let b_layout = match b_layout {
MatrixLayout::C { .. } => {
b_t = Some(unsafe { vec_uninit( b.len()) });
transpose(b_layout, b, b_t.as_mut().unwrap())
let (layout, t) = transpose(b_layout, b);
b_t = Some(t);
layout
}
MatrixLayout::F { .. } => b_layout,
};
Expand All @@ -242,7 +243,7 @@ macro_rules! impl_tridiagonal {
}
info.as_lapack_result()?;
if let Some(b_t) = b_t {
transpose(b_layout, &b_t, b);
transpose_over(b_layout, &b_t, b);
}
Ok(())
}
Expand Down

0 comments on commit 0669391

Please sign in to comment.