@@ -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 {
0 commit comments