@@ -2,8 +2,11 @@ use ndarray::*;
22use ndarray_linalg:: * ;
33
44// Test Av_i = e_i v_i for i = 0..n
5- fn test_eig < T : Scalar > ( a : Array2 < T > , eigs : Array1 < T :: Complex > , vecs : Array2 < T :: Complex > )
6- where
5+ fn test_eig < T : Scalar > (
6+ a : ArrayView2 < ' _ , T > ,
7+ eigs : ArrayView1 < ' _ , T :: Complex > ,
8+ vecs : ArrayView2 < ' _ , T :: Complex > ,
9+ ) where
710 T :: Complex : Lapack ,
811{
912 println ! ( "a\n {:+.4}" , & a) ;
@@ -205,29 +208,37 @@ macro_rules! impl_test_real {
205208 #[ test]
206209 fn [ <$real _eigvals >] ( ) {
207210 let a = test_matrix_real:: <$real>( ) ;
208- let ( e, _vecs) = a. eig( ) . unwrap( ) ;
209- assert_close_l2!( & e, & answer_eig_real:: <$real>( ) , 1.0e-3 ) ;
211+ let ( e1, _vecs) = a. eig( ) . unwrap( ) ;
212+ let e2 = a. eigvals( ) . unwrap( ) ;
213+ assert_close_l2!( & e1, & answer_eig_real:: <$real>( ) , 1.0e-3 ) ;
214+ assert_close_l2!( & e2, & answer_eig_real:: <$real>( ) , 1.0e-3 ) ;
210215 }
211216
212217 #[ test]
213218 fn [ <$real _eigvals_t>] ( ) {
214219 let a = test_matrix_real_t:: <$real>( ) ;
215- let ( e, _vecs) = a. eig( ) . unwrap( ) ;
216- assert_close_l2!( & e, & answer_eig_real:: <$real>( ) , 1.0e-3 ) ;
220+ let ( e1, _vecs) = a. eig( ) . unwrap( ) ;
221+ let e2 = a. eigvals( ) . unwrap( ) ;
222+ assert_close_l2!( & e1, & answer_eig_real:: <$real>( ) , 1.0e-3 ) ;
223+ assert_close_l2!( & e2, & answer_eig_real:: <$real>( ) , 1.0e-3 ) ;
217224 }
218225
219226 #[ test]
220227 fn [ <$real _eig>] ( ) {
221228 let a = test_matrix_real:: <$real>( ) ;
222- let ( e, vecs) = a. eig( ) . unwrap( ) ;
223- test_eig( a, e, vecs) ;
229+ let ( e1, vecs) = a. eig( ) . unwrap( ) ;
230+ let e2 = a. eigvals( ) . unwrap( ) ;
231+ test_eig( a. view( ) , e1. view( ) , vecs. view( ) ) ;
232+ test_eig( a. view( ) , e2. view( ) , vecs. view( ) ) ;
224233 }
225234
226235 #[ test]
227236 fn [ <$real _eig_t>] ( ) {
228237 let a = test_matrix_real_t:: <$real>( ) ;
229- let ( e, vecs) = a. eig( ) . unwrap( ) ;
230- test_eig( a, e, vecs) ;
238+ let ( e1, vecs) = a. eig( ) . unwrap( ) ;
239+ let e2 = a. eigvals( ) . unwrap( ) ;
240+ test_eig( a. view( ) , e1. view( ) , vecs. view( ) ) ;
241+ test_eig( a. view( ) , e2. view( ) , vecs. view( ) ) ;
231242 }
232243
233244 } // paste::item!
@@ -243,15 +254,19 @@ macro_rules! impl_test_complex {
243254 #[ test]
244255 fn [ <$complex _eigvals >] ( ) {
245256 let a = test_matrix_complex:: <$complex>( ) ;
246- let ( e, _vecs) = a. eig( ) . unwrap( ) ;
247- assert_close_l2!( & e, & answer_eig_complex:: <$complex>( ) , 1.0e-3 ) ;
257+ let ( e1, _vecs) = a. eig( ) . unwrap( ) ;
258+ let e2 = a. eigvals( ) . unwrap( ) ;
259+ assert_close_l2!( & e1, & answer_eig_complex:: <$complex>( ) , 1.0e-3 ) ;
260+ assert_close_l2!( & e2, & answer_eig_complex:: <$complex>( ) , 1.0e-3 ) ;
248261 }
249262
250263 #[ test]
251264 fn [ <$complex _eigvals_t>] ( ) {
252265 let a = test_matrix_complex_t:: <$complex>( ) ;
253- let ( e, _vecs) = a. eig( ) . unwrap( ) ;
254- assert_close_l2!( & e, & answer_eig_complex:: <$complex>( ) , 1.0e-3 ) ;
266+ let ( e1, _vecs) = a. eig( ) . unwrap( ) ;
267+ let e2 = a. eigvals( ) . unwrap( ) ;
268+ assert_close_l2!( & e1, & answer_eig_complex:: <$complex>( ) , 1.0e-3 ) ;
269+ assert_close_l2!( & e2, & answer_eig_complex:: <$complex>( ) , 1.0e-3 ) ;
255270 }
256271
257272 #[ test]
@@ -271,15 +286,19 @@ macro_rules! impl_test_complex {
271286 #[ test]
272287 fn [ <$complex _eig>] ( ) {
273288 let a = test_matrix_complex:: <$complex>( ) ;
274- let ( e, vecs) = a. eig( ) . unwrap( ) ;
275- test_eig( a, e, vecs) ;
289+ let ( e1, vecs) = a. eig( ) . unwrap( ) ;
290+ let e2 = a. eigvals( ) . unwrap( ) ;
291+ test_eig( a. view( ) , e1. view( ) , vecs. view( ) ) ;
292+ test_eig( a. view( ) , e2. view( ) , vecs. view( ) ) ;
276293 }
277294
278295 #[ test]
279296 fn [ <$complex _eig_t>] ( ) {
280297 let a = test_matrix_complex_t:: <$complex>( ) ;
281- let ( e, vecs) = a. eig( ) . unwrap( ) ;
282- test_eig( a, e, vecs) ;
298+ let ( e1, vecs) = a. eig( ) . unwrap( ) ;
299+ let e2 = a. eigvals( ) . unwrap( ) ;
300+ test_eig( a. view( ) , e1. view( ) , vecs. view( ) ) ;
301+ test_eig( a. view( ) , e2. view( ) , vecs. view( ) ) ;
283302 }
284303 } // paste::item!
285304 } ;
0 commit comments