code: public static MatrixFile project(MatrixFile inputMatrix,
                                       MatrixFile affinityMatrix,
                                       int dimensions) {
          try {
              File outputFile = File.createTempFile("lcc-output-matrix", ".dat");
              execute(inputMatrix.getFile(), affinityMatrix.getFile(), dimensions,
                      outputFile);
              return new MatrixFile(outputFile, MatrixIO.Format.DENSE_TEXT);
          } catch (IOException ioe) { 
              throw new IOError(ioe);
          }
      }
docs: Projects the rows of the input matrix into a lower dimensional subspace
  using the Locality Preserving Projection (LPP) algorithm and the affinity
  matrix as a guide to locality.
  
  @param inputMatrix a matrix file whose rows will be projected
  @param affinityMatrix a square matrix whose entries denote locality
  between the rows of the inputMatrix.  Note that this matrix's
  dimensions must be equal to the number of rows in the input
  matrix.
  @param dimensions the number of dimensions into which the inputMatrix
  should be projected
  
  @return a file containing the LPP-reduced data in {@code DENSE_TEXT}
  format.
  
  @throws IOError if any exception occurrs during processing