public double rcond ( Matrix A ) { if ( n != A . numRows ( ) ) throw new IllegalArgumentException ( "n != A.numRows()" ) ; if ( ! A . isSquare ( ) ) throw new IllegalArgumentException ( "!A.isSquare()" ) ; double anorm = A . norm ( Norm . One ) ; double [ ] work = new double [ 3 * n ] ; int [ ] iwork = new int [ n ] ; intW info = new intW ( 0 ) ; doubleW rcond = new doubleW ( 0 ) ; if ( upper ) LAPACK . getInstance ( ) . dpocon ( UpLo . Upper . netlib ( ) , n , Cu . getData ( ) , Matrices . ld ( n ) , anorm , rcond , work , iwork , info ) ; else LAPACK . getInstance ( ) . dpocon ( UpLo . Lower . netlib ( ) , n , Cl . getData ( ) , Matrices . ld ( n ) , anorm , rcond , work , iwork , info ) ; if ( info . val < 0 ) throw new IllegalArgumentException ( ) ; return rcond . val ; }
Computes the reciprocal condition number