@@ -366,21 +366,13 @@ where
366
366
pivot_sign * upper_sign * ln_det. exp ( )
367
367
}
368
368
369
- fn check_square < S : Data > ( a : & ArrayBase < S , Ix2 > ) -> Result < ( ) > {
370
- if a. is_square ( ) {
371
- Ok ( ( ) )
372
- } else {
373
- Err ( NotSquareError :: new ( a. rows ( ) as i32 , a. cols ( ) as i32 ) . into ( ) )
374
- }
375
- }
376
-
377
369
impl < A , S > Determinant < A > for LUFactorized < S >
378
370
where
379
371
A : Scalar ,
380
372
S : Data < Elem = A > ,
381
373
{
382
374
fn det ( & self ) -> Result < A > {
383
- check_square ( & self . a ) ?;
375
+ self . a . ensure_square ( ) ?;
384
376
Ok ( lu_det ( self . ipiv . iter ( ) . cloned ( ) , self . a . diag ( ) . iter ( ) ) )
385
377
}
386
378
}
@@ -391,7 +383,7 @@ where
391
383
S : Data < Elem = A > ,
392
384
{
393
385
fn det_into ( self ) -> Result < A > {
394
- check_square ( & self . a ) ?;
386
+ self . a . ensure_square ( ) ?;
395
387
Ok ( lu_det ( self . ipiv . into_iter ( ) , self . a . into_diag ( ) . iter ( ) ) )
396
388
}
397
389
}
@@ -402,7 +394,7 @@ where
402
394
S : Data < Elem = A > ,
403
395
{
404
396
fn det ( & self ) -> Result < A > {
405
- check_square ( & self ) ?;
397
+ self . ensure_square ( ) ?;
406
398
match self . factorize ( ) {
407
399
Ok ( fac) => fac. det ( ) ,
408
400
Err ( LinalgError :: Lapack ( LapackError { return_code } ) ) if return_code > 0 => Ok ( A :: zero ( ) ) ,
@@ -417,7 +409,7 @@ where
417
409
S : DataMut < Elem = A > ,
418
410
{
419
411
fn det_into ( self ) -> Result < A > {
420
- check_square ( & self ) ?;
412
+ self . ensure_square ( ) ?;
421
413
match self . factorize_into ( ) {
422
414
Ok ( fac) => fac. det_into ( ) ,
423
415
Err ( LinalgError :: Lapack ( LapackError { return_code } ) ) if return_code > 0 => Ok ( A :: zero ( ) ) ,
0 commit comments