private boolean computeUWV ( ) { bidiag . getDiagonal ( diag , off ) ; qralg . setMatrix ( numRowsT , numColsT , diag , off ) ; // long pointA = System.currentTimeMillis(); // compute U and V matrices if ( computeU ) Ut = bidiag . getU ( Ut , true , compact ) ; if ( computeV ) Vt = bidiag . getV ( Vt , true , compact ) ; qralg . setFastValues ( false ) ; if ( computeU ) qralg . setUt ( Ut ) ; else qralg . setUt ( null ) ; if ( computeV ) qralg . setVt ( Vt ) ; else qralg . setVt ( null ) ; // long pointB = System.currentTimeMillis(); boolean ret = ! qralg . process ( ) ; // long pointC = System.currentTimeMillis(); // System.out.println(" compute UV "+(pointB-pointA)+" QR = "+(pointC-pointB)); return ret ; }
Compute singular values and U and V at the same time