code: @Override
      public void sgesvd(byte jobu, byte jobvt, int M, int N, INDArray A, INDArray S, INDArray U, INDArray VT,
                      INDArray INFO) {
          INDArray superb = Nd4j.create(DataType.FLOAT, M < N ? M : N ) ;
          int status = LAPACKE_sgesvd(getColumnOrder(A), jobu, jobvt, M, N, 
                          (FloatPointer)A.data().addressPointer(), getLda(A),
                          (FloatPointer)S.data().addressPointer(), 
                          U == null ? null : (FloatPointer)U.data().addressPointer(), U == null ? 1 : getLda(U),
                          VT == null ? null : (FloatPointer)VT.data().addressPointer(), VT == null ? 1 : getLda(VT), 
                          (FloatPointer)superb.data().addressPointer() 
                          );
          if( status != 0 ) {
              throw new BlasException( "Failed to execute sgesvd", status ) ;
          }
      }
docs: U S V' DECOMP  (aka SVD)